diff --git "a/database/tawos/deep/NEXUS_deep-se.csv" "b/database/tawos/deep/NEXUS_deep-se.csv" new file mode 100644--- /dev/null +++ "b/database/tawos/deep/NEXUS_deep-se.csv" @@ -0,0 +1,1426 @@ +"issuekey","created","title","description","storypoint" +"NEXUS-540","08/14/2008 15:14:25","Repositories: Creating new repository returns nothing","I created a repository using the test harness, and nothing was returned. The other API's return the created object back, this is important because some default values might be set or something changed. This also effects the Groups",1 +"NEXUS-5831","11/24/2008 17:23:44","[p2] serve jarred repository metadata","nexus p2 plugin should serve jarred repository metadata and not raw xml files",2 +"NEXUS-2911","10/25/2009 21:22:25","Authentication error shows up as ""400 bad request"" during smtp validation.","In the log after hitting ""Test SMTP Settings"". {code} 2009-10-25 14:16:49 INFO [p-1779859946-31] - o.s.m.EMailer:default - Handling mail request Nexus 2009-10-25 14:16:51 ERROR [p-1779859946-31] - o.s.n.e.SmtpSetting~:default - Unable to send e-mail org.sonatype.micromailer.MailCompositionMessagingException: MessagingException occured! at org.sonatype.micromailer.imp.DefaultMailSender.sendMail(DefaultMailSender.java:64) at org.sonatype.micromailer.imp.DefaultEMailer$RunnableMailer.run(DefaultEMailer.java:188) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:637) Caused by: javax.mail.AuthenticationFailedException at javax.mail.Service.connect(Service.java:306) at javax.mail.Service.connect(Service.java:156) at javax.mail.Service.connect(Service.java:105) at org.sonatype.micromailer.imp.DefaultMailSender.sendMail(DefaultMailSender.java:53) ... 4 more {code} So we know that the problem is an authentication error. However the user sees ""400 bad request"" (see screenshot). We should give a reasonable error message in this case.",0 +"NEXUS-3119","12/17/2009 08:10:36","Show status (active/disbaled) of user in the list of users (in the Users panel)","Any users managed by the default Nexus realm can be in an active or disabled status. It would be nice if this info is shown in the Users panel listing all users, e.g. by adding a 'Status' column.",1 +"NEXUS-3201","01/16/2010 00:40:20","Log spam about LegacyAuthorizationManager when LDAP realm is enabled","I'm seeing multiple lines like this in the log after enabling the LDAP realm: 2010-01-15 16:36:22 WARN [tp-1328231241-4] - o.s.s.a.Authorizati~ - LegacyAuthorizationManager is not configured, it should be removed. I don't see any side effects from this, but I'm filing this issue because it looks like it is possible that LegacyAuthorizationManager should be removed. :-) ",1 +"NEXUS-3388","03/18/2010 17:24:58","Improvements to left nav","Move ""System Files"" and ""Licensing"" to the administration tab. Move ""Repository Targets"" to Security Under Help have: About Nexus Documentation Browse Issue Tracker Documentation should open a new tab like About Nexus does. Here we should have the rest of the links currently under help. Administration, Security and Help should be collapsed by default.",3 +"NEXUS-3435","04/09/2010 18:54:21","Add Clear Cache method to SecuritySystem","Should be simple to do, its basically what the .start() method does in the default impl.",1 +"NEXUS-3448","04/14/2010 22:53:54","When downloading artifacts through REST redirect the user is not prompted for authorization.","If a user attempts to download an artifact using the redirect service and they do not have authorization, they get a page saying ""access denied"". They should get an authorization dialog.",1 +"NEXUS-3715","08/17/2010 15:02:56","Multi select form field","The UI / backend form field should support multi selection type. This allows choosing from a list of possible options similar to combo type only that it allows more then one selection. The list of possible options should be provided via a rest resource.",3 +"NEXUS-3716","08/17/2010 15:04:19","Capability validation","There should be possible for a capability to provide additional validations such as for example not allowing multiple capabilities for same repository or value validation beside the regex value validator. This could be archived by capability provider providing a validator implementation related to capability via capability id (same as for factory). If available, before saving a capability the validator is asked to validate create/update values.",2 +"NEXUS-3717","08/17/2010 15:05:49","Generic source of options for combo/multi selection field","Currently there is only one combo selection type ""repo-or-group"". The handling of this is hardcoded in UI so adding a new combo type is impossible without changing the UI = not a pluggable solution. Solution is to change the combo type to not be related to a specific resource but make type returning the url of a rest resource that can provide possible options values. The rest resource will be expected to return resources of type id/description.",3 +"NEXUS-3722","08/19/2010 08:20:26","Manually uploaded artifacts do not show ""uploaded by"" in artifact information","I have manually uploaded an artifact to a hosted repo and the upload by field remains empty although I was logged in and anonymous access has been disabled.",1 +"NEXUS-3817","09/30/2010 16:24:56","Backport the rev7251 change to 1.7.2 branch","Backport the rev7251 change to 1.7.2 branch.",3 +"NEXUS-3833","10/08/2010 17:49:36","As a user, I am confused by the re-index task and schedule it unnecessarily.","Many of our users mistakenly think that the lucene indexes need to be completely rebuilt periodically. We need to make it clear that this isn't necessary. Here's a proposal to start the discussion. Existing ""re-index"" task goes away, and the new set of tasks looks like this: *Update Indexes* Proxy Repositories: This will check for updates on the remote, and download and process them as appropriate Hosted Repositories: No-Op Existing ""re-index"" jobs would be converted to ""update index"" jobs. *Repair Indexes* Proxy Repositories: Download and process full index from remote. Hosted Repositories: Rebuild index from information on disk We might want to consider prohibiting users from scheduling this task to execute periodically. If we did this it would impact a few customers who deploy directly to local storage, these would need to run the repair index task via REST. *Publish Indexes* Same as today, publishes indexes for downstream consumption ",3 +"NEXUS-6448","10/20/2010 21:38:33","Releasing a staging repository doesn't take target repository deployment policy into account","Just noticed while testing staging for 1.8.0.1 release, that if i have GAV foo:artifact:1.0 deployed to a release repository, and then i stage that same artifact, and release it to the same target repository, i get no errors, even though the target repository has Deployment Policy of Disable Redeploy",2 +"NEXUS-3864","10/22/2010 18:31:19","Remove unused properties from IndexTreeView DTO, to lessen huge payload size","Remove unused properties from IndexTreeView DTO, to lessen huge payload size. We have reported about 100k of JSON response payload sizes, since all the node types (except type ""G"") carries what is know up to that level (""A"": GA, ""V"": GAV, ""artifact"":GAV+), but the UI uses only properties supplied on ""artifact"" type nodes. By removing other properties, we may lessen the payload size a lot.",3 +"NEXUS-3870","10/25/2010 09:19:17","Reordering Repository Entries in Repo Group causes Error","When I try to reorder the Maven Central Entry, I get the following Stacktrace. The change itself is done by Nexus. 2010-10-25 10:16:45 INFO [qtp-29781703-25] - o.s.n.c.a.DefaultNe~ - Applying Nexus Configuration... 2010-10-25 10:16:45 ERROR [qtp-29781703-25] - o.s.n.c.v.DefaultAp~ - * * * * * * * * * * * * * * * * * * * * * * * * * * 2010-10-25 10:16:45 ERROR [qtp-29781703-25] - o.s.n.c.v.DefaultAp~ - Nexus configuration has validation errors/warnings 2010-10-25 10:16:45 ERROR [qtp-29781703-25] - o.s.n.c.v.DefaultAp~ - * * * * * * * * * * * * * * * * * * * * * * * * * * 2010-10-25 10:16:45 ERROR [qtp-29781703-25] - o.s.n.c.v.DefaultAp~ - The ERRORS: 2010-10-25 10:16:45 ERROR [qtp-29781703-25] - o.s.n.c.v.DefaultAp~ - o 1 - Repository central declared more than once! 2010-10-25 10:16:45 ERROR [qtp-29781703-25] - o.s.n.c.v.DefaultAp~ - * * * * * * * * * * * * * * * * * * * * * 2010-10-25 10:16:45 ERROR [qtp-29781703-25] - o.s.n.c.a.DefaultNe~ - Saving nexus configuration caused unexpected error: org.sonatype.nexus.configuration.validator.ApplicationValidationResponse@3f6c10 2010-10-25 10:16:45 WARN [qtp-29781703-25] - o.s.n.r.g.Repositor~ - Got IO Exception! java.io.IOException: Saving nexus configuration caused unexpected error: org.sonatype.nexus.configuration.validator.ApplicationValidationResponse@3f6c10 at org.sonatype.nexus.configuration.application.DefaultNexusConfiguration.saveConfiguration(DefaultNexusConfiguration.java:252) at org.sonatype.nexus.rest.groups.AbstractRepositoryGroupPlexusResource.updateRepositoryGroup(AbstractRepositoryGroupPlexusResource.java:151) at org.sonatype.nexus.rest.groups.AbstractRepositoryGroupPlexusResource.createOrUpdateRepositoryGroup(AbstractRepositoryGroupPlexusResource.java:125) at org.sonatype.nexus.rest.groups.RepositoryGroupPlexusResource.put(RepositoryGroupPlexusResource.java:159) at org.sonatype.plexus.rest.resource.RestletResource.storeRepresentation(RestletResource.java:351) at org.sonatype.nexus.rest.NexusRestletResource.storeRepresentation(NexusRestletResource.java:84) 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.jsecurity.web.servlet.FilterChainWrapper.doFilter(FilterChainWrapper.java:52) at org.jsecurity.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:105) at org.jsecurity.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:135) at org.jsecurity.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:180) at org.jsecurity.web.servlet.FilterChainWrapper.doFilter(FilterChainWrapper.java:57) at org.jsecurity.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:105) at org.jsecurity.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:135) at org.jsecurity.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:180) at org.jsecurity.web.servlet.FilterChainWrapper.doFilter(FilterChainWrapper.java:57) at org.jsecurity.web.servlet.JSecurityFilter.doFilterInternal(JSecurityFilter.java:382) at org.jsecurity.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:180) 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) 2010-10-25 10:16:45 ERROR [qtp-29781703-25] - o.s.n.e.r.DefaultEr~ - Detected Error in Nexus org.restlet.resource.ResourceException: The server encountered an unexpected condition which prevented it from fulfilling the request at org.sonatype.nexus.rest.groups.AbstractRepositoryGroupPlexusResource.updateRepositoryGroup(AbstractRepositoryGroupPlexusResource.java:193) at org.sonatype.nexus.rest.groups.AbstractRepositoryGroupPlexusResource.createOrUpdateRepositoryGroup(AbstractRepositoryGroupPlexusResource.java:125) at org.sonatype.nexus.rest.groups.RepositoryGroupPlexusResource.put(RepositoryGroupPlexusResource.java:159) at org.sonatype.plexus.rest.resource.RestletResource.storeRepresentation(RestletResource.java:351) at org.sonatype.nexus.rest.NexusRestletResource.storeRepresentation(NexusRestletResource.java:84) 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.jsecurity.web.servlet.FilterChainWrapper.doFilter(FilterChainWrapper.java:52) at org.jsecurity.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:105) at org.jsecurity.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:135) at org.jsecurity.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:180) at org.jsecurity.web.servlet.FilterChainWrapper.doFilter(FilterChainWrapper.java:57) at org.jsecurity.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:105) at org.jsecurity.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:135) at org.jsecurity.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:180) at org.jsecurity.web.servlet.FilterChainWrapper.doFilter(FilterChainWrapper.java:57) at org.jsecurity.web.servlet.JSecurityFilter.doFilterInternal(JSecurityFilter.java:382) at org.jsecurity.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:180) 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) Caused by: java.io.IOException: Saving nexus configuration caused unexpected error: org.sonatype.nexus.configuration.validator.ApplicationValidationResponse@3f6c10 at org.sonatype.nexus.configuration.application.DefaultNexusConfiguration.saveConfiguration(DefaultNexusConfiguration.java:252) at org.sonatype.nexus.rest.groups.AbstractRepositoryGroupPlexusResource.updateRepositoryGroup(AbstractRepositoryGroupPlexusResource.java:151) ... 75 more ",5 +"NEXUS-3881","10/27/2010 15:48:33","Searching more incorrect than ever","Searching changed significantly from version 1.7 and we were very motivated to update our running instance. When we realized that the search algorithms do not get better but worsen in terms of overview and transparency we drew back and since work with the older version. What is most detaining to us is that if you search for a certain keyword you do not get the same results you were getting in version 1.6.x. For example: we have a lot of artifacts with the keyword 'solution' in both groupId's and artifactId's. when in version 1.6.x you are searching for 'solution' you get: - com.solution.one:this:1.x - com.one:solution.this:1.x - com.one:this_solution:1.x - com:one.solution.this:1.x when you search for 'solution' in version 1.7.x and higher you only get: - com.one:solution.this:1.x why is that? if i search a keyword the index should filter groupId's as well as artifactId's and the filter must not stop when the string does not start with the keyword. maybe you a are positive about the concept of searching as it currently is. but we cannot offer this mess of search results to our customers, nobody would find what he / she is looking for. so we keep on using a shortly outdated version of nexus.",1 +"NEXUS-3910","11/03/2010 16:39:37","repository CYCLE detected log message is misleading","As per NEXUS-2852, it is possible for the same repo to be added twice to a group or via routing rule. The log message for when a request is being processed in this case are as in the below examples: {noformat} 20101101-155601 INFO [-26811873-13476] - o.s.n.p.m.m.M2Group~ - A repository CYCLE detected (doRetrieveItem()), while processing group ID='nar-group'. The repository with ID='central' was already processed during this request! This repository is skipped from processing. Request: /org/bouncycastle/bctsp-jdk14/1.38/bctsp-jdk14-1.38.pom.md5 20101101-155601 INFO [-26811873-13462] - o.s.n.p.m.m.M2Group~ - A repository CYCLE detected (doRetrieveItem()), while processing group ID='nar-group'. The repository with ID='central' was already processed during this request! This repository is skipped from processing. Request: /org/bouncycastle/bcprov-jdk14/1.38/bcprov-jdk14-1.38.pom.sha1 20101101-155601 INFO [-26811873-13462] - o.s.n.p.m.m.M2Group~ - A repository CYCLE detected (doRetrieveItem()), while processing group ID='nar-group'. The repository with ID='central' was already processed during this request! This repository is skipped from processing. Request: /org/bouncycastle/bcprov-jdk14/1.38/bcprov-jdk14-1.38.pom.md5 20101101-155601 INFO [-26811873-13460] - o.s.n.p.m.m.M2Group~ - A repository CYCLE detected (doRetrieveItem()), while processing group ID='nar-group'. The repository with ID='central' was already processed during this request! This repository is skipped from processing. Request: /org/bouncycastle/bcmail-jdk14/1.38/bcmail-jdk14-1.38.pom.sha1 20101101-155601 INFO [-26811873-13462] - o.s.n.p.m.m.M2Group~ - A repository CYCLE detected (doRetrieveItem()), while processing group ID='nar-group'. The repository with ID='central' was already processed during this request! This repository is skipped from processing. Request: /org/bouncycastle/bcmail-jdk14/1.38/bcmail-jdk14-1.38.pom.md5 {noformat} This issue is about changing the wording of the message. CYCLE is not what is happening. CYCLE implies an infinite loop that needs to be broken out of, something much worse than performing duplicate work processing a request. Something like ""Repository ID='central' in group ID='nar-group' will be ignored while retrieving '/org/bouncycastle/bcmail-jdk14/1.38/bcmail-jdk14-1.38.pom.md5' since repository ID='central' was processed earlier in this request."" might be more accurate. ",2 +"NEXUS-3911","11/03/2010 21:28:47","Error 500 downloading file due to corrupt proxy attributes file","Due to a server crash, a corrupt proxy attributes file for a snapshot pom file was written out, it only had this content: {code} Nexus mirror and dealing with XML based artifacts repository artifacts. After some packet sniffing and testing I found that requesting our Karaf feature file, which is a XML based artifact with a classifier: curl -v http://remote:8081/nexus/content/repositories/smxmavenrepo/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml {code} > GET /nexus/content/repositories/smxmavenrepo/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml HTTP/1.1 > User-Agent: curl/7.21.2 (x86_64-apple-darwin10.4.0) libcurl/7.21.2 OpenSSL/1.0.0b zlib/1.2.5 libidn/1.19 > Host: in1sec03.smx.co.in:8081 > Accept: */* > < HTTP/1.1 404 Not Found < Date: Mon, 29 Nov 2010 21:16:47 GMT < Expires: Thu, 01 Jan 1970 00:00:00 GMT < Set-Cookie: JSESSIONID=ggosgpjdy2y2;Path=/nexus < Content-Type: text/html; charset=ISO-8859-1 < Date: Mon, 29 Nov 2010 21:16:47 GMT < Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept < Server: Noelios-Restlet-Engine/1.1.6-SONATYPE-5348-V4 < Content-Length: 330 {code} I get a 404 and no upstream is checked, however when requesting an a jar artifact for the same thing: curl -v http://remote:8081/nexus/content/repositories/smxmavenrepo/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27.jar {code} > GET /nexus/content/repositories/smxmavenrepo/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27.jar HTTP/1.1 > User-Agent: curl/7.21.2 (x86_64-apple-darwin10.4.0) libcurl/7.21.2 OpenSSL/1.0.0b zlib/1.2.5 libidn/1.19 > Host: in1sec03.smx.co.in:8081 > Accept: */* > < HTTP/1.1 200 OK < Date: Mon, 29 Nov 2010 21:16:27 GMT < Expires: Thu, 01 Jan 1970 00:00:00 GMT < Set-Cookie: JSESSIONID=y3ymmt2jubxu;Path=/nexus < Content-Type: application/java-archive < Last-Modified: Fri, 12 Nov 2010 03:15:41 GMT < ETag: ""6e29e9e66c27605036fce871da6429ec70099435"" < Date: Mon, 29 Nov 2010 21:16:37 GMT < Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept < Server: Noelios-Restlet-Engine/1.1.6-SONATYPE-5348-V4 < Content-Length: 908770 .....binary data here..... {code} This led to me think there was something about the content type of the artifact, and after putting the nexus logging into DEBUG I see the following: {code} 2010-11-29 21:29:06 DEBUG [27-features.xml] - o.s.n.p.s.l.f.Defau~ - /smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml --> /smx/nexus/repository/smx/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 2010-11-29 21:29:06 DEBUG [27-features.xml] - o.s.n.i.DefaultInde~ - The ArtifactContext created from file is fine, continuing. 2010-11-29 21:29:06 DEBUG [27-features.xml] - o.s.n.p.r.v.Default~ - Checking if file: /smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml is of one of the types: [text/xml] 2010-11-29 21:29:06 DEBUG [27-features.xml] - e.m.m.MimeUtil2 - Getting MIME types for InputSteam [java.io.BufferedInputStream@689cf670]. 2010-11-29 21:29:06 DEBUG [27-features.xml] - e.m.m.MimeUtil2 - Retrieved MIME types [application/octet-stream] 2010-11-29 21:29:06 DEBUG [27-features.xml] - o.s.n.p.r.v.Default~ - Expected mime types: [text/xml], Actual mime types: application/octet-stream 2010-11-29 21:29:06 DEBUG [27-features.xml] - o.s.n.p.m.m.M2Repos~ - Using mirror URL:http://build.smx.co.nz:8081/nexus/content/groups/public/,retryCount=10 2010-11-29 21:29:06 DEBUG [27-features.xml] - o.s.n.p.s.r.c.Commo~ - Invoking HTTP GET method against remote location http://build.smx.co.nz:8081/nexus/content/groups/public/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.m.m.M2Repos~ - Caching item smxmavenrepo:/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml in local storage of repository. 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.s.l.f.Defau~ - /smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml --> /smx/nexus/repository/smx/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.s.l.f.Defau~ - /smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml --> /smx/nexus/repository/smx/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.s.l.f.Defau~ - Copying stream with buffer size of: 4096 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.a.DefaultAt~ - Storing attributes on UID=smxmavenrepo:/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.m.m.M2Repos~ - Removing path /smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml from NFC. 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.s.l.f.Defau~ - /smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml --> /smx/nexus/repository/smx/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 2010-11-29 21:29:07 DEBUG [27-features.xml] - e.m.m.MimeUtil2 - Getting MIME types for file [/smx/nexus/repository/smx/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml]. 2010-11-29 21:29:07 DEBUG [27-features.xml] - e.m.m.MimeUtil2 - Retrieved MIME types [text/xml,application/xml] 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.a.DefaultAt~ - Loading attributes on UID=smxmavenrepo:/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.a.DefaultAt~ - Storing attributes on UID=smxmavenrepo:/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.p.a.SimpleAppli~ - Notifying 18 EventListener about event org.sonatype.nexus.proxy.events.RepositoryItemEventCache fired (org.sonatype.nexus.proxy.events.RepositoryItemEventCache@203d793) 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.s.l.f.Defau~ - /smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml --> /smx/nexus/repository/smx/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.i.DefaultInde~ - The ArtifactContext created from file is fine, continuing. 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.r.v.Default~ - Checking if file: /smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml is of one of the types: [text/xml] 2010-11-29 21:29:07 DEBUG [27-features.xml] - e.m.m.MimeUtil2 - Getting MIME types for InputSteam [java.io.BufferedInputStream@4a3df4ed]. 2010-11-29 21:29:07 DEBUG [27-features.xml] - e.m.m.MimeUtil2 - Retrieved MIME types [application/octet-stream] 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.r.v.Default~ - Expected mime types: [text/xml], Actual mime types: application/octet-stream 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.m.m.M2Repos~ - Item /smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml failed content integrity validation. 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.s.l.f.Defau~ - /smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml --> /smx/nexus/repository/smx/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 2010-11-29 21:29:07 DEBUG [27-features.xml] - e.m.m.MimeUtil2 - Getting MIME types for file [/smx/nexus/repository/smx/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml]. 2010-11-29 21:29:07 DEBUG [27-features.xml] - e.m.m.MimeUtil2 - Retrieved MIME types [text/xml,application/xml] 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.a.DefaultAt~ - Loading attributes on UID=smxmavenrepo:/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.a.DefaultAt~ - Storing attributes on UID=smxmavenrepo:/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.a.DefaultAt~ - Deleting attributes on UID=smxmavenrepo:/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.s.l.f.Defau~ - /smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml --> /smx/nexus/repository/smx/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.m.m.M2Repos~ - Item /smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml not found in remote storage. 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.m.m.M2Repos~ - Item /smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml does not exist in local storage neither in remote storage, throwing ItemNotFoundException. 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.m.m.M2Repos~ - smxmavenrepo retrieveItem() :: NOT FOUND smxmavenrepo:/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 2010-11-29 21:29:07 DEBUG [27-features.xml] - o.s.n.p.m.m.M2Repos~ - Adding path /smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml to NFC. 2010-11-29 21:29:07 ERROR [27-features.xml] - o.s.n.r.ContentPlex~ - Got exception during processing request ""GET http://in1sec03.smx.co.in:8081/nexus/content/repositories/smxmavenrepo/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml"": Item not found on path ""/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml"" in repository ""smxmavenrepo""! 2010-11-29 21:29:07 DEBUG [27-features.xml] - org.mortbay.log - RESPONSE /nexus/content/repositories/smxmavenrepo/smx3/smx3.demobrands/3.0.27/smx3.demobrands-3.0.27-features.xml 404 2010-11-29 21:29:07 DEBUG [p-880484842-103] - org.mortbay.log - EOF {code} So it looks like my LOCAL Nexus ( 1.5 ) isn't sending the correct Content-Type headers for the XML files, and the remote Nexus is rejecting it. The local nexus appears to be sending ""application/xml"", but it looks like the remote nexus wants ""text/xml"" when checking the incoming InputStream. Looking at the Nexus JIRA I see NEXUS-2416 [1] and NEXUS-2688 [2] related to Content-Type issues, as mentioned in NEXUS-2688 I added a mime-types.properties file to my local Nexus to send out .xml files as text/xml ( and saw that coming out fine ), expired the remote servers cache and saw it get the same problems as the original request without any change. The problem looks to be in AbstractFileTypeValidator#isExpectedFileType when Nexus calls out to eu.medsea.mimeutil.MimeUtil2, I wonder if wrapping the InputStream with a BufferedInputStream is triggering MimeUtil2 to only see the stream as an octet/stream rather than what it should be? Hopefully there's enough info here for someone to make an informed response - shall I raise this entire email into a JIRA ticket? Mark [1] https://issues.sonatype.org/browse/NEXUS-2416 [2] https://issues.sonatype.org/browse/NEXUS-2688 ",1 +"NEXUS-3977","12/03/2010 09:48:45","Allow to stop or suspend tasks","For now it is impossible to stop or suspend a task which is started. If a long task is running but an important one is coming (for exemple internal tasks related to staging repositories management) we have to wait the end of the one running and we have an unstable repository because internal tasks aren't done. It could be manual to llow to stop/suspend it if it things somethings goes wrong or it could be automated to let internal tasks automatically launched when they are triggered.",20 +"NEXUS-3979","12/03/2010 17:18:37","Redesign the Security UI","Need to redesign the users page to support huge numbers of users/roles/privileges. Currently when there are a large number or users/roles/privileges the pages become non-manageable",20 +"NEXUS-3996","12/08/2010 20:21:28","Error creating scheduled task","I tried to create a scheulded task: Type: Reindex Repo: all Reoccurrence: Once Date: 12/08/2010 (today, this is key) time: 17:00 (current local time: ~15:10, server time Wed Dec 8 14:09:47 CST 2010) ",1 +"NEXUS-3997","12/10/2010 09:08:42","Nexus log too many message: ""Basic authentication scheme selected"" [ENH]","There are many and many log entry with this message: {quote} ... 2010-12-10 09:58:29 INFO [l-2-thread-3526] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3531] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3533] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3535] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3538] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3540] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3543] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3534] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3541] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3530] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3542] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3550] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3553] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3527] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3545] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3544] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3555] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3558] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3554] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected 2010-12-10 09:58:29 INFO [l-2-thread-3529] - o.a.c.h.a.AuthChall~ - Basic authentication scheme selected ... {quote} It should be into debug mode (or deleted) because there is no interesting information into this message to take an action. Regards. ",1 +"NEXUS-4009","12/15/2010 01:03:25","""Expire cache"" from ""local storage"" tab fails with 403 error even when user has ""Clear Repository Caches"" privilege","Running ""Expire cache"" by right clicking on the ""local storage"" tab's tree fails with 403 error even when user has ""Clear Repository Caches"" privilege It appears that the reason for this is the DELETE request is sent without a trailing ""/""? DELETE http://loclahost:8081/nexus/service/local/data_cache/repositories/releases/content ",1 +"NEXUS-4090","01/25/2011 21:40:40","Possible to create cycle of group repositories, results in stack overflow","# create a maven 2 repository group ""child"" # crate a maven 2 repository group ""parent"", add ""child"" as it's only member # attempt to add ""parent"" to the ""child"" group. This fails with an error, as it should. Now create a Maven 2 hosted repository. After this, the ""parent"" is a member of ""child"". Attempting to access either group results in a stack overflow. {noformat} 2011-01-25 15:35:18 INFO [pool-1-thread-3] - org.apache.maven.index.packer.DefaultIndexPacker - Unable to read properties file, will force index regeneration 2011-01-25 15:35:18 INFO [pool-1-thread-3] - org.sonatype.nexus.feeds.DefaultFeedRecorder - Updating repository index ""foo"" from path null and below. : Process started on Tue Jan 25 15:35:18 CST 2011, finished successfully on Tue Jan 25 15:35:18 CST 2011 2011-01-25 15:39:32 ERROR [qtp-564840309-4] - org.mortbay.log - /nexus/content/groups/childgroup/ java.lang.StackOverflowError at java.lang.Character.codePointAt(Character.java:2335) at java.util.regex.Pattern$CharProperty.match(Pattern.java:3344) at java.util.regex.Pattern$Curly.match0(Pattern.java:3760) at java.util.regex.Pattern$Curly.match(Pattern.java:3744) at java.util.regex.Pattern$GroupHead.match(Pattern.java:4168) at java.util.regex.Pattern$Neg.match(Pattern.java:4598) at java.util.regex.Matcher.match(Matcher.java:1127) at java.util.regex.Matcher.matches(Matcher.java:502) at org.sonatype.nexus.proxy.target.Target.isPathContained(Target.java:100) at org.sonatype.nexus.proxy.target.DefaultTargetRegistry.getTargetsForRepositoryPath(DefaultTargetRegistry.java:326) at org.sonatype.nexus.proxy.repository.AbstractRepository.getTargetsForRequest(AbstractRepository.java:703) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.getGroupsTargetSet(DefaultNexusItemAuthorizer.java:83) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.getGroupsTargetSet(DefaultNexusItemAuthorizer.java:88) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.getGroupsTargetSet(DefaultNexusItemAuthorizer.java:88) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.getGroupsTargetSet(DefaultNexusItemAuthorizer.java:88) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.getGroupsTargetSet(DefaultNexusItemAuthorizer.java:88) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.getGroupsTargetSet(DefaultNexusItemAuthorizer.java:88) {noformat}",1 +"NEXUS-4099","02/01/2011 23:00:18","Artifact maximum age has no effect for release repositories, but is enabled.","Artifact maximum age does not have any effect for proxied release artifacts (NEXUS-3069). However, the UI element for this is still enabled. We need to revisit the reason for NEXUS-3069 (and it's original reason NEXUS-3065), and if possible restore this functionality (since it breaks staging). If we cannot restore it, we should at least disable the UI.",1 +"NEXUS-4107","02/08/2011 09:41:30","Sonatype repositories - cant browse repositories","Cant browse remote repositories: https://repository.sonatype.org/content/repositories/central/ https://repository.sonatype.org/content/repositories/flexmojos-releases/ https://repository.sonatype.org/content/repositories/flexmojos-snapshots/ https://repository.sonatype.org/content/repositories/flex/",2 +"NEXUS-4114","02/14/2011 09:47:50","UI broken in nexus 1.9 with repository group ""all""","just tried to upgrade to 1.9 and found an critical error for us. All repostories besides the group all are not shown in the ui. After some try and error i figured out. If you add an repository group with the id ""all"", this error occurs. Maven works, just the ui is broken, so it renders this version useless for us. Can be reproduced with an clean installation. ",1 +"NEXUS-4117","02/15/2011 17:46:04","Nexus should print required privileges in log at DEBUG level when denying access to something","This is a regression. The new security does not print the privileges it is looking for (even at DEBUG) before issuing a 403. It is extremely difficult to figure out what privileges are needed for specific operations because of this.",3 +"NEXUS-4123","02/16/2011 15:27:04","NPE deleting group repositories if route list is empty","Remove all repository Routes from Nexus. You will get an NPE when trying to visit the routing screen. You will also get an NPE if you attempt to delete a repository from the repositories view. This cannot be worked around in the UI, attempts to add new routes will fail. {noformat} 2011-02-16 08:42:43 ERROR [@qtp-11486759-4] - org.sonatype.nexus.rest.NexusApplication - Unhandled exception or error intercepted java.lang.NullPointerException at org.sonatype.nexus.proxy.mapping.DefaultRequestRepositoryMapper.getMappings(DefaultRequestRepositoryMapper.java:497) at org.sonatype.nexus.rest.routes.RepositoryRouteListPlexusResource.get(RepositoryRouteListPlexusResource.java:105) at org.sonatype.plexus.rest.resource.RestletResource.represent(RestletResource.java:246) at org.sonatype.nexus.rest.NexusRestletResource.represent(NexusRestletResource.java:52) at org.restlet.resource.Resource.getRepresentation(Resource.java:302) at org.restlet.resource.Resource.handleGet(Resource.java:464) at org.restlet.Finder.handle(Finder.java:353) 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:62) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:83) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:67) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:83) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:67) 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:343) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:83) 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.headerComplete(HttpConnection.java:864) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539) 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) {noformat}",1 +"NEXUS-4133","02/22/2011 16:40:31","Update Shiro to latest version","I think the latest released is 1.1.1 There are a bunch of fixes we want to consume.",1 +"NEXUS-4134","02/23/2011 14:22:46","Documentation for repositories REST XML payload is incorrect.","If you attempt to create a repository using the XML payload described in the documentation it fails, you get error 400. No further information is printed in the log, even at debug level. This is due to missing required fields. If you send up all fields that come from GET request it works. {noformat} curl -u admin:admin123 -H ""Content-Type: application/xml"" http://localhost:8081/nexus/service/local/repositories/releases http://localhost:8081/nexus/content/repositories/releases releases Releases maven2 org.sonatype.nexus.proxy.repository.Repository maven2 hosted true ALLOW_WRITE_ONCE true true 1440 RELEASE false file:/Users/rseddon/Nexii/nexus-1801/nexus-professional-webapp-1.8.0.1/./../sonatype-work/nexus/storage/releases/ {noformat}",1 +"NEXUS-4137","02/23/2011 22:46:24","REST documentation for user-to-role XML payload is incorrect.","The XML payload shown for user-to-role is incorrect. It shows: {noformat} {noformat} This should be: {noformat} {noformat}",1 +"NEXUS-4138","02/23/2011 22:49:09","REST documentation for repo-group XML payload is incorrect.","The REST documentation for the XML payload of type repo-group is incorrect. It only shows the repositories list, it does not show any of the required/optional attributes for the group itself.",1 +"NEXUS-4150","03/04/2011 19:11:12","Browse remote doesn't seem to be working for https url's","The request sent from Nexus to the remote is incorrect if the remote URL is using https. Here's a request sent to central for the ""org"" node: http://repo1.maven.org/maven2/org/?delimiter=/ Here's a request to apache snapshots for the ""org"" node: http://repository.apache.org/snapshots/https://repository.apache.org/content/groups/snapshots/org/?delimiter=/ The apache snapshots request returns 404. ",2 +"NEXUS-4151","03/04/2011 20:33:31","Nexus creates zero byte files in /content if content type header is in correct","I'm not sure yet how widespread this problem is, but at least in some cases Nexus silently creates files with no content if the Content-Type header is set incorrectly. The following gives a zero byte file in the ""snapshots"" repository: {noformat} curl -T payload.xml http://localhost:8081/nexus/content/repositories/snapshots/org/fu/bar/ -u deployment:deployment123 -H 'Content-Type: application/x-www-form-urlencoded' {noformat} Set the content type correctly (to ""application/xml"") and it works correctly. This was very difficult to diagnose because we are returning ""201"" created, and no log message can be found about the failure, even at DEBUG level. If we are going to reject based on content type we should return 400, and log an appropriate message. ",1 +"NEXUS-4158","03/09/2011 21:03:03","External role mapping UI doesn't scale well","It isn't uncommon for a large LDAP system to have hundreds of groups. The external role mapping UI loads all of these into a droplist. Loading this list can take a very long time. It is also very cumbersome to find roles in this list since there is no search capability. ",8 +"NEXUS-4163","03/10/2011 22:37:38","Documentation for role-request XML payload is incorrect","The role-request XML payload is not documented correctly. {noformat} {noformat} This should be: {noformat} {noformat}",1 +"NEXUS-4164","03/11/2011 13:24:20","Role ""UI: LDAP Admin"" grants access to Administration - Server link, but results with 403 when opening it","Role ""UI: LDAP Admin"" grants access to Administration - Server link, but results with 403 when opening it. I took new deployment of Nexus OSS trunk build, started it up. As ""admin"", I granted ""UI: LDAP Admin"" role to user ""deployment"". Logged out. Logged in as ""deployment"" user. The Administration -> Server became visible -- along with the expected Security -> LDAP Configuration. But opening Server administration page results in 403 Forbidden popup error presented by UI.",1 +"NEXUS-4166","03/15/2011 09:47:47","Menu option ""run"" disappears from right-click menu in Scheduled tasks after running a task","When manually executing a task in the scheduled tasks screen by right-clicking and selecting ""run"", that option then disappears (for that specific task) unless I refresh. To re-produce: * Create a scheduled task. The ones I've seen this issue with are scheduled daily/weekly, but I would assume a manual execution task would also show it. * Click refresh. * Select the task and right-click. Select ""run"". * Now, right-click again. The ""run"" options is now gone. The only way to get it back is to hit refresh. ",1 +"NEXUS-4180","03/23/2011 17:25:13","As a user, I would like to be able to override the location of the storage directory.","It's increasingly common for Nexus to be run on machines which have most of their storage on network mounted drives (san, iscsi, etc.). Ideally in this situation most of the work directory should be stored on local disk for high performance, but the storage directory should be placed on the larger external drive. Currently we recommend use of symlinks to achieve this configuration, but this isn't possible for users who run Nexus on older versions of Windows. So they must manually override all of the local storage settings for every repository, which is very tedious, and can't even be done for some types of repositories (such as staging). We should provide a setting for this. ",3 +"NEXUS-4188","03/30/2011 11:28:48","Nexus uses wrong content-type from Index GZ files","Nexus uses wrong content-type from Index GZ files. See http://jira.codehaus.org/browse/MINDEXER-13 for details. In short, Nexus serves Index GZ files with content-type of {{application/x-compressed}} that is usually associated with Unix old {{compress}} utility. It should use {{application/x-gzip}} instead (or some variant).",1 +"NEXUS-4203","04/04/2011 14:54:01","Bad class version in .war 1.9.0.2 release","Nexus.war won't start on Tomcat running on Java 1.5: java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class org.sonatype.nexus.web.PlexusContainerContextListener) My best guess is it's probably compiled on Java 1.6.",1 +"NEXUS-4205","04/04/2011 17:00:16","Enable file content validation for new proxy repositories.","Seems to me that the file content validation feature is pretty well proven at this point. I think we should enable it by default for new proxy repositories (and for the proxy's that ship in the default configuration).",1 +"NEXUS-4207","04/04/2011 18:42:59","make default value of Publish URL ""True"" when creating a group repository","When creating a group, provide default value for ""Publish URL"". In 99.8% of cases it's ""true""",1 +"NEXUS-4209","04/05/2011 12:22:44","FileItems generated by ContentGenerator has wrong behavior wrt ""conditional GET""s, they always report 304 Not Modified","FileItems generated by ContentGenerator has wrong behavior wrt ""conditional GET""s, they always report 304 Not Modified. I bet this is true for all Nexus version since we introduces ContentGenerators (Nexus 1.4 or so?). With ""normal"" File items, the file's timestamp is taken to compare with timestamp sent by conditional GETs, and this works with normal files (like maven metadata or JARs), since in case of deploy/redeploy, the file timestamp did change (nexus maintains filestamps, and set's it to either the sent value or ""now""). But, ContentGenerator generated files are almost exactly same to File items, except their -- usually just placeholder with component's id -- content is discarded, and ContentGenerator component is invoked to generate content on the fly. But there is a problem: their timestamp _never changes_, since they got created. Browsers and clients, that tries to optimize traffic best, once fetch generated content, will never be able to refetch it! Proof (reproduce steps): * start up _empty_ Nexus OSS with factory config * use Chrome to fetch {{archetype-catalog.xml}} of third-party repository, should be empty * upload over UI an artifact that has packaging ""maven-archetype"" (POM and JAR). * refetch the archetype catalog in browser. _No way_ to get new content * try {{wget}} (or some similar tool that issues unconditional GET), voila, it's there! Note about archetype catalog: how it went unnoticed? The trick is, that Archetype Catalog plugin _installs_ (simply put, saves the {{archetype-catalog.xml}} generated file _as part of boot process_ of Nexus! Meaning, the file timestamp would actually change and actualized on every boot. Testers and QAs would hardly notice this. But on long running instances with Chrome makes your head dizzy. ",1 +"NEXUS-4215","04/06/2011 10:14:09","artifact ignored due to failing content validation is logged as cached in feed","If enabled ""File content validation"" for a proxy repo for Maven central. Nexus retrieves files through a virus scanner, which returns html error page for some artifacts. Nexus correctly ignores these invalid downloaded files (the error page) as I can't see it cached, but in the feeds (e.g. CachedArtifacts) is says that the artifact was cached. This is not correct.",2 +"NEXUS-4217","04/06/2011 11:30:55","Browse Remote tab does not shows upon adding Proxy repository","Browse Remote tab does not shows upon adding Proxy repository. Steps to reproduce: * start clean Nexus * log in as admin * click Repositories * add proxy repository (just another for central, fill all in as usual) * click Save * the lower half of panel is focused on Browse Storage, but there is no Browse Remote tab * highlight another repository, come back to newly added (to force UI refresh), still no Browse Remote * close the whole Repositories tab, open it again, click newly added repo, there is it!",1 +"NEXUS-4218","04/06/2011 19:57:07","Suppress generation of maven 3 metadata when older maven versions are detected","If you rebuild metadata on a hosted snapshot repository that has artifacts with multiple classifiers Nexus will generate the new maven-metadata.xml file with classifier information. Since many customers are reluctant to change their Maven version on older branch builds, we should provide an option to suppress this.",1 +"NEXUS-4219","04/07/2011 13:28:48","nexus is silent when it does not have permissions to update security.xml","so last night oss.sonatype.org is rebooted and today I got many complaints from ossrh users, saying they are having 401 errors then I found their roles are lost and the cause is: {noformat} java.io.FileNotFoundException: /opt/j2ee/domains/sonatype.org/oss.repository/nexus-professional-webapp-1.9.0.2-20110330-003359/./../sonatype-work/nexus/conf/security.xml (Permission denied) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.(FileOutputStream.java:179) at java.io.FileOutputStream.(FileOutputStream.java:131) at org.sonatype.security.model.source.FileModelConfigurationSource.saveConfiguration(FileModelConfigurationSource.java:247) at org.sonatype.security.model.source.FileModelConfigurationSource.storeConfiguration(FileModelConfigurationSource.java:142) at org.sonatype.security.realms.tools.DefaultConfigurationManager.save(DefaultConfigurationManager.java:540) at com.sonatype.nexus.staging.security.StagingSecurityResource.onEvent(StagingSecurityResource.java:331) at org.sonatype.plexus.appevents.AbstractSimpleEventMulticaster.notifyEventListeners(AbstractSimpleEventMulticaster.java:55) at com.sonatype.nexus.staging.DefaultStagingRepositoryManager.dropStageRepository(DefaultStagingRepositoryManager.java:229) at com.sonatype.nexus.staging.DefaultStagingManager.dropStagingRepository(DefaultStagingManager.java:664) at com.sonatype.nexus.staging.promotion.PromotionTask.doRun(PromotionTask.java:203) at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:192) at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:338) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) {noformat} and {noformat} -rw-r--r-- 1 j2ee-repository j2ee-repository 121 Feb 3 21:00 procurement.xml -rw-r--r-- 1 j2ee-repository j2ee-repository 896227 Feb 3 21:00 procurement.xml.bak -rw-r--r-- 1 j2ee-repository j2ee-repository 531 Apr 6 13:18 security-configuration.xml -rw-r--r-- 1 bdemers bdemers 6143293 Mar 29 08:42 security.xml {noformat} Nexus should return something like 500 error when it can not persist security data.",1 +"NEXUS-4225","04/11/2011 15:26:37","Redirect from http to https breaks remote repository browser","Add a proxy repository for: http://repository.jboss.org/nexus/content/groups/public Request from Nexus is sent as: http://repository.jboss.org/nexus/content/groups/public/https://repository.jboss.org/nexus/content/groups/public/activespace/?delimiter=/ If you add the proxy for the ""https"" url it works. ",2 +"NEXUS-4226","04/11/2011 15:34:45","Unable to update proxy repository's configuration for minutes after adding it.","I added a proxy repositories for http://repository.jboss.org/nexus/content/groups/public and https://repository.jboss.org/nexus/content/repositories/releases/ Immediately after, I tried to change the ""public"" URL to use ""https"". The save timed out. It was nearly 5 minutes before I could get it to go through. {noformat} wrapper | Dumping JVM state. jvm 1 | 2011-04-11 09:15:15 jvm 1 | Full thread dump Java HotSpot(TM) 64-Bit Server VM (19.1-b02-334 mixed mode): jvm 1 | jvm 1 | ""nxevthost-1-thread-92"" prio=5 tid=102ade800 nid=0x10faee000 waiting on condition [10faed000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (parking) jvm 1 | at sun.misc.Unsafe.park(Native Method) jvm 1 | - parking to wait for <7cdde1a58> (a java.util.concurrent.SynchronousQueue$TransferStack) jvm 1 | at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323) jvm 1 | at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874) jvm 1 | at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""nxevthost-1-thread-91"" prio=5 tid=102b5c800 nid=0x10ebd4000 waiting on condition [10ebd3000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (parking) jvm 1 | at sun.misc.Unsafe.park(Native Method) jvm 1 | - parking to wait for <7cdde1a58> (a java.util.concurrent.SynchronousQueue$TransferStack) jvm 1 | at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323) jvm 1 | at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874) jvm 1 | at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""pxpool-1-thread-3"" prio=1 tid=102a1c800 nid=0x111894000 runnable [111892000] jvm 1 | java.lang.Thread.State: RUNNABLE jvm 1 | at sun.nio.ch.FileDispatcher.pread0(Native Method) jvm 1 | at sun.nio.ch.FileDispatcher.pread(FileDispatcher.java:31) jvm 1 | at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:199) jvm 1 | at sun.nio.ch.IOUtil.read(IOUtil.java:175) jvm 1 | at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:612) jvm 1 | at org.apache.lucene.store.NIOFSDirectory$NIOFSIndexInput.readInternal(NIOFSDirectory.java:168) jvm 1 | at org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.java:139) jvm 1 | at org.apache.lucene.index.CompoundFileReader$CSIndexInput.readInternal(CompoundFileReader.java:257) jvm 1 | at org.apache.lucene.store.BufferedIndexInput.refill(BufferedIndexInput.java:160) jvm 1 | at org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.java:119) jvm 1 | at org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.java:94) jvm 1 | at org.apache.lucene.store.IndexInput.readString(IndexInput.java:124) jvm 1 | at org.apache.lucene.index.FieldsReader.addField(FieldsReader.java:379) jvm 1 | at org.apache.lucene.index.FieldsReader.doc(FieldsReader.java:239) jvm 1 | at org.apache.lucene.index.SegmentReader.document(SegmentReader.java:943) jvm 1 | at org.apache.lucene.index.DirectoryReader.document(DirectoryReader.java:533) jvm 1 | at org.apache.lucene.index.IndexReader.document(IndexReader.java:658) jvm 1 | at org.apache.maven.index.updater.DefaultIndexUpdater.filterDirectory(DefaultIndexUpdater.java:375) jvm 1 | at org.apache.maven.index.updater.DefaultIndexUpdater.loadIndexDirectory(DefaultIndexUpdater.java:208) jvm 1 | at org.apache.maven.index.updater.DefaultIndexUpdater.access$300(DefaultIndexUpdater.java:75) jvm 1 | at org.apache.maven.index.updater.DefaultIndexUpdater$LuceneIndexAdaptor.setIndexFile(DefaultIndexUpdater.java:641) jvm 1 | at org.apache.maven.index.updater.DefaultIndexUpdater.fetchAndUpdateIndex(DefaultIndexUpdater.java:860) jvm 1 | at org.apache.maven.index.updater.DefaultIndexUpdater.fetchAndUpdateIndex(DefaultIndexUpdater.java:156) jvm 1 | at org.sonatype.nexus.index.DefaultIndexerManager.updateRemoteIndex(DefaultIndexerManager.java:1095) jvm 1 | at org.sonatype.nexus.index.DefaultIndexerManager.downloadRepositoryIndex(DefaultIndexerManager.java:997) jvm 1 | at org.sonatype.nexus.index.DefaultIndexerManager.reindexRepository(DefaultIndexerManager.java:881) jvm 1 | at org.sonatype.nexus.index.DefaultIndexerManager.reindexRepository(DefaultIndexerManager.java:834) jvm 1 | at org.sonatype.nexus.index.DefaultIndexerManager.reindexRepository(DefaultIndexerManager.java:808) jvm 1 | at org.sonatype.nexus.tasks.ReindexTaskHandlerLegacy.reindexRepository(ReindexTaskHandlerLegacy.java:60) jvm 1 | at org.sonatype.nexus.tasks.AbstractIndexerTask.doRun(AbstractIndexerTask.java:72) jvm 1 | at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:192) jvm 1 | at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:338) jvm 1 | at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:138) jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Index-BottleWarmer-aaa-ctx"" daemon prio=5 tid=102ecb000 nid=0x11011e000 waiting on condition [11011d000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.apache.maven.index.context.DefaultIndexingContext$1.run(DefaultIndexingContext.java:1183) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Thread-35"" daemon prio=5 tid=101fc5000 nid=0x10be27000 waiting on condition [10be26000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.sonatype.nexus.proxy.repository.RepositoryStatusCheckerThread.run(RepositoryStatusCheckerThread.java:122) jvm 1 | jvm 1 | ""485996796@qtp-773092604-18"" prio=5 tid=101a8b000 nid=0x11168e000 in Object.wait() [11168d000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (on object monitor) jvm 1 | at java.lang.Object.wait(Native Method) jvm 1 | - waiting on <7ced49b00> (a org.mortbay.thread.QueuedThreadPool$PoolThread) jvm 1 | at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:563) jvm 1 | - locked <7ced49b00> (a org.mortbay.thread.QueuedThreadPool$PoolThread) jvm 1 | jvm 1 | ""879132065@qtp-773092604-17"" prio=5 tid=101cc9800 nid=0x11158b000 in Object.wait() [11158a000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (on object monitor) jvm 1 | at java.lang.Object.wait(Native Method) jvm 1 | - waiting on <7ced4adc0> (a org.mortbay.thread.QueuedThreadPool$PoolThread) jvm 1 | at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:563) jvm 1 | - locked <7ced4adc0> (a org.mortbay.thread.QueuedThreadPool$PoolThread) jvm 1 | jvm 1 | ""1119100154@qtp-773092604-14"" prio=5 tid=101809800 nid=0x111282000 waiting on condition [11127e000] jvm 1 | java.lang.Thread.State: WAITING (parking) jvm 1 | at sun.misc.Unsafe.park(Native Method) jvm 1 | - parking to wait for <7cf403c20> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) jvm 1 | at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) jvm 1 | at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:811) jvm 1 | at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:842) jvm 1 | at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1178) jvm 1 | at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:807) jvm 1 | at org.sonatype.nexus.index.DefaultIndexerManager.updateRepositoryIndexContext(DefaultIndexerManager.java:417) jvm 1 | at org.sonatype.nexus.events.IndexingRepositoryRegistryRepositoryEventInspector.inspectForIndexerManager(IndexingRepositoryRegistryRepositoryEventInspector.java:136) jvm 1 | at org.sonatype.nexus.events.IndexingRepositoryRegistryRepositoryEventInspector.inspect(IndexingRepositoryRegistryRepositoryEventInspector.java:103) jvm 1 | at org.sonatype.nexus.events.DefaultEventInspectorHost$EventInspectorHandler.run(DefaultEventInspectorHost.java:157) jvm 1 | at org.sonatype.nexus.events.DefaultEventInspectorHost.processEvent(DefaultEventInspectorHost.java:122) jvm 1 | at org.sonatype.nexus.events.DefaultEventInspectorHost.onEvent(DefaultEventInspectorHost.java:129) jvm 1 | at org.sonatype.plexus.appevents.AbstractSimpleEventMulticaster.notifyEventListeners(AbstractSimpleEventMulticaster.java:55) jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractRepository.commitChanges(AbstractRepository.java:192) jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.commitChanges(AbstractProxyRepository.java:139) jvm 1 | at org.sonatype.nexus.proxy.maven.AbstractMavenRepository.commitChanges(AbstractMavenRepository.java:93) jvm 1 | at org.sonatype.nexus.configuration.AbstractConfigurable.onEvent(AbstractConfigurable.java:137) jvm 1 | at org.sonatype.plexus.appevents.AbstractSimpleEventMulticaster.notifyEventListeners(AbstractSimpleEventMulticaster.java:55) jvm 1 | at org.sonatype.nexus.configuration.application.DefaultNexusConfiguration.applyConfiguration(DefaultNexusConfiguration.java:228) jvm 1 | at org.sonatype.nexus.configuration.application.DefaultNexusConfiguration.saveConfiguration(DefaultNexusConfiguration.java:255) jvm 1 | - locked <7cdb173e8> (a org.sonatype.nexus.configuration.application.DefaultNexusConfiguration) jvm 1 | at org.sonatype.nexus.rest.repositories.RepositoryPlexusResource.put(RepositoryPlexusResource.java:331) jvm 1 | at org.sonatype.plexus.rest.resource.RestletResource.storeRepresentation(RestletResource.java:316) jvm 1 | at org.sonatype.nexus.rest.NexusRestletResource.storeRepresentation(NexusRestletResource.java:102) jvm 1 | at org.restlet.resource.Resource.put(Resource.java:706) jvm 1 | at org.restlet.resource.Resource.handlePut(Resource.java:603) jvm 1 | at org.restlet.Finder.handle(Finder.java:359) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:39) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) jvm 1 | at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) jvm 1 | at org.restlet.Application.handle(Application.java:341) jvm 1 | at org.restlet.ext.wadl.WadlApplication.handle(WadlApplication.java:705) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) jvm 1 | at org.restlet.Component.handle(Component.java:673) jvm 1 | at org.restlet.Server.handle(Server.java:331) jvm 1 | at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) jvm 1 | at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) jvm 1 | at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) jvm 1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) jvm 1 | at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) jvm 1 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359) jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275) jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) jvm 1 | at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344) jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) jvm 1 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) jvm 1 | at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387) jvm 1 | at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) jvm 1 | at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) jvm 1 | at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) jvm 1 | at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) jvm 1 | at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) jvm 1 | at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) jvm 1 | at org.mortbay.jetty.Server.handle(Server.java:326) jvm 1 | at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) jvm 1 | at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879) jvm 1 | at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) jvm 1 | at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) jvm 1 | at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) jvm 1 | at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) jvm 1 | at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) jvm 1 | jvm 1 | ""nxevthost-1-thread-85"" prio=5 tid=101806800 nid=0x11117f000 waiting on condition [11117e000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (parking) jvm 1 | at sun.misc.Unsafe.park(Native Method) jvm 1 | - parking to wait for <7cdde1a58> (a java.util.concurrent.SynchronousQueue$TransferStack) jvm 1 | at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323) jvm 1 | at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874) jvm 1 | at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""nxevthost-1-thread-83"" prio=5 tid=101805000 nid=0x110f79000 waiting on condition [110f78000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (parking) jvm 1 | at sun.misc.Unsafe.park(Native Method) jvm 1 | - parking to wait for <7cdde1a58> (a java.util.concurrent.SynchronousQueue$TransferStack) jvm 1 | at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323) jvm 1 | at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874) jvm 1 | at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""nxevthost-1-thread-81"" prio=5 tid=101a83800 nid=0x110d73000 waiting on condition [110d72000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (parking) jvm 1 | at sun.misc.Unsafe.park(Native Method) jvm 1 | - parking to wait for <7cdde1a58> (a java.util.concurrent.SynchronousQueue$TransferStack) jvm 1 | at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323) jvm 1 | at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874) jvm 1 | at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""pxpool-1-thread-2"" prio=1 tid=102c59800 nid=0x110c70000 waiting on condition [110c6f000] jvm 1 | java.lang.Thread.State: WAITING (parking) jvm 1 | at sun.misc.Unsafe.park(Native Method) jvm 1 | - parking to wait for <7cdb4e740> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) jvm 1 | at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) jvm 1 | at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987) jvm 1 | at java.util.concurrent.DelayQueue.take(DelayQueue.java:160) jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609) jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602) jvm 1 | at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Index-BottleWarmer-jjj-ctx"" daemon prio=5 tid=102c86000 nid=0x110a6a000 waiting on condition [110a69000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.apache.maven.index.context.DefaultIndexingContext$1.run(DefaultIndexingContext.java:1183) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""nxevthost-1-thread-80"" prio=5 tid=101a82800 nid=0x110967000 waiting on condition [110966000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (parking) jvm 1 | at sun.misc.Unsafe.park(Native Method) jvm 1 | - parking to wait for <7cdde1a58> (a java.util.concurrent.SynchronousQueue$TransferStack) jvm 1 | at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323) jvm 1 | at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874) jvm 1 | at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""nxevthost-1-thread-78"" prio=5 tid=101cb9800 nid=0x11065e000 waiting on condition [11065d000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (parking) jvm 1 | at sun.misc.Unsafe.park(Native Method) jvm 1 | - parking to wait for <7cdde1a58> (a java.util.concurrent.SynchronousQueue$TransferStack) jvm 1 | at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323) jvm 1 | at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874) jvm 1 | at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""nxevthost-1-thread-77"" prio=5 tid=101cb9000 nid=0x11055b000 waiting on condition [11055a000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (parking) jvm 1 | at sun.misc.Unsafe.park(Native Method) jvm 1 | - parking to wait for <7cdde1a58> (a java.util.concurrent.SynchronousQueue$TransferStack) jvm 1 | at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323) jvm 1 | at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874) jvm 1 | at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Thread-29"" daemon prio=5 tid=102ad7800 nid=0x110458000 waiting on condition [110457000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.sonatype.nexus.proxy.repository.RepositoryStatusCheckerThread.run(RepositoryStatusCheckerThread.java:122) jvm 1 | jvm 1 | ""nxevthost-1-thread-74"" prio=5 tid=101a85800 nid=0x11001b000 waiting on condition [11001a000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (parking) jvm 1 | at sun.misc.Unsafe.park(Native Method) jvm 1 | - parking to wait for <7cdde1a58> (a java.util.concurrent.SynchronousQueue$TransferStack) jvm 1 | at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323) jvm 1 | at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874) jvm 1 | at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""nxevthost-1-thread-73"" prio=5 tid=101a84800 nid=0x10b7f5000 waiting on condition [10b7f4000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (parking) jvm 1 | at sun.misc.Unsafe.park(Native Method) jvm 1 | - parking to wait for <7cdde1a58> (a java.util.concurrent.SynchronousQueue$TransferStack) jvm 1 | at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424) jvm 1 | at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323) jvm 1 | at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874) jvm 1 | at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""pxpool-1-thread-1"" prio=1 tid=102ecc000 nid=0x110b6d000 waiting on condition [110b6c000] jvm 1 | java.lang.Thread.State: WAITING (parking) jvm 1 | at sun.misc.Unsafe.park(Native Method) jvm 1 | - parking to wait for <7cdb4e740> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) jvm 1 | at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) jvm 1 | at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987) jvm 1 | at java.util.concurrent.DelayQueue.take(DelayQueue.java:160) jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609) jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602) jvm 1 | at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""222547189@qtp-773092604-9"" prio=5 tid=101c0d800 nid=0x110761000 in Object.wait() [110760000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (on object monitor) jvm 1 | at java.lang.Object.wait(Native Method) jvm 1 | - waiting on <7ced4b090> (a org.mortbay.thread.QueuedThreadPool$PoolThread) jvm 1 | at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:563) jvm 1 | - locked <7ced4b090> (a org.mortbay.thread.QueuedThreadPool$PoolThread) jvm 1 | jvm 1 | ""MultiThreadedHttpConnectionManager cleanup"" daemon prio=5 tid=101d51000 nid=0x10b927000 in Object.wait() [10b926000] jvm 1 | java.lang.Thread.State: WAITING (on object monitor) jvm 1 | at java.lang.Object.wait(Native Method) jvm 1 | - waiting on <7cefce738> (a java.lang.ref.ReferenceQueue$Lock) jvm 1 | at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) jvm 1 | - locked <7cefce738> (a java.lang.ref.ReferenceQueue$Lock) jvm 1 | at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) jvm 1 | at org.apache.commons.httpclient.CustomMultiThreadedHttpConnectionManager$ReferenceQueueThread.run(CustomMultiThreadedHttpConnectionManager.java:1139) jvm 1 | jvm 1 | ""Thread-15"" daemon prio=5 tid=101a64000 nid=0x10b155000 waiting on condition [10b154000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (parking) jvm 1 | at sun.misc.Unsafe.park(Native Method) jvm 1 | - parking to wait for <7cecd7df8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) jvm 1 | at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) jvm 1 | at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025) jvm 1 | at java.util.concurrent.DelayQueue.take(DelayQueue.java:164) jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609) jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602) jvm 1 | at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Index-BottleWarmer-thirdparty-ctx"" daemon prio=5 tid=102b7a000 nid=0x10dafb000 waiting on condition [10dafa000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.apache.maven.index.context.DefaultIndexingContext$1.run(DefaultIndexingContext.java:1183) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Index-BottleWarmer-snapshots-ctx"" daemon prio=5 tid=10d33a800 nid=0x10f9eb000 waiting on condition [10f9ea000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.apache.maven.index.context.DefaultIndexingContext$1.run(DefaultIndexingContext.java:1183) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Index-BottleWarmer-releases-ctx"" daemon prio=5 tid=10d339800 nid=0x10ea4d000 waiting on condition [10ea4c000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.apache.maven.index.context.DefaultIndexingContext$1.run(DefaultIndexingContext.java:1183) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Index-BottleWarmer-codehaus-snapshots-ctx"" daemon prio=5 tid=101e62800 nid=0x10f8c7000 waiting on condition [10f8c6000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.apache.maven.index.context.DefaultIndexingContext$1.run(DefaultIndexingContext.java:1183) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Thread-14"" daemon prio=5 tid=101e62000 nid=0x10f7c4000 waiting on condition [10f7c3000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.sonatype.nexus.proxy.repository.RepositoryStatusCheckerThread.run(RepositoryStatusCheckerThread.java:122) jvm 1 | jvm 1 | ""Index-BottleWarmer-apache-snapshots-ctx"" daemon prio=5 tid=101a45000 nid=0x10f6c1000 waiting on condition [10f6c0000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.apache.maven.index.context.DefaultIndexingContext$1.run(DefaultIndexingContext.java:1183) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Thread-13"" daemon prio=5 tid=102b79000 nid=0x10f5be000 waiting on condition [10f5bd000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.sonatype.nexus.proxy.repository.RepositoryStatusCheckerThread.run(RepositoryStatusCheckerThread.java:122) jvm 1 | jvm 1 | ""Thread-12"" daemon prio=5 tid=102ab1800 nid=0x10f40d000 waiting on condition [10f40c000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.sonatype.nexus.proxy.repository.RepositoryStatusCheckerThread.run(RepositoryStatusCheckerThread.java:122) jvm 1 | jvm 1 | ""Index-BottleWarmer-java.net-m2-ctx"" daemon prio=5 tid=101a44800 nid=0x10f30a000 waiting on condition [10f309000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.apache.maven.index.context.DefaultIndexingContext$1.run(DefaultIndexingContext.java:1183) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Thread-11"" daemon prio=5 tid=10d189800 nid=0x10f207000 waiting on condition [10f206000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.sonatype.nexus.proxy.repository.RepositoryStatusCheckerThread.run(RepositoryStatusCheckerThread.java:122) jvm 1 | jvm 1 | ""Index-BottleWarmer-google-ctx"" daemon prio=5 tid=101e67000 nid=0x10f104000 waiting on condition [10f103000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.apache.maven.index.context.DefaultIndexingContext$1.run(DefaultIndexingContext.java:1183) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Thread-10"" daemon prio=5 tid=102b61800 nid=0x10f001000 waiting on condition [10f000000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.sonatype.nexus.proxy.repository.RepositoryStatusCheckerThread.run(RepositoryStatusCheckerThread.java:122) jvm 1 | jvm 1 | ""Index-BottleWarmer-central-ctx"" daemon prio=5 tid=102a8a800 nid=0x10ed11000 waiting on condition [10ed10000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.apache.maven.index.context.DefaultIndexingContext$1.run(DefaultIndexingContext.java:1183) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Thread-9"" daemon prio=5 tid=101cfe000 nid=0x10e901000 waiting on condition [10e900000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.sonatype.nexus.proxy.repository.RepositoryStatusCheckerThread.run(RepositoryStatusCheckerThread.java:122) jvm 1 | jvm 1 | ""pool-3-thread-1"" prio=5 tid=10c09b000 nid=0x10dd19000 waiting on condition [10dd18000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.sonatype.licensing.product.access.internal.DefaultAccessManager$omj.call(Unknown Source) jvm 1 | at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:138) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Timer-1"" daemon prio=5 tid=102dee800 nid=0x10bf49000 in Object.wait() [10bf48000] jvm 1 | java.lang.Thread.State: WAITING (on object monitor) jvm 1 | at java.lang.Object.wait(Native Method) jvm 1 | - waiting on <7cdde1ab8> (a java.util.TaskQueue) jvm 1 | at java.lang.Object.wait(Object.java:485) jvm 1 | at java.util.TimerThread.mainLoop(Timer.java:483) jvm 1 | - locked <7cdde1ab8> (a java.util.TaskQueue) jvm 1 | at java.util.TimerThread.run(Timer.java:462) jvm 1 | jvm 1 | ""pool-1-thread-1"" prio=5 tid=10d148000 nid=0x10bc01000 waiting on condition [10bc00000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.sonatype.licensing.product.internal.DefaultPeriodicLicenseValidationManager$itm.call(Unknown Source) jvm 1 | at org.sonatype.licensing.product.internal.DefaultPeriodicLicenseValidationManager$itm.call(Unknown Source) jvm 1 | at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:138) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Timer-0"" daemon prio=5 tid=10d105800 nid=0x10bd24000 in Object.wait() [10bd23000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (on object monitor) jvm 1 | at java.lang.Object.wait(Native Method) jvm 1 | - waiting on <7cdb0eee0> (a java.util.TaskQueue) jvm 1 | at java.util.TimerThread.mainLoop(Timer.java:509) jvm 1 | - locked <7cdb0eee0> (a java.util.TaskQueue) jvm 1 | at java.util.TimerThread.run(Timer.java:462) jvm 1 | jvm 1 | ""1747284904@qtp-773092604-1 - Acceptor0 SelectChannelConnector@0.0.0.0:8081"" prio=5 tid=10d0e7800 nid=0x10ba61000 runnable [10ba60000] jvm 1 | java.lang.Thread.State: RUNNABLE jvm 1 | at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method) jvm 1 | at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:136) jvm 1 | at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:69) jvm 1 | at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69) jvm 1 | - locked <7cecd6988> (a sun.nio.ch.Util$2) jvm 1 | - locked <7cecd6970> (a java.util.Collections$UnmodifiableSet) jvm 1 | - locked <7cecd8548> (a sun.nio.ch.KQueueSelectorImpl) jvm 1 | at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80) jvm 1 | at org.mortbay.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:459) jvm 1 | at org.mortbay.io.nio.SelectorManager.doSelect(SelectorManager.java:192) jvm 1 | at org.mortbay.jetty.nio.SelectChannelConnector.accept(SelectChannelConnector.java:124) jvm 1 | at org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:706) jvm 1 | at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) jvm 1 | jvm 1 | ""Poller SunPKCS11-Darwin"" daemon prio=1 tid=10194c000 nid=0x10b6f2000 waiting on condition [10b6f1000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at sun.security.pkcs11.SunPKCS11$TokenPoller.run(SunPKCS11.java:692) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""com.google.inject.internal.util.$Finalizer"" daemon prio=5 tid=102b49800 nid=0x10b5ae000 in Object.wait() [10b5ad000] jvm 1 | java.lang.Thread.State: WAITING (on object monitor) jvm 1 | at java.lang.Object.wait(Native Method) jvm 1 | - waiting on <7cd790018> (a java.lang.ref.ReferenceQueue$Lock) jvm 1 | at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) jvm 1 | - locked <7cd790018> (a java.lang.ref.ReferenceQueue$Lock) jvm 1 | at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) jvm 1 | at com.google.inject.internal.util.$Finalizer.run(Finalizer.java:144) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Wrapper-Connection"" daemon prio=10 tid=1018b4000 nid=0x10b258000 runnable [10b257000] jvm 1 | java.lang.Thread.State: RUNNABLE jvm 1 | at java.net.SocketInputStream.socketRead0(Native Method) jvm 1 | at java.net.SocketInputStream.read(SocketInputStream.java:129) jvm 1 | at java.net.SocketInputStream.read(SocketInputStream.java:182) jvm 1 | at java.io.DataInputStream.readByte(DataInputStream.java:248) jvm 1 | at org.tanukisoftware.wrapper.WrapperManager.handleSocket(WrapperManager.java:3737) jvm 1 | at org.tanukisoftware.wrapper.WrapperManager.run(WrapperManager.java:4084) jvm 1 | at java.lang.Thread.run(Thread.java:680) jvm 1 | jvm 1 | ""Wrapper-Control-Event-Monitor"" daemon prio=5 tid=1029a5800 nid=0x10b052000 waiting on condition [10b051000] jvm 1 | java.lang.Thread.State: TIMED_WAITING (sleeping) jvm 1 | at java.lang.Thread.sleep(Native Method) jvm 1 | at org.tanukisoftware.wrapper.WrapperManager$3.run(WrapperManager.java:731) jvm 1 | jvm 1 | ""Low Memory Detector"" daemon prio=5 tid=101825800 nid=0x10ac90000 runnable [00000000] jvm 1 | java.lang.Thread.State: RUNNABLE jvm 1 | jvm 1 | ""CompilerThread1"" daemon prio=9 tid=101825000 nid=0x10ab8d000 waiting on condition [00000000] jvm 1 | java.lang.Thread.State: RUNNABLE jvm 1 | jvm 1 | ""CompilerThread0"" daemon prio=9 tid=101824000 nid=0x10aa8a000 waiting on condition [00000000] jvm 1 | java.lang.Thread.State: RUNNABLE jvm 1 | jvm 1 | ""Signal Dispatcher"" daemon prio=9 tid=101823800 nid=0x10a987000 waiting on condition [00000000] jvm 1 | java.lang.Thread.State: RUNNABLE jvm 1 | jvm 1 | ""Surrogate Locker Thread (CMS)"" daemon prio=5 tid=101822800 nid=0x10a884000 waiting on condition [00000000] jvm 1 | java.lang.Thread.State: RUNNABLE jvm 1 | jvm 1 | ""Finalizer"" daemon prio=8 tid=10181a000 nid=0x10a50a000 in Object.wait() [10a509000] jvm 1 | java.lang.Thread.State: WAITING (on object monitor) jvm 1 | at java.lang.Object.wait(Native Method) jvm 1 | - waiting on <7cd7d2348> (a java.lang.ref.ReferenceQueue$Lock) jvm 1 | at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) jvm 1 | - locked <7cd7d2348> (a java.lang.ref.ReferenceQueue$Lock) jvm 1 | at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) jvm 1 | at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) jvm 1 | jvm 1 | ""Reference Handler"" daemon prio=10 tid=101819000 nid=0x10a407000 in Object.wait() [10a406000] jvm 1 | java.lang.Thread.State: WAITING (on object monitor) jvm 1 | at java.lang.Object.wait(Native Method) jvm 1 | - waiting on <7cd790f78> (a java.lang.ref.Reference$Lock) jvm 1 | at java.lang.Object.wait(Object.java:485) jvm 1 | at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) jvm 1 | - locked <7cd790f78> (a java.lang.ref.Reference$Lock) jvm 1 | jvm 1 | ""main"" prio=5 tid=102800800 nid=0x100501000 in Object.wait() [1004ff000] jvm 1 | java.lang.Thread.State: WAITING (on object monitor) jvm 1 | at java.lang.Object.wait(Native Method) jvm 1 | - waiting on <7cd7cdc38> (a java.lang.Object) jvm 1 | at java.lang.Object.wait(Object.java:485) jvm 1 | at org.sonatype.appbooter.jsw.PlexusAppBooterJSWListener.main(PlexusAppBooterJSWListener.java:121) jvm 1 | - locked <7cd7cdc38> (a java.lang.Object) jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) jvm 1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) jvm 1 | at java.lang.reflect.Method.invoke(Method.java:597) jvm 1 | at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) jvm 1 | at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) jvm 1 | at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) jvm 1 | at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) jvm 1 | jvm 1 | ""VM Thread"" prio=9 tid=101814800 nid=0x10a304000 runnable jvm 1 | jvm 1 | ""Gang worker#0 (Parallel GC Threads)"" prio=9 tid=102802000 nid=0x102201000 runnable jvm 1 | jvm 1 | ""Gang worker#1 (Parallel GC Threads)"" prio=9 tid=102802800 nid=0x102304000 runnable jvm 1 | jvm 1 | ""Concurrent Mark-Sweep GC Thread"" prio=9 tid=10284d000 nid=0x10a010000 runnable jvm 1 | ""VM Periodic Task Thread"" prio=10 tid=101837800 nid=0x10ad93000 waiting on condition jvm 1 | jvm 1 | ""Exception Catcher Thread"" prio=10 tid=102801800 nid=0x10176a000 runnable jvm 1 | JNI global references: 1358 jvm 1 | jvm 1 | Heap jvm 1 | par new generation total 31104K, used 22042K [7cae00000, 7ccfb0000, 7cd790000) jvm 1 | eden space 27712K, 79% used [7cae00000, 7cc385910, 7cc910000) jvm 1 | from space 3392K, 0% used [7cc910000, 7cc911000, 7ccc60000) jvm 1 | to space 3392K, 0% used [7ccc60000, 7ccc60000, 7ccfb0000) jvm 1 | concurrent mark-sweep generation total 240896K, used 74607K [7cd790000, 7dc2d0000, 7fae00000) jvm 1 | concurrent-mark-sweep perm gen total 79672K, used 47867K [7fae00000, 7ffbce000, 800000000) {noformat}",5 +"NEXUS-4228","04/11/2011 17:56:02","Documentation for data_index REST endpoint should indicate that it is deprecated","The ""data_index"" endpoint is slated for removal. We should indicate that it is deprecated in the documentation. https://repository.sonatype.org/nexus-indexer-lucene-plugin/default/docs/rest.data_index.html",1 +"NEXUS-4232","04/12/2011 09:53:26","Add a component to nexus that allows or disallow some clients based on it's UA","Add a component to nexus that allows or disallow some clients based on it's UA. Typically [INFRA-3151|https://issues.apache.org/jira/browse/INFRA-3151] for example. Maven 2.2.0 is known to be ""bad"". Simply, by _excluding_ it's UA would help a lot maintaining healthy repository.",5 +"NEXUS-4235","04/12/2011 17:23:07","Allow UI upload of artifacts with new classifiers","We should allow uploading of addition artifacts which differ by classifer. The typical use case for this would be when someone wants to add javadoc or sources to an existing released artifact. Currently, if a user wants to upload an additional artifact into a GAV using the UI they currently have to: # Change the release repository's deployment policy to ""allow redeploy"" # Download the pom file for the GAV # Upload the new artifact along with the old pom file # Change the release repository's deployment policy back to ""disallow redeploy"" ",5 +"NEXUS-4271","05/04/2011 15:05:05","Change -1 Transaction Aborted message to something more user friendly"," Change it to something like: The request has timed out. ",1 +"NEXUS-4275","05/05/2011 15:48:29","If index download fails due to error then ""download index"" task should end in ""broken"" state.","If a remote index fails to download due to 401/403/50x problems we should end the ""download index"" task with a ""broken"" state. Note that 403 is very common when going through a proxy that blocks "".gz"" downloads. ",1 +"NEXUS-4292","05/13/2011 08:11:44","Download button's URL should be copy-able (into mails, jira comments, ...)","To reproduce, go to: https://repository.jboss.org/nexus/index.html#nexus-search;quick~drools-distribution Now select an entry (for example 5.2.0-SNAPSHOT) then open tab ""Artifact information"" then right click on the button ""Download"" and there 's no ""Copy link location"". So how can I mail someone the link to that zip/jar/pom? For now, there's a complex way of getting that download URL, or I could mail them a link of hudson to the zip. Note: nexus's main task is to distribute our binaries, so it's a good way to distribute our nightly zips too, no?",1 +"NEXUS-4329","05/30/2011 15:10:09","Concurrent modification exception in security","Concurrent modification exception in security (see NXCM-2918 for logs). {noformat} jvm 1 | java.util.ConcurrentModificationException jvm 1 | at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372) jvm 1 | at java.util.AbstractList$Itr.next(AbstractList.java:343) jvm 1 | at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1010) jvm 1 | at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1010) jvm 1 | at org.sonatype.security.usermanagement.xml.ConfiguredUsersUserManager.listUsers(ConfiguredUsersUserManager.java:76) jvm 1 | at org.sonatype.security.usermanagement.xml.ConfiguredUsersUserManager.searchUsers(ConfiguredUsersUserManager.java:138) jvm 1 | at org.sonatype.security.DefaultSecuritySystem.searchUsers(DefaultSecuritySystem.java:540) jvm 1 | at org.sonatype.security.rest.users.PlexusUserListPlexusResource.get(PlexusUserListPlexusResource.java:106) jvm 1 | at org.sonatype.plexus.rest.resource.RestletResource.represent(RestletResource.java:246) jvm 1 | at org.sonatype.nexus.rest.NexusRestletResource.represent(NexusRestletResource.java:52) jvm 1 | at org.restlet.resource.Resource.getRepresentation(Resource.java:302) jvm 1 | at org.restlet.resource.Resource.handleGet(Resource.java:464) jvm 1 | at org.restlet.Finder.handle(Finder.java:353) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:39) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) jvm 1 | at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) jvm 1 | at org.restlet.Application.handle(Application.java:341) jvm 1 | at org.restlet.ext.wadl.WadlApplication.handle(WadlApplication.java:705) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) jvm 1 | at org.restlet.Component.handle(Component.java:673) jvm 1 | at org.restlet.Server.handle(Server.java:331) jvm 1 | at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) jvm 1 | at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) jvm 1 | at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) jvm 1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) jvm 1 | at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) jvm 1 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359) jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275) jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) jvm 1 | at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344) jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) jvm 1 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) jvm 1 | at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387) jvm 1 | at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) jvm 1 | at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) jvm 1 | at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) jvm 1 | at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) jvm 1 | at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) jvm 1 | at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) jvm 1 | at org.mortbay.jetty.Server.handle(Server.java:326) jvm 1 | at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) jvm 1 | at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864) jvm 1 | at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539) jvm 1 | at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) jvm 1 | at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) jvm 1 | at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) jvm 1 | at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) {noformat}",2 +"NEXUS-4339","06/01/2011 14:31:03","Upload hangs forever if the user does not have sufficient privileges","Consider we have a user that has the ""Artifact Upload"" privilege and their upload rights are restricted by a repository target. If that user tries to upload an artifact which they are not allowed to, they are presented with an upload progress bar that stays there forever. The only way to get rid of this is to close the browser window/tab. The user should be presented a reasonable error message instead. In order to find out what was going on I had to turn on debug logging. I'd say such things should be logged at least at info level. Generally, I think the info level logging could be a little bit more talkative.",1 +"NEXUS-5880","06/21/2011 20:27:57","Server form validation errors should not log at WARN level","Many simple form validation errors are logged at WARN level. These are not critical errors and should be logged at DEBUG instead since a user receives a suitable error in the UI in these cases. Example: {noformat} jvm 1 | 2011-06-21 15:03:00 WARN [tp-355848587-20] - org.sonatype.nexus.rest.schedules.ScheduledServicePlexusResource - Configuration error! jvm 1 | org.sonatype.configuration.validation.InvalidConfigurationException: Configuration is invalid! jvm 1 | Validation errors follows: jvm 1 | o startTime - Time cannot be in the past. jvm 1 | jvm 1 | at org.sonatype.nexus.rest.schedules.AbstractScheduledServicePlexusResource.validateTime(AbstractScheduledServicePlexusResource.java:390) jvm 1 | at org.sonatype.nexus.rest.schedules.AbstractScheduledServicePlexusResource.getModelSchedule(AbstractScheduledServicePlexusResource.java:463) jvm 1 | at org.sonatype.nexus.rest.schedules.ScheduledServicePlexusResource.put(ScheduledServicePlexusResource.java:170) jvm 1 | at org.sonatype.plexus.rest.resource.RestletResource.storeRepresentation(RestletResource.java:316) jvm 1 | at org.sonatype.nexus.rest.NexusRestletResource.storeRepresentation(NexusRestletResource.java:95) jvm 1 | at org.restlet.resource.Resource.put(Resource.java:706) jvm 1 | at org.restlet.resource.Resource.handlePut(Resource.java:603) jvm 1 | at org.restlet.Finder.handle(Finder.java:359) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:39) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) jvm 1 | at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) jvm 1 | at org.restlet.Application.handle(Application.java:341) jvm 1 | at org.restlet.ext.wadl.WadlApplication.handle(WadlApplication.java:705) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) jvm 1 | at org.restlet.Component.handle(Component.java:673) jvm 1 | at org.restlet.Server.handle(Server.java:331) jvm 1 | at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) jvm 1 | at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) jvm 1 | at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) jvm 1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) jvm 1 | at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) jvm 1 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359) jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275) jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) jvm 1 | at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344) jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) jvm 1 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) jvm 1 | at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387) jvm 1 | at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) jvm 1 | at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) jvm 1 | at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) jvm 1 | at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) jvm 1 | at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) jvm 1 | at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) jvm 1 | at org.mortbay.jetty.Server.handle(Server.java:326) jvm 1 | at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) jvm 1 | at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879) jvm 1 | at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) jvm 1 | at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) jvm 1 | at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) jvm 1 | at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) jvm 1 | at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) jv {noformat}",0 +"NEXUS-4429","07/22/2011 14:46:45","Tweaks related to solaris scripts","There are two tweaks to the solaris scripts that are included with the build that would prevent errors when running the script as a different user. 1. change the nexus scripts they are under: {quote} /bin/jsw/solaris-x86-32/nexus /bin/jsw/solaris-x86-64/nexus /bin/jsw/solaris-x86-32/nexus {quote} by changing the following line: {code} su -m $RUN_AS_USER -c ""\""$REALPATH\"" $2"" {code} this does not work in solaris since it does not recognize the '-m' switch. The script runs fine if the '-m' switch is removed 2. Change the SMF script It is found under: {quote} /bin/jsw/solaris-x86-32/sample-smf/app.xml {quote} The way is is now, if the smf script is set to run as a user other than root, it will fail. change: {code:xml} {code} to {code:xml} {code} ",1 +"NEXUS-4431","07/25/2011 20:30:20","REST API documentation for /repositories/{repositoryID}/content is missing","There isn't any documentation for the ""/repositories/{repositoryID}/content"" rest endpoint.",1 +"NEXUS-4465","08/10/2011 15:23:19","Next run is wrong for scheduled tasks using advanced cron expression","I have 2 snapshots cleanup jobs I'm launching one day on two. For that I have one of these tasks with the following cron : 0 0 20 ? * TUE,THU,SAT I start nexus and it says that the next launched is scheduled to the 10 august (where are on 27th july) It worked with nexus < 1.9.2 It seems that if I launch manually the job the next run is back to the good value (I have to reverify it)",1 +"NEXUS-4493","08/22/2011 21:04:56","Nexus does not follow static nested LDAP groups","Hello, I am having an issue with LDAP configuration of our Nexus OSS instance and don't see a documented way to get out of it. I was under the impression that my setup was fairly common, but perhaps this is not so... Our (OpenLDAP) directory uses static, nested groups. The users are all in one tree under ou=Users and all the groups are under ou=Groups (there is no nesting of group levels). Each project has a set of groupOfUniqueNames under ou=Groups such as: acme-users acme-developers acme-administrators The groups follow the standard method of nesting static groups and use a DN to point to the nested group. Example: In cn=acme-users,ou=Groups,dc=my,dc=site,dc=com: uniqueMember: uid=user1, ou=Users, dc=my, dc=site, dc=com uniqueMember: uid=user2, ou=Users, dc=my, dc=site, dc=com uniqueMember: uid=user3, ou=Users, dc=my, dc=site, dc=com uniqueMember: cn=acme-developers, ou=Groups, dc=my, dc=site, dc=com In cn=acme-developers,ou=Groups,dc=my,dc=site,dc=com: uniqueMember: uid=developer1, ou=Users, dc=my, dc=site, dc=com uniqueMember: uid=developer2, ou=Users, dc=my, dc=site, dc=com uniqueMember: cn=acme-administrators, ou=Groups, dc=my, dc=site, dc=com In cn=acme-administrators,ou=Groups,dc=my,dc=site,dc=com: uniqueMember: uid=admin1, ou=Users, dc=my, dc=site, dc=com In our other LDAP-enabled applications, this works perfectly well. There are options to configure nested groups, and if you were to query the contents of acme-users, you would see the user records for user1, user2, user3, developer1, developer2, admin1 However, in Nexus OSS (at least), there doesn't seem to be any recognition that nested memberships are allowed. that same admin1 user only shows up in the directory in which he actually exists: admin1 .... Roles: acme-administrators Looking at the DefaultLdapGroupDAO, it appears to me that Nexus is probably not currently capable of handling this user setup. This is making permissions much more difficult to organize than they should be, as some of our project administrators (tech leads) are also developers. I realize that converting the userbase to use dynamic groups is a possible workaround, but that isn't a method I want to explore right now; it hides the problem rather than fixing it. Is there any possible filter magic I can use to make this work properly, or does nested group support simply need to be added to the LDAP implementation? ",5 +"NEXUS-4515","08/30/2011 14:20:10","Rename jetty.properties to nexus.properties","/conf/jetty.properties needs to be named /conf/nexus.properties ",1 +"NEXUS-6388","08/30/2011 17:11:32","LDAP servers are sorted in alphabetical order in the UI, so you can't see what the real order is.","The list of LDAP servers in the enterprise ldap UI is being sorted alphabetically in the UI. This means it is not possible to see the real order that Nexus will use when consulting the servers. Note that the order is stored correctly in the ldap.xml file.",1 +"NEXUS-6367","09/05/2011 13:19:09","Clarify ""Promote Repository Notification Settings"" for Staging Profile","When creating a staging profile, there is a section ""Promote Repository Notification Settings"". But for artifacts for a staging profile can only be dropped or released, not promoted. I think the text in the UI should be changed to ""Release Repository Notification Settings"". (If the UI template is shared for Build Promotion Profile, it could be changed into ""Promote/Release Repository Notification Settings"".)",1 +"NEXUS-4545","09/13/2011 22:47:12","Index is still active for out of service repositories, searches result in a 503","RSO has the java.net m2 repo Out of Service. Searching for: com.sun.xml.fastinfoset in the UI (i.e.) https://repository.sonatype.org/index.html#nexus-search;quick~com.sun.xml.fastinfoset will result in a 503 when displaying the artifact details {code} jvm 1 | 2011-09-13 16:42:20 ERROR [-504117357-6946] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""GET http://repository.sonatype.org/service/local/repositories/maven2-dev.java.net/content/com/sun/xml/fastinfoset/fastinfoset-project/1.1.8/fastinfoset-project-1.1.8.pom?describe=maven2&isLocal=true&_dc=1315950137698"": Repository with ID='maven2-dev.java.net' is not available! jvm 1 | 2011-09-13 16:42:20 ERROR [-504117357-7005] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""GET http://repository.sonatype.org/service/local/repositories/maven2-dev.java.net/content/com/sun/xml/fastinfoset/fastinfoset-project/1.1.8/fastinfoset-project-1.1.8.pom?describe=maven2&isLocal=true&_dc=1315950137699"": Repository with ID='maven2-dev.java.net' is not available! jvm 1 | 2011-09-13 16:42:20 ERROR [-504117357-6991] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""GET http://repository.sonatype.org/service/local/repositories/maven2-dev.java.net/content/com/sun/xml/fastinfoset/fastinfoset-project/1.1.8/fastinfoset-project-1.1.8.pom?describe=info&isLocal=true&_dc=1315950137701"": Repository with ID='maven2-dev.java.net' is not available! {code}",2 +"NEXUS-4562","09/26/2011 14:46:19","Authorization rejection is logged at the wrong level","Seeing a lot of this on RSO: {quote} 2011-09-26 08:17:28 INFO [1305124728-3756] - org.sonatype.nexus.security.filter.authz.NexusTargetMappingAuthorizationFilter - Unable to authorize user [xxxxxxx] for read(HTTP method ""GET"") to /content/groups/private-nexus-dev/com/atlassian/jira/jira-project/4.4.1/jira-project-4.4.1.pom.sha1 from IP Address 198.240.128.752011-09-26 08:17:28 INFO [1305124728-3756] - org.sonatype.nexus.security.filter.authc.NexusSecureHttpAuthenticationFilter - Request processing is rejected because user ""xxxxxxx"" lacks permissions.2011-09-26 08:17:33 INFO [1305124728-3733] - org.sonatype.nexus.security.filter.authz.NexusTargetMappingAuthorizationFilter - Unable to authorize user [xxxxxxx] for read(HTTP method ""GET"") to /content/groups/private-nexus-dev/com/atlassian/jira/jira-func-tests/4.4.1/jira-func-tests-4.4.1.pom from IP Address 198.240.128.752011-09-26 08:17:33 INFO [1305124728-3733] - org.sonatype.nexus.security.filter.authc.NexusSecureHttpAuthenticationFilter - Request processing is rejected because user ""xxxxxxx"" lacks permissions. {quote} This is correct, repo target privileges don't allow users of that group to read this artifact. But we need to move this to DEBUG, it's filling up the logs.",1 +"NEXUS-4700","10/06/2011 12:46:18","User can get to a log in state in the UI even if he doesn't have that priv","For a user account that does not have the ""Login to UI"" priv, it is possible to get into a logged in state. To reproduce: 1. Create a user account that has the ""Nexus Anonymous Role"". 2. Try logging in with that user. You will get an error message saying no permission to use the UI. Then click ok and close the log in window by clicking the 'X' button in upper right corner. 3. Now refresh the browser window. The UI will now say that the user is logged in. Not sure if this is just a UI issue or even a server side issue.",2 +"NEXUS-4579","10/18/2011 17:12:56","Snapshot removal task should make moving to trash optional","Snapshot removal is typically done to free disk space, and snapshots are not necessarily valuable commodities. We should add a flag to the snapshot removal task to make moving them to the trash optional (default value of ""true"").",5 +"NEXUS-4580","10/18/2011 17:14:35","Empty trash task should allow specifying repositories","Users will likely want different trash removal policies for release and snapshot repositories. The empty trash task should allow specifying a target repository. Upgrade of existing tasks could specify ""all repositories"".",2 +"NEXUS-4581","10/18/2011 18:00:34","Hosted maven-site repository summary Distribution Management section wrong - refers to snapshotRepository","On a maven-site repository, when viewing in the repository browser and selecting the Summary tab, the distrib management snippet is incorrect: {noformat} unity-sites http://unity.apps.csintra.net/nexus/content/sites/unity-sites {noformat} The {{}} tag should be a {{}} tag",1 +"NEXUS-4593","10/26/2011 17:24:55","Nexus auto-blocks repositories if a request for an artifact fails with access denied (403)","Was attempting to build against the rso ""nexus-private-dev"" group. Found this to be extremely unstable, it kept being auto-blocked. Root cause is that every time an artifact request comes in which is blocked by the repository target privileges in that repo we're auto-blocking the proxy. Make a proxy for this URL in your local nexus (note, you will need to supply authorization credentials) : https://repository.sonatype.org/content/groups/private-nexus-dev/ Request something through it that there isn't a repository target privilege for: http://localhost:8081/nexus/content/repositories/private-nexus-dev-proxy/foo/bar/1.0/bar-1.0.jar In local Nexus log you will see we auto-block: {quote} 2011-10-26 11:21:15 WARN [p-1312724941-50] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Remote peer of proxy repository ""aaa"" (id=aaa) 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 2011-10-26 11:21:15 INFO [atusChecker-aaa] - org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.aaa - Next attempt to auto-unblock the ""aaa"" (id=aaa) repository by checking it's remote peer health will occur in 40 seconds. {quote} ",1 +"NEXUS-4594","10/26/2011 17:33:16","Requests to an auto-blocked repository are added to NFC","Requests which come into a proxy repository while it is auto-blocked are being added to NFC. This is a big problem, because we no longer clear caches when it is un-blocked. {quote} 2011-10-26 11:31:16 DEBUG [5.0/bar-5.0.jar] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - aaa.retrieveItem() :: /foo/bar/5.0/bar-5.0.jar 2011-10-26 11:31:16 DEBUG [5.0/bar-5.0.jar] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - /foo/bar/5.0/bar-5.0.jar :: localOnly=false, remoteOnly=false, ProxyMode=BLOCKED_AUTO 2011-10-26 11:31:16 DEBUG [5.0/bar-5.0.jar] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage - /foo/bar/5.0/bar-5.0.jar --> /Users/rseddon/nexus/nexus-professional-webapp-1.9.2.3/./../sonatype-work/nexus/storage/aaa/foo/bar/5.0/bar-5.0.jar 2011-10-26 11:31:16 DEBUG [5.0/bar-5.0.jar] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Item /foo/bar/5.0/bar-5.0.jar not found in local storage. 2011-10-26 11:31:16 DEBUG [5.0/bar-5.0.jar] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage - /foo/bar/5.0/bar-5.0.jar --> /Users/rseddon/nexus/nexus-professional-webapp-1.9.2.3/./../sonatype-work/nexus/storage/aaa/foo/bar/5.0/bar-5.0.jar 2011-10-26 11:31:16 DEBUG [5.0/bar-5.0.jar] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Item /foo/bar/5.0/bar-5.0.jar not found in local storage. 2011-10-26 11:31:16 DEBUG [5.0/bar-5.0.jar] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Item /foo/bar/5.0/bar-5.0.jar does not exist locally and cannot go remote, throwing ItemNotFoundException. 2011-10-26 11:31:16 DEBUG [5.0/bar-5.0.jar] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - aaa retrieveItem() :: NOT FOUND aaa:/foo/bar/5.0/bar-5.0.jar 2011-10-26 11:31:16 DEBUG [5.0/bar-5.0.jar] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Adding path /foo/bar/5.0/bar-5.0.jar to NFC. 2011-10-26 11:31:16 DEBUG [5.0/bar-5.0.jar] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - bbb.retrieveItem() :: /foo/bar/5.0/bar-5.0.jar 2011-10-26 11:31:16 DEBUG [5.0/bar-5.0.jar] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - The serving of item /foo/bar/5.0/bar-5.0.jar is forbidden by Maven repository policy. 2011-10-26 11:31:16 DEBUG [5.0/bar-5.0.jar] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - bbb retrieveItem() :: NOT FOUND bbb:/foo/bar/5.0/bar-5.0.jar 2011-10-26 11:31:16 DEBUG [5.0/bar-5.0.jar] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Adding path /foo/bar/5.0/bar-5.0.jar to NFC. 2011-10-26 11:31:16 DEBUG [5.0/bar-5.0.jar] - org.sonatype.nexus.proxy.maven.maven2.M2GroupRepository - public retrieveItem() :: NOT FOUND public:/foo/bar/5.0/bar-5.0.jar 2011-10-26 11:31:16 DEBUG [5.0/bar-5.0.jar] - org.sonatype.nexus.proxy.maven.maven2.M2GroupRepository - Adding path /foo/bar/5.0/bar-5.0.jar to NFC. {quote}",1 +"NEXUS-4595","10/27/2011 17:25:54","Using an LDAP filter to allow certain user to connect","I'm trying to set a filter on LDAP configuration to restrict the users allowed to use nexus. The LDAP have users that don't have to use nexus. The users allowed to use nexus have a attribut set. In the configuration, it is not possible to create such a filter. I found this on internet but no way to make it working: http://code.google.com/p/nexus-ldap/wiki/SearchFilterExpressionConfig",1 +"NEXUS-4599","10/30/2011 22:17:33","/service/local/lucene/search docs indicate wrong result type","https://repository.sonatype.org/nexus-indexer-lucene-plugin/default/docs/rest.lucene.search.html states that the output payload should be (i.e. searchResponse). However as can be seen https://repository.sonatype.org/service/local/lucene/search?repositoryId=central-proxy&g=commons-logging&v=1.1.1 returns . The section contains a list of while it should then according to the XSD return . I downloaded the XSD and compiled corresponding java classes using xjc and obviously am not able to unmarshal the data correctly as the result is mixed.",1 +"NEXUS-4600","10/31/2011 15:22:29","org.sonatype.nexus.plugins.migration.nexus3301.Nexus3301MavenDownloadRedirectSecurityIT.downloadWithPermition fails retrieving artifacts","Reference: https://builds.sonatype.org/view/nexus/job/nexus-oss-its/57/jdk=java-6x,label=win/testReport/junit/org.sonatype.nexus.plugins.migration.nexus3301/Nexus3301MavenDownloadRedirectSecurityIT/downloadWithPermition/ Please change the method name when this gets fixed. {noformat} [DEBUG] Checking for pre-existing User-Agent configuration. [DEBUG] Adding User-Agent configuration. [DEBUG] Connecting to repository: 'remote-repository' with url: 'http://localhost:54783/artifactory/main-local/'. Downloading: http://localhost:54783/artifactory/main-local//nxcm281/released/1.0/released-1.0.pom [DEBUG] Error transferring file: Server returned HTTP response code: 500 for URL: http://localhost:54783/artifactory/main-local/nxcm281/released/1.0/released-1.0.pom org.apache.maven.wagon.TransferFailedException: Error transferring file: Server returned HTTP response code: 500 for URL: http://localhost:54783/artifactory/main-local/nxcm281/released/1.0/released-1.0.pom at org.apache.maven.wagon.providers.http.LightweightHttpWagon.fillInputData(LightweightHttpWagon.java:143) at org.apache.maven.wagon.StreamWagon.getInputStream(StreamWagon.java:116) at org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:88) at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61) at org.apache.maven.artifact.manager.DefaultWagonManager.getRemoteFile(DefaultWagonManager.java:546) at org.apache.maven.artifact.manager.DefaultWagonManager.getArtifact(DefaultWagonManager.java:427) at org.apache.maven.artifact.manager.DefaultWagonManager.getArtifact(DefaultWagonManager.java:382) at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:216) at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:90) at org.apache.maven.project.DefaultMavenProjectBuilder.findModelFromRepository(DefaultMavenProjectBuilder.java:558) at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:251) at org.apache.maven.project.artifact.MavenMetadataSource.retrieveRelocatedProject(MavenMetadataSource.java:163) at org.apache.maven.project.artifact.MavenMetadataSource.retrieveRelocatedArtifact(MavenMetadataSource.java:94) at org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:387) at org.apache.maven.artifact.resolver.DefaultArtifactCollector.collect(DefaultArtifactCollector.java:74) at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:316) at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:304) at org.apache.maven.plugin.DefaultPluginManager.resolveTransitiveDependencies(DefaultPluginManager.java:1499) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:442) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 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 org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:54783/artifactory/main-local/nxcm281/released/1.0/released-1.0.pom at sun.reflect.GeneratedConstructorAccessor6.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1491) at java.security.AccessController.doPrivileged(Native Method) at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1485) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1139) at org.apache.maven.wagon.providers.http.LightweightHttpWagon.fillInputData(LightweightHttpWagon.java:122) ... 36 more Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:54783/artifactory/main-local/nxcm281/released/1.0/released-1.0.pom at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436) at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379) at org.apache.maven.wagon.providers.http.LightweightHttpWagon.fillInputData(LightweightHttpWagon.java:115) ... 36 more [DEBUG] Using Wagon implementation lightweight from default mapping for protocol http [WARNING] Unable to get resource 'nxcm281:released:pom:1.0' from repository remote-repository (http://localhost:54783/artifactory/main-local/): Error transferring file: Server returned HTTP response code: 500 for URL: http://localhost:54783/artifactory/main-local/nxcm281/released/1.0/released-1.0.pom [DEBUG] Using mirror: http://localhost:54783/nexus/content/groups/public (id: nexus) [DEBUG] Artifact not found - using stub model: Unable to download the artifact from any repository nxcm281:released:pom:1.0 from the specified remote repositories: nexus (http://localhost:54783/nexus/content/groups/public), remote-repository (http://localhost:54783/artifactory/main-local/) [DEBUG] Using defaults for missing POM nxcm281:released:pom:1.0:compile [DEBUG] nxcm281:released:jar:1.0:compile (selected for compile) [DEBUG] Trying repository central [DEBUG] Using mirror: http://localhost:54783/nexus/content/groups/public (id: nexus) [DEBUG] Using Wagon implementation lightweight from default mapping for protocol http [DEBUG] Checking for pre-existing User-Agent configuration. [DEBUG] Adding User-Agent configuration. [DEBUG] Connecting to repository: 'nexus' with url: 'http://localhost:54783/nexus/content/groups/public'. Downloading: http://localhost:54783/nexus/content/groups/public/nxcm281/released/1.0/released-1.0.jar [DEBUG] Access denied to: http://localhost:54783/nexus/content/groups/public/nxcm281/released/1.0/released-1.0.jar org.apache.maven.wagon.authorization.AuthorizationException: Access denied to: http://localhost:54783/nexus/content/groups/public/nxcm281/released/1.0/released-1.0.jar at org.apache.maven.wagon.providers.http.LightweightHttpWagon.fillInputData(LightweightHttpWagon.java:119) at org.apache.maven.wagon.StreamWagon.getInputStream(StreamWagon.java:116) at org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:88) at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61) at org.apache.maven.artifact.manager.DefaultWagonManager.getRemoteFile(DefaultWagonManager.java:546) at org.apache.maven.artifact.manager.DefaultWagonManager.getArtifact(DefaultWagonManager.java:427) at org.apache.maven.artifact.manager.DefaultWagonManager.getArtifact(DefaultWagonManager.java:382) at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:216) at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:90) at org.apache.maven.artifact.resolver.DefaultArtifactResolver$ResolveArtifactTask.resolveArtifact(DefaultArtifactResolver.java:456) at org.apache.maven.artifact.resolver.DefaultArtifactResolver$ResolveArtifactTask.run(DefaultArtifactResolver.java:433) at hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061) at hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575) at java.lang.Thread.run(Thread.java:662) [DEBUG] Using Wagon implementation lightweight from default mapping for protocol http [WARNING] Unable to get resource 'nxcm281:released:jar:1.0' from repository central (http://central): Authorization failed: Access denied to: http://localhost:54783/nexus/content/groups/public/nxcm281/released/1.0/released-1.0.jar [DEBUG] Trying repository remote-repository [DEBUG] Using Wagon implementation lightweight from default mapping for protocol http [DEBUG] Checking for pre-existing User-Agent configuration. [DEBUG] Adding User-Agent configuration. [DEBUG] Connecting to repository: 'remote-repository' with url: 'http://localhost:54783/artifactory/main-local/'. Downloading: http://localhost:54783/artifactory/main-local//nxcm281/released/1.0/released-1.0.jar [DEBUG] Error transferring file: Server returned HTTP response code: 500 for URL: http://localhost:54783/artifactory/main-local/nxcm281/released/1.0/released-1.0.jar org.apache.maven.wagon.TransferFailedException: Error transferring file: Server returned HTTP response code: 500 for URL: http://localhost:54783/artifactory/main-local/nxcm281/released/1.0/released-1.0.jar at org.apache.maven.wagon.providers.http.LightweightHttpWagon.fillInputData(LightweightHttpWagon.java:143) at org.apache.maven.wagon.StreamWagon.getInputStream(StreamWagon.java:116) at org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:88) at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61) at org.apache.maven.artifact.manager.DefaultWagonManager.getRemoteFile(DefaultWagonManager.java:546) at org.apache.maven.artifact.manager.DefaultWagonManager.getArtifact(DefaultWagonManager.java:427) at org.apache.maven.artifact.manager.DefaultWagonManager.getArtifact(DefaultWagonManager.java:382) at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:216) at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:90) at org.apache.maven.artifact.resolver.DefaultArtifactResolver$ResolveArtifactTask.resolveArtifact(DefaultArtifactResolver.java:456) at org.apache.maven.artifact.resolver.DefaultArtifactResolver$ResolveArtifactTask.run(DefaultArtifactResolver.java:433) at hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061) at hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:54783/artifactory/main-local/nxcm281/released/1.0/released-1.0.jar at sun.reflect.GeneratedConstructorAccessor6.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1491) at java.security.AccessController.doPrivileged(Native Method) at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1485) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1139) at org.apache.maven.wagon.providers.http.LightweightHttpWagon.fillInputData(LightweightHttpWagon.java:122) ... 13 more Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:54783/artifactory/main-local/nxcm281/released/1.0/released-1.0.jar at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436) at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379) at org.apache.maven.wagon.providers.http.LightweightHttpWagon.fillInputData(LightweightHttpWagon.java:115) ... 13 more [DEBUG] Using Wagon implementation lightweight from default mapping for protocol http [WARNING] Unable to get resource 'nxcm281:released:jar:1.0' from repository remote-repository (http://localhost:54783/artifactory/main-local/): Error transferring file: Server returned HTTP response code: 500 for URL: http://localhost:54783/artifactory/main-local/nxcm281/released/1.0/released-1.0.jar [DEBUG] Using mirror: http://localhost:54783/nexus/content/groups/public (id: nexus) [DEBUG] Unable to download the artifact from any repository Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=nxcm281 -DartifactId=released -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=nxcm281 -DartifactId=released -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] Path to dependency: 1) nexus3301:artifact:jar:1.0 2) nxcm281:released:jar:1.0 nxcm281:released:jar:1.0 from the specified remote repositories: nexus (http://localhost:54783/nexus/content/groups/public), remote-repository (http://localhost:54783/artifactory/main-local/) org.apache.maven.artifact.resolver.ArtifactNotFoundException: Unable to download the artifact from any repository Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=nxcm281 -DartifactId=released -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=nxcm281 -DartifactId=released -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] Path to dependency: 1) nexus3301:artifact:jar:1.0 2) nxcm281:released:jar:1.0 nxcm281:released:jar:1.0 from the specified remote repositories: nexus (http://localhost:54783/nexus/content/groups/public), remote-repository (http://localhost:54783/artifactory/main-local/) at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:228) at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:90) at org.apache.maven.artifact.resolver.DefaultArtifactResolver$ResolveArtifactTask.resolveArtifact(DefaultArtifactResolver.java:456) at org.apache.maven.artifact.resolver.DefaultArtifactResolver$ResolveArtifactTask.run(DefaultArtifactResolver.java:433) at hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061) at hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575) at java.lang.Thread.run(Thread.java:662) Caused by: org.apache.maven.wagon.ResourceDoesNotExistException: Unable to download the artifact from any repository at org.apache.maven.artifact.manager.DefaultWagonManager.getArtifact(DefaultWagonManager.java:404) at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:216) ... 6 more [DEBUG] Using mirror: http://localhost:54783/nexus/content/groups/public (id: nexus) [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Failed to resolve artifact. Missing: ---------- 1) nxcm281:released:jar:1.0 Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=nxcm281 -DartifactId=released -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=nxcm281 -DartifactId=released -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] Path to dependency: 1) nexus3301:artifact:jar:1.0 2) nxcm281:released:jar:1.0 ---------- 1 required artifact is missing. for artifact: nexus3301:artifact:jar:1.0 from the specified remote repositories: nexus (http://localhost:54783/nexus/content/groups/public), remote-repository (http://localhost:54783/artifactory/main-local/) [INFO] ------------------------------------------------------------------------ [DEBUG] Trace org.apache.maven.lifecycle.LifecycleExecutionException: Missing: ---------- 1) nxcm281:released:jar:1.0 Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=nxcm281 -DartifactId=released -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=nxcm281 -DartifactId=released -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] Path to dependency: 1) nexus3301:artifact:jar:1.0 2) nxcm281:released:jar:1.0 ---------- 1 required artifact is missing. for artifact: nexus3301:artifact:jar:1.0 from the specified remote repositories: nexus (http://localhost:54783/nexus/content/groups/public), remote-repository (http://localhost:54783/artifactory/main-local/) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:711) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 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 org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) Caused by: org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException: Missing: ---------- 1) nxcm281:released:jar:1.0 Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=nxcm281 -DartifactId=released -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=nxcm281 -DartifactId=released -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] Path to dependency: 1) nexus3301:artifact:jar:1.0 2) nxcm281:released:jar:1.0 ---------- 1 required artifact is missing. for artifact: nexus3301:artifact:jar:1.0 from the specified remote repositories: nexus (http://localhost:54783/nexus/content/groups/public), remote-repository (http://localhost:54783/artifactory/main-local/) at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:360) at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:304) at org.apache.maven.plugin.DefaultPluginManager.resolveTransitiveDependencies(DefaultPluginManager.java:1499) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:442) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) ... 17 more [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2 seconds [INFO] Finished at: Mon Oct 31 02:30:24 CDT 2011 [INFO] Final Memory: 10M/109M [INFO] ------------------------------------------------------------------------ at org.apache.maven.it.Verifier.executeGoals(Verifier.java:1297) at org.apache.maven.it.Verifier.executeGoal(Verifier.java:1145) at org.apache.maven.it.Verifier.executeGoal(Verifier.java:1139) at org.sonatype.nexus.plugins.migration.nexus3301.Nexus3301MavenDownloadRedirectSecurityIT.download(Nexus3301MavenDownloadRedirectSecurityIT.java:82) at org.sonatype.nexus.plugins.migration.nexus3301.Nexus3301MavenDownloadRedirectSecurityIT.downloadWithPermition(Nexus3301MavenDownloadRedirectSecurityIT.java:64) 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 org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) at org.testng.internal.Invoker.invokeMethod(Invoker.java:673) at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:842) at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1166) at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109) at org.testng.TestRunner.runWorkers(TestRunner.java:1178) at org.testng.TestRunner.privateRun(TestRunner.java:757) at org.testng.TestRunner.run(TestRunner.java:608) at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) at org.testng.SuiteRunner.run(SuiteRunner.java:240) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1158) at org.testng.TestNG.runSuitesLocally(TestNG.java:1083) at org.testng.TestNG.run(TestNG.java:999) at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:70) at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:108) at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:111) 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 org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164) at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:172) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:78) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:70) Standard Output [INFO] Loading Nexus Configuration... [INFO] Configuration loaded succesfully. [INFO] Loading Nexus configuration from X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-work-dir\conf\nexus.xml [INFO] Configuration file is invalid, attempting upgrade [INFO] Trying to upgrade the configuration file X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-work-dir\conf\nexus.xml [INFO] Upgrading old Nexus configuration file (version 1.0.8) from X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-work-dir\conf\nexus.xml [INFO] Nexus configuration file upgraded to current version 1.4.6 succesfully. [INFO] Creating backup from the old file and saving the upgraded configuration. [INFO] Loading Nexus configuration from X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-work-dir\conf\nexus.xml [INFO] Configuration loaded succesfully. [INFO] Nexus configuration validated succesfully. [INFO] Applying Nexus Configuration... [INFO] Nexus configuration validated succesfully. =================================== Application context ""nexus"" dump: ""nexus-work""=""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-work-dir"" (raw: ""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-work-dir"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\conf\nexus.properties, size:7)) ""index.template.file""=""templates/index-debug.vm"" (raw: ""templates/index-debug.vm"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\conf\nexus.properties, size:7)) ""runtime""=""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/WEB-INF"" (raw: ""${bundleBasedir}/nexus/WEB-INF"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\conf\nexus.properties, size:7)) ""application-port""=""54783"" (raw: ""54783"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\conf\nexus.properties, size:7)) ""application-host""=""0.0.0.0"" (raw: ""0.0.0.0"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\conf\nexus.properties, size:7)) ""nexus-webapp""=""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT/nexus"" (raw: ""${bundleBasedir}/nexus"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\conf\nexus.properties, size:7)) ""bundleBasedir""=""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT"" (raw: ""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT"", src: static(""bundleBasedir""=""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT"")) ""nexus-webapp-context-path""=""/nexus"" (raw: ""/nexus"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\conf\nexus.properties, size:7)) Total of 8 entries. =================================== =================================== Application context ""nexus"" dump: ""nexus-work""=""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-work-dir"" (raw: ""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-work-dir"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\conf\nexus.properties, size:7)) ""index.template.file""=""templates/index-debug.vm"" (raw: ""templates/index-debug.vm"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\conf\nexus.properties, size:7)) ""runtime""=""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/WEB-INF"" (raw: ""${bundleBasedir}/nexus/WEB-INF"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\conf\nexus.properties, size:7)) ""application-port""=""54783"" (raw: ""54783"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\conf\nexus.properties, size:7)) ""application-host""=""0.0.0.0"" (raw: ""0.0.0.0"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\conf\nexus.properties, size:7)) ""application-conf""=""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-work-dir/conf"" (raw: ""${nexus-work}/conf"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\nexus\WEB-INF\plexus.properties, size:5)) ""nexus-webapp""=""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT/nexus"" (raw: ""${bundleBasedir}/nexus"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\conf\nexus.properties, size:7)) ""nexus-app""=""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/WEB-INF"" (raw: ""${runtime}"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\nexus\WEB-INF\plexus.properties, size:5)) ""security-xml-file""=""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-work-dir/conf/security.xml"" (raw: ""${nexus-work}/conf/security.xml"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\nexus\WEB-INF\plexus.properties, size:5)) ""bundleBasedir""=""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT"" (raw: ""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT"", src: static(""bundleBasedir""=""X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT"")) ""nexus-webapp-context-path""=""/nexus"" (raw: ""/nexus"", src: propsFile(X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT\conf\nexus.properties, size:7)) Total of 11 entries. =================================== 2011-10-31 02:30:15 INFO [7-main-thread-1] - org.sonatype.security.configuration.source.FileSecurityConfigurationSource - Loading Security configuration from X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-work-dir\conf\security-configuration.xml Standard Error 2011-10-31 02:30:11.328:INFO::jetty-7.4.4.v20110707 2011-10-31 02:30:11.348:INFO:org.sonatype.plexus.jetty.custom.DisableTagLibsListener:Disabling TLD support for: null (context path: /artifactory) 2011-10-31 02:30:11.350:INFO:org.sonatype.plexus.jetty.custom.DisableTagLibsListener:Disabling TLD support for: null (context path: /nexus) 2011-10-31 02:30:11.749:INFO::NO JSP Support for /artifactory, did not find org.apache.jasper.servlet.JspServlet 2011-10-31 02:30:11.779:INFO:/artifactory:Configuring Nexus in bundle... 2011-10-31 02:30:11.779:INFO:/artifactory:Setting Plexus basedir context variable to (pre-set in System properties): X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT 2011-10-31 02:30:12.288:INFO::started o.e.j.w.WebAppContext{/artifactory,file:/X:/s/workspace/nexus-oss-its/67cb98c1/nexus/nexus-core-plugins/nexus-migration-plugin/nexus-migration-plugin-test-harness/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/artifactory-bridge/},X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT/artifactory-bridge Oct 31, 2011 2:30:12 AM org.sonatype.plexus.rest.PlexusRestletApplicationBridge configure INFO: PlexusResource discovery disabled. 2011-10-31 02:30:13.190:INFO::NO JSP Support for /nexus, did not find org.apache.jasper.servlet.JspServlet 2011-10-31 02:30:13.208:INFO:/nexus:Configuring Nexus in bundle... 2011-10-31 02:30:13.208:INFO:/nexus:Setting Plexus basedir context variable to (pre-set in System properties): X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT 2011-10-31 02:30:17.441:INFO::started o.e.j.w.WebAppContext{/nexus,file:/X:/s/workspace/nexus-oss-its/67cb98c1/nexus/nexus-core-plugins/nexus-migration-plugin/nexus-migration-plugin-test-harness/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/},X:\s\workspace\nexus-oss-its\67cb98c1\nexus\nexus-core-plugins\nexus-migration-plugin\nexus-migration-plugin-test-harness\target\nexus\nexus-oss-webapp-1.10.0-SNAPSHOT/nexus 2011-10-31 02:30:18.709:INFO::Started SelectChannelConnector@0.0.0.0:54783 STARTING 2011-10-31 02:30:19.316:INFO:/nexus:nexus: [Noelios Restlet Engine] - Attaching application: org.sonatype.nexus.rest.NexusApplication@2a384d34 to URI: /nexus 2011-10-31 02:30:22.836:INFO:/artifactory:artifactory: [Noelios Restlet Engine] - Attaching application: org.sonatype.nexus.artifactorybridge.ArtifactoryBridgeApplication@2de69e99 to URI: /artifactory Exit code: 1 {noformat} Assigning fix version as possible regression.",1 +"NEXUS-4616","11/03/2011 14:29:24","Scheduled Tasks start/run times should be displayed with local timezone","The next run/last run columns values are calculated on the server, using the servers timezone.",5 +"NEXUS-4619","11/03/2011 19:11:12","Reduce the thread baseline for Nexus","There are two threads created for every repository in a Nexus instance. We should investigate whether we can eliminate these. Description is below, from Tamas on development list. {quote} * One thread per indexed repository (so basically one for every repo), used to keep the lucene cache warm Maven Indexer keeps one thread per IndexingContext (which maps 1:1 to repositories in Nx), to implement the ""async commit"" feature. The fact that indexer are ""warmed"" upon commit is just a ""bonus"". Lucene writer writes synchronously the change to index, but to have readers up to date, they need to be reopened, and reopening Lucene readers are expensive. Hence, Maven Indexer does this async commit thing (async reader reopening more precisely), with assumptions that index changes has to go out, and the fact that readers (and components consuming them, like search UI and archetype catalog) may ""lag"" behind is not a big concern and problem. Simply put, what you deploy is not searchable immediately (talking about millis), but only after async commit happened (in silent period). Also, this requires context locking, hence no search or any other index ""consumption"" might be running in that moment. This is the implication of having IndexerContext being able to handle one repository (was designed as such) and Maven Indexer's incapability to have multiple contexts in single Lucene index. * One thread per proxy repository to check the status of the remote. These threads are mostly dormant (timed wait), until UI pulls the status, and status cache is invalidated (in most cases UI gets the cached remote status, except in very 1st request or when forced the cache purge). Again, since the REST exposes this for each repo as separate resource, and the remote checks might take long time (see NEXUS and old NX Jiras), this was the one of the ways to fulfill acceptable UI response, to have dedicated thread doing remote checks. Initially remote status was handled by one thread, but the UI delay it caused (one bad remote might delay all the others for more minutes) was noted as problematic, not acceptable and then we switched to per-repo threads. {quote}",5 +"NEXUS-4622","11/04/2011 18:15:31","HTTP header: ""Accept: text/css"" on CSS file results in a 406 (CSS not loaded)","When CSS files hosted below a 'maven-site' repo (any sub folder) are requested with ""Accept text/css"" a 406 response for the CSS file is returned - this means the CSS file in question will not be loaded by the browser. (This happens when IE9 is configured to use browser modus ""IE9"" and document modus ""IE9-Standards"".) When the same CSS file is requested with ""Accept \*/\*"" (e.g. via a direct URL) the CSS file is delivered correctly with ""Content-Type text/css"" in the response header. shell log: > curl -u -H ""Accept:\*/\*"" https:///x.css -D - HTTP/1.1 200 OK Date: Fri, 04 Nov 2011 18:02:08 GMT Server: Noelios-Restlet-Engine/1.1.6-SONATYPE-5348-V4 Content-Type: text/css Last-Modified: Thu, 27 Oct 2011 17:39:32 GMT ETag: ""eebcd5378dc6c17685ffa4694a12580723fdcf2a"" Vary: Accept-Charset,Accept-Encoding,Accept-Language,Accept Content-Length: 222 Set-Cookie: JSESSIONID=81c0d344-0296-42fe-9e0d-581d37ede4f6; Path=/nexus; HttpOnly Set-Cookie: rememberMe=deleteMe; Path=/nexus; Max-Age=0; Expires=Thu, 03-Nov-2011 18:02:08 GMT Connection: close #banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn { display: none !important; } #bodyColumn, body.docs div.docs { margin: 0 !important; border: none !important } > curl -u -H ""Accept:text/css"" https:///x.css -D - HTTP/1.1 406 The resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request Date: Fri, 04 Nov 2011 18:03:05 GMT Server: Noelios-Restlet-Engine/1.1.6-SONATYPE-5348-V4 Content-Type: text/html; charset=iso-8859-1 Cache-Control: must-revalidate,no-cache,no-store Content-Length: 1782 Set-Cookie: JSESSIONID=898ee864-ec6a-4bce-8daf-4d98d6585531; Path=/nexus; HttpOnly Set-Cookie: rememberMe=deleteMe; Path=/nexus; Max-Age=0; Expires=Thu, 03-Nov-2011 18:03:05 GMT Connection: close [...] ",3 +"NEXUS-4624","11/09/2011 12:30:10","Regression: org.sonatype.nexus.integrationtests.nexus3626.Nexus3626SimpleSearchIT.wagonDeploy fails","https://builds.sonatype.org/view/nexus/job/nexus-oss-its/73/jdk=java-6x,label=linux/testReport/junit/org.sonatype.nexus.integrationtests.nexus3626/Nexus3626SimpleSearchIT/wagonDeploy/ {noformat} Error Message Pom with 17fd2626f2e4257a8a67895dbb2ce49f418e8e10 not found after reindexing! expected:<1> but was:<0> Stacktrace java.lang.AssertionError: Pom with 17fd2626f2e4257a8a67895dbb2ce49f418e8e10 not found after reindexing! expected:<1> but was:<0> at org.testng.Assert.fail(Assert.java:89) at org.testng.Assert.failNotEquals(Assert.java:489) at org.testng.Assert.assertEquals(Assert.java:118) at org.testng.Assert.assertEquals(Assert.java:365) at org.sonatype.nexus.integrationtests.nexus3626.Nexus3626SimpleSearchIT.doSearch(Nexus3626SimpleSearchIT.java:135) at org.sonatype.nexus.integrationtests.nexus3626.Nexus3626SimpleSearchIT.searchFor(Nexus3626SimpleSearchIT.java:125) at org.sonatype.nexus.integrationtests.nexus3626.Nexus3626SimpleSearchIT.wagonDeploy(Nexus3626SimpleSearchIT.java:59) Standard Output [INFO] Loading Nexus Configuration... [INFO] Configuration loaded succesfully. [INFO] Loading Nexus configuration from /opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf/nexus.xml [INFO] Configuration file is invalid, attempting upgrade [INFO] Trying to upgrade the configuration file /opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf/nexus.xml [INFO] Upgrading old Nexus configuration file (version 1.0.8) from /opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf/nexus.xml [INFO] Nexus configuration file upgraded to current version 1.4.6 succesfully. [INFO] Creating backup from the old file and saving the upgraded configuration. [INFO] Loading Nexus configuration from /opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf/nexus.xml [INFO] Configuration loaded succesfully. [INFO] Nexus configuration validated succesfully. [INFO] Applying Nexus Configuration... [INFO] Nexus configuration validated succesfully. =================================== Application context ""nexus"" dump: ""nexus-work""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir"" (raw: ""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/conf/nexus.properties, size:7)) ""index.template.file""=""templates/index-debug.vm"" (raw: ""templates/index-debug.vm"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/conf/nexus.properties, size:7)) ""runtime""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/WEB-INF"" (raw: ""${bundleBasedir}/nexus/WEB-INF"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/conf/nexus.properties, size:7)) ""application-port""=""55237"" (raw: ""55237"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/conf/nexus.properties, size:7)) ""application-host""=""0.0.0.0"" (raw: ""0.0.0.0"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/conf/nexus.properties, size:7)) ""application-conf""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf"" (raw: ""${nexus-work}/conf"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/WEB-INF/plexus.properties, size:5)) ""nexus-webapp""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus"" (raw: ""${bundleBasedir}/nexus"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/conf/nexus.properties, size:7)) ""nexus-app""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/WEB-INF"" (raw: ""${runtime}"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/WEB-INF/plexus.properties, size:5)) ""security-xml-file""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf/security.xml"" (raw: ""${nexus-work}/conf/security.xml"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/WEB-INF/plexus.properties, size:5)) ""log-config-dir""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf"" (raw: ""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf"", src: prefixRemove(prefix:nexus., filter(keyStartsWith:[nexus.], system(properties)))) ""bundleBasedir""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT"" (raw: ""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT"", src: static(""bundleBasedir""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT"")) ""nexus-webapp-context-path""=""/nexus"" (raw: ""/nexus"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/conf/nexus.properties, size:7)) Total of 12 entries. =================================== 2011-11-09 04:13:12 INFO [main-thread-250] - org.sonatype.security.configuration.source.FileSecurityConfigurationSource - Loading Security configuration from /opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf/security-configuration.xml Result: org.sonatype.nexus.integrationtests.nexus3626.Nexus3626SimpleSearchIT.wagonDeploy() ===> FAILED Standard Error 2011-11-09 04:13:07.836:INFO::Graceful shutdown SelectChannelConnector@0.0.0.0:55237 STARTED 2011-11-09 04:13:07.836:INFO::Graceful shutdown o.e.j.w.WebAppContext{/nexus,file:/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/},/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus 2011-11-09 04:13:08.941:INFO::stopped o.e.j.w.WebAppContext{/nexus,file:/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/},/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus 2011-11-09 04:13:10.201:INFO::jetty-7.4.4.v20110707 2011-11-09 04:13:10.201:INFO:org.sonatype.plexus.jetty.custom.DisableTagLibsListener:Disabling TLD support for: null (context path: /nexus) 2011-11-09 04:13:10.768:INFO::NO JSP Support for /nexus, did not find org.apache.jasper.servlet.JspServlet 2011-11-09 04:13:10.777:INFO:/nexus:Configuring Nexus in bundle... 2011-11-09 04:13:10.777:INFO:/nexus:Setting Plexus basedir context variable to (pre-set in System properties): /opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT 2011-11-09 04:13:14.342:INFO::started o.e.j.w.WebAppContext{/nexus,file:/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/},/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus 2011-11-09 04:13:14.920:INFO::Started SelectChannelConnector@0.0.0.0:55237 STARTING 2011-11-09 04:13:14.949:INFO:/nexus:nexus: [Noelios Restlet Engine] - Attaching application: org.sonatype.nexus.rest.NexusApplication@6ffbc0eb to URI: /nexus {noformat}",1 +"NEXUS-4629","11/10/2011 21:15:29","org.sonatype.nexus.integrationtests.nexus977tasks.Nexus977GroupOfGroupsDownloadIndexesTaskIT.downloadIndexes fails on grid","https://builds.sonatype.org/job/nexus-oss-its/75/jdk=java-6x,label=linux/testReport/junit/org.sonatype.nexus.integrationtests.nexus977tasks/Nexus977GroupOfGroupsDownloadIndexesTaskIT/downloadIndexes/ {noformat} Error Message expected: but was: Stacktrace java.lang.AssertionError: expected: but was: at org.testng.Assert.fail(Assert.java:89) at org.testng.Assert.failNotEquals(Assert.java:489) at org.testng.Assert.assertFalse(Assert.java:58) at org.testng.Assert.assertFalse(Assert.java:68) at org.sonatype.nexus.integrationtests.nexus977tasks.Nexus977GroupOfGroupsDownloadIndexesTaskIT.downloadIndexes(Nexus977GroupOfGroupsDownloadIndexesTaskIT.java:44) Standard Output [INFO] Loading Nexus Configuration... [INFO] Configuration loaded succesfully. [INFO] Loading Nexus configuration from /opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf/nexus.xml [WARNING] Nexus configuration file was loaded but discarded, it has the wrong version number. [INFO] Configuration file is invalid, attempting upgrade [INFO] Trying to upgrade the configuration file /opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf/nexus.xml [INFO] Upgrading old Nexus configuration file (version 1.4.1) from /opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf/nexus.xml [INFO] Nexus configuration file upgraded to current version 1.4.6 succesfully. [INFO] Creating backup from the old file and saving the upgraded configuration. [INFO] Loading Nexus configuration from /opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf/nexus.xml [INFO] Configuration loaded succesfully. [INFO] Nexus configuration validated succesfully. [INFO] Applying Nexus Configuration... [INFO] Nexus configuration validated succesfully. =================================== Application context ""nexus"" dump: ""nexus-work""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir"" (raw: ""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/conf/nexus.properties, size:7)) ""index.template.file""=""templates/index-debug.vm"" (raw: ""templates/index-debug.vm"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/conf/nexus.properties, size:7)) ""runtime""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/WEB-INF"" (raw: ""${bundleBasedir}/nexus/WEB-INF"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/conf/nexus.properties, size:7)) ""application-port""=""38342"" (raw: ""38342"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/conf/nexus.properties, size:7)) ""application-host""=""0.0.0.0"" (raw: ""0.0.0.0"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/conf/nexus.properties, size:7)) ""application-conf""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf"" (raw: ""${nexus-work}/conf"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/WEB-INF/plexus.properties, size:5)) ""nexus-webapp""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus"" (raw: ""${bundleBasedir}/nexus"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/conf/nexus.properties, size:7)) ""nexus-app""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/WEB-INF"" (raw: ""${runtime}"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/WEB-INF/plexus.properties, size:5)) ""security-xml-file""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf/security.xml"" (raw: ""${nexus-work}/conf/security.xml"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/WEB-INF/plexus.properties, size:5)) ""log-config-dir""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf"" (raw: ""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf"", src: prefixRemove(prefix:nexus., filter(keyStartsWith:[nexus.], system(properties)))) ""bundleBasedir""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT"" (raw: ""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT"", src: static(""bundleBasedir""=""/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT"")) ""nexus-webapp-context-path""=""/nexus"" (raw: ""/nexus"", src: propsFile(/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/conf/nexus.properties, size:7)) Total of 12 entries. =================================== 2011-11-10 14:34:51 INFO [main-thread-223] - org.sonatype.security.configuration.source.FileSecurityConfigurationSource - Loading Security configuration from /opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-work-dir/conf/security-configuration.xml Result: org.sonatype.nexus.integrationtests.nexus977tasks.Nexus977GroupOfGroupsDownloadIndexesTaskIT.downloadIndexes() ===> FAILED Standard Error 2011-11-10 14:34:46.920:INFO::Graceful shutdown SelectChannelConnector@0.0.0.0:38342 STARTED 2011-11-10 14:34:46.921:INFO::Graceful shutdown o.e.j.w.WebAppContext{/nexus,file:/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/},/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus 2011-11-10 14:34:47.978:INFO::stopped o.e.j.w.WebAppContext{/nexus,file:/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/},/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus 2011-11-10 14:34:49.041:INFO::jetty-7.4.4.v20110707 2011-11-10 14:34:49.041:INFO:org.sonatype.plexus.jetty.custom.DisableTagLibsListener:Disabling TLD support for: null (context path: /nexus) 2011-11-10 14:34:49.607:INFO::NO JSP Support for /nexus, did not find org.apache.jasper.servlet.JspServlet 2011-11-10 14:34:49.615:INFO:/nexus:Configuring Nexus in bundle... 2011-11-10 14:34:49.615:INFO:/nexus:Setting Plexus basedir context variable to (pre-set in System properties): /opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT 2011-11-10 14:34:52.654:INFO::started o.e.j.w.WebAppContext{/nexus,file:/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus/},/opt/grid/slave/workspace/nexus-oss-its/374c4ad3/nexus/nexus-test-harness/nexus-test-harness-its/target/nexus/nexus-oss-webapp-1.10.0-SNAPSHOT/nexus 2011-11-10 14:34:53.151:INFO::Started SelectChannelConnector@0.0.0.0:38342 STARTING 2011-11-10 14:34:53.170:INFO:/nexus:nexus: [Noelios Restlet Engine] - Attaching application: org.sonatype.nexus.rest.NexusApplication@1464fd54 to URI: /nexus {noformat}",1 +"NEXUS-4630","11/10/2011 22:26:40","Anonymous user sporadically gets authorization errors downloading artifacts","Placeholder issue for SUPPORT-1109, once we get latest logs we'll be able to start work on this.",5 +"NEXUS-4641","11/17/2011 09:10:57","app-lifecycle Maven plugin does not handle non-ascii chars correctly","For a Nexus plugin I have some Swedish (non-ascii) chars in the description of the Maven project. These chars are not handled correctly by the app-lifecycle Maven plugin.",1 +"NEXUS-4642","11/17/2011 17:41:55","Empty trash removes ""sonatype-work/nexus/trash"" directory if age is set to -1","If the ""Purge items older than (days)"" is set to ""-1"" the empty trash task removes the ""sonatype-work/nexus/trash"" directory. This causes a problem if this has been symlinked to another directory. Note that you must set the age to -1 to have this directory emptied due to NEXUS-4468",1 +"NEXUS-4643","11/17/2011 21:15:19","Concurrent modification exception when adding repositories","If you add two repositories at the same time you get a concurrent modification exception. This occurred when using a script which creates release and snapshot repositories simultaneously using the REST API: {noformat} jvm 1 | 2011-11-17 10:40:24 INFO [-1643098115-841] - o.s.n.p.r.DefaultRe~ - Added repository ID='AFRS4-SNAPSHOT' (contentClass='maven2', mainFacet='org.sonatype.nexus.proxy.maven.MavenHostedRepository') jvm 1 | 2011-11-17 10:40:24 INFO [-1643098115-841] - o.s.n.c.a.DefaultNe~ - Applying Nexus Configuration... jvm 1 | 2011-11-17 10:40:24 INFO [-1643098115-841] - o.s.n.c.v.DefaultAp~ - Nexus configuration validated succesfully. jvm 1 | 2011-11-17 10:40:24 INFO [-1643098115-842] - o.s.n.p.r.DefaultRe~ - Added repository ID='AFRS4' (contentClass='maven2', mainFacet='org.sonatype.nexus.proxy.maven.MavenHostedRepository') jvm 1 | 2011-11-17 10:40:24 ERROR [-1643098115-841] - o.s.n.e.r.DefaultEr~ - Detected Error in Nexus jvm 1 | java.util.ConcurrentModificationException jvm 1 | at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372) jvm 1 | at java.util.AbstractList$Itr.next(AbstractList.java:343) jvm 1 | at com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:54) jvm 1 | at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68) jvm 1 | at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78) jvm 1 | at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshallField(AbstractReflectionConverter.java:157) jvm 1 | at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.writeField(AbstractReflectionConverter.java:148) jvm 1 | at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.visit(AbstractReflectionConverter.java:118) jvm 1 | at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:129) jvm 1 | at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doMarshal(AbstractReflectionConverter.java:100) jvm 1 | at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:58) jvm 1 | at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68) jvm 1 | at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78) jvm 1 | at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63) jvm 1 | at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:98) jvm 1 | at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:38) jvm 1 | at com.thoughtworks.xstream.XStream.marshal(XStream.java:837) jvm 1 | at com.thoughtworks.xstream.XStream.marshal(XStream.java:826) jvm 1 | at com.thoughtworks.xstream.XStream.toXML(XStream.java:801) jvm 1 | at com.thoughtworks.xstream.XStream.toXML(XStream.java:789) jvm 1 | at org.sonatype.nexus.configuration.model.DefaultConfigurationHelper.clone(DefaultConfigurationHelper.java:50) jvm 1 | at org.sonatype.nexus.configuration.source.FileConfigurationSource.saveConfiguration(FileConfigurationSource.java:319) jvm 1 | at org.sonatype.nexus.configuration.source.FileConfigurationSource.storeConfiguration(FileConfigurationSource.java:207) jvm 1 | at org.sonatype.nexus.configuration.application.DefaultNexusConfiguration.saveConfiguration(DefaultNexusConfiguration.java:284) jvm 1 | at org.sonatype.nexus.configuration.application.DefaultNexusConfiguration.createRepository(DefaultNexusConfiguration.java:720) jvm 1 | at org.sonatype.nexus.templates.repository.AbstractRepositoryTemplateProvider.createRepository(AbstractRepositoryTemplateProvider.java:56) jvm 1 | at org.sonatype.nexus.templates.repository.AbstractRepositoryTemplate.create(AbstractRepositoryTemplate.java:112) jvm 1 | at org.sonatype.nexus.rest.repositories.RepositoryListPlexusResource.post(RepositoryListPlexusResource.java:153) jvm 1 | at org.sonatype.plexus.rest.resource.RestletResource.acceptRepresentation(RestletResource.java:272) jvm 1 | at org.sonatype.nexus.rest.NexusRestletResource.acceptRepresentation(NexusRestletResource.java:77) jvm 1 | at org.restlet.resource.Resource.post(Resource.java:688) jvm 1 | at org.restlet.resource.Resource.handlePost(Resource.java:537) jvm 1 | at org.restlet.Finder.handle(Finder.java:357) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:39) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) jvm 1 | at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) jvm 1 | at org.restlet.Application.handle(Application.java:341) jvm 1 | at org.restlet.ext.wadl.WadlApplication.handle(WadlApplication.java:705) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) jvm 1 | at org.restlet.Component.handle(Component.java:673) jvm 1 | at org.restlet.Server.handle(Server.java:331) jvm 1 | at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) jvm 1 | at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) jvm 1 | at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) jvm 1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) jvm 1 | at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) jvm 1 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359) jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275) jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) jvm 1 | at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344) jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) jvm 1 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) jvm 1 | at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387) jvm 1 | at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) jvm 1 | at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) jvm 1 | at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) jvm 1 | at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) jvm 1 | at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) jvm 1 | at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) jvm 1 | at org.mortbay.jetty.Server.handle(Server.java:326) jvm 1 | at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) jvm 1 | at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879) jvm 1 | at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) jvm 1 | at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) jvm 1 | at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) jvm 1 | at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) jvm 1 | at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) jvm 1 | 2011-11-17 10:40:24 INFO [-1643098115-842] - o.s.n.c.a.DefaultNe~ - Applying Nexus Configuration... jvm 1 | 2011-11-17 10:40:24 ERROR [-1643098115-841] - o.s.n.r.NexusApplic~ - Unhandled exception or error intercepted jvm 1 | java.util.ConcurrentModificationException jvm 1 | at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372) jvm 1 | at java.util.AbstractList$Itr.next(AbstractList.java:343) jvm 1 | at com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:54) jvm 1 | at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68) jvm 1 | at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78) jvm 1 | at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshallField(AbstractReflectionConverter.java:157) jvm 1 | at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.writeField(AbstractReflectionConverter.java:148) jvm 1 | at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.visit(AbstractReflectionConverter.java:118) jvm 1 | at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:129) jvm 1 | at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doMarshal(AbstractReflectionConverter.java:100) jvm 1 | at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:58) jvm 1 | at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68) jvm 1 | at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78) jvm 1 | at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63) jvm 1 | at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:98) jvm 1 | at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:38) jvm 1 | at com.thoughtworks.xstream.XStream.marshal(XStream.java:837) jvm 1 | at com.thoughtworks.xstream.XStream.marshal(XStream.java:826) jvm 1 | at com.thoughtworks.xstream.XStream.toXML(XStream.java:801) jvm 1 | at com.thoughtworks.xstream.XStream.toXML(XStream.java:789) jvm 1 | at org.sonatype.nexus.configuration.model.DefaultConfigurationHelper.clone(DefaultConfigurationHelper.java:50) jvm 1 | at org.sonatype.nexus.configuration.source.FileConfigurationSource.saveConfiguration(FileConfigurationSource.java:319) jvm 1 | at org.sonatype.nexus.configuration.source.FileConfigurationSource.storeConfiguration(FileConfigurationSource.java:207) jvm 1 | at org.sonatype.nexus.configuration.application.DefaultNexusConfiguration.saveConfiguration(DefaultNexusConfiguration.java:284) jvm 1 | at org.sonatype.nexus.configuration.application.DefaultNexusConfiguration.createRepository(DefaultNexusConfiguration.java:720) jvm 1 | at org.sonatype.nexus.templates.repository.AbstractRepositoryTemplateProvider.createRepository(AbstractRepositoryTemplateProvider.java:56) jvm 1 | at org.sonatype.nexus.templates.repository.AbstractRepositoryTemplate.create(AbstractRepositoryTemplate.java:112) jvm 1 | at org.sonatype.nexus.rest.repositories.RepositoryListPlexusResource.post(RepositoryListPlexusResource.java:153) jvm 1 | at org.sonatype.plexus.rest.resource.RestletResource.acceptRepresentation(RestletResource.java:272) jvm 1 | at org.sonatype.nexus.rest.NexusRestletResource.acceptRepresentation(NexusRestletResource.java:77) jvm 1 | at org.restlet.resource.Resource.post(Resource.java:688) jvm 1 | at org.restlet.resource.Resource.handlePost(Resource.java:537) jvm 1 | at org.restlet.Finder.handle(Finder.java:357) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:39) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) jvm 1 | at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) jvm 1 | at org.restlet.Application.handle(Application.java:341) jvm 1 | at org.restlet.ext.wadl.WadlApplication.handle(WadlApplication.java:705) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at org.restlet.Router.handle(Router.java:504) jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) jvm 1 | at org.restlet.Filter.handle(Filter.java:195) jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) jvm 1 | at org.restlet.Component.handle(Component.java:673) jvm 1 | at org.restlet.Server.handle(Server.java:331) jvm 1 | at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) jvm 1 | at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) jvm 1 | at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) jvm 1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) jvm 1 | at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) jvm 1 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359) jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275) jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) jvm 1 | at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344) jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) jvm 1 | at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) jvm 1 | at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387) jvm 1 | at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) jvm 1 | at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) jvm 1 | at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) jvm 1 | at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) jvm 1 | at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) jvm 1 | at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) jvm 1 | at org.mortbay.jetty.Server.handle(Server.java:326) jvm 1 | at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) jvm 1 | at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879) jvm 1 | at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) jvm 1 | at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) jvm 1 | at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) jvm 1 | at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) jvm 1 | at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) jvm 1 | 2011-11-17 10:40:24 INFO [-1643098115-842] - o.s.n.c.v.DefaultAp~ - Nexus configuration validated succesfully. jvm 1 | 2011-11-17 10:40:24 INFO [-1643098115-842] - o.s.n.c.a.DefaultNe~ - Applying Nexus Configuration... {noformat}",3 +"NEXUS-4644","11/18/2011 14:41:06","Uploading a Bundle creates hashes for all content","Recently tried uploading a bundle I'd created. Nexus added .md5 and .sha1 hashes for the .asc files. Previously I had created the bundle which already contained the .md5 and .sha1 hashes, and Nexus created hashes for those too. Nexus should either require (and check) hashes, but not create them, or it should create any required missing hashes.",1 +"NEXUS-4645","11/18/2011 15:08:46","Delete artifact from UI Delete button causes location to be lost","This relates to https://issues.sonatype.org/browse/NEXUS-3992 which has been fixed, but now when deleting via the Delete button in the ""Artifact Information"" panel, the position in the ""Browse Storage"" panel is lost. It is then necessary to repeat the process of finding the folder. This make the button all but useless. The right-click delete option does not have this problem. so it ought to be fixable for the delete button.",2 +"NEXUS-4653","11/21/2011 14:54:21","Local Timezone description should be displayed in screens editing times of a scheduled task","When creating or editing a scheduled task that is not manually run, a ""Start Time"" field is shown in the south panel ( edit panel ). This time is displayed relative to the logged in UI user's timezone. We have NEXUS-4616, which attempts to ensure display of the time value is proper. *This issue is about appending the user's timezone description ( as it is currently displayed in grid ) after the Start Time field's value to help the user understand the context in which they are setting up the scheduled task to run.",1 +"NEXUS-4659","11/22/2011 17:26:14","Upgrade maven-aether-provider to fix MNG-4987","Nexus is affected by this metadata merge bug: http://jira.codehaus.org/browse/MNG-4987 We need to upgrade the maven-aether-provider to fix this.",1 +"NEXUS-4674","11/30/2011 14:20:26","Reindexing one GAV of a GA removes other versions from index","This needs to be verified, Brian F. noticed this on RAO. * Right click and reindex a single version of a GA What you see: The other versions of that GA have been removed from the index Expected: Previous versions to remain in index, the right-clicked version to be added to index.",1 +"NEXUS-6376","12/01/2011 04:21:50","Enhancement: Browse Index tab for NuGet repos","Given that a user can browse an Index of Maven artifacts via the Browse Index tab, and given oData information may be made indexable with lucene in Nexus UI, it may be suitable to support a Browse Index view of nupkg artifacts from within the Nexus UI. The usefulness of this may be in question for NuGet repos however since developers will typically use NuGet Package Explorer to 'explore' nupkg artifacts.",3 +"NEXUS-4679","12/01/2011 04:52:33","Creating a repo with id equal to existing repo group id does not result in an error message","If you create a repo with id ""A"" and then try to create a repo group with id ""A"", you will get a form error when trying to save the repo group indicating a repo already exists. However, if you create a repo group with id ""A"" and then try to create a repo with id ""A"", you will NOT get a form error when trying to save the repo - instead the form *appears* to save without error, yet once the repo list is refreshed, you still only have the conflicting repo group and no repo. ",1 +"NEXUS-4683","12/01/2011 17:08:13","Nexus doesn't work through NTLM proxy which redirects","This may also affect non-ntlm usage. Underlying bug is here: https://issues.apache.org/jira/browse/HTTPCLIENT-856 This is fixed in HttpClient 4.x. Note the last comment on the above bug, in June 2009 the developer says that HttpClient 3.1 is EOL. I think it's time we considered upgrading.",1 +"NEXUS-4688","12/02/2011 16:50:55","Better errors when access is denied because of routing settings","I've opened three support cases here already because of issues which were caused by routing settings. My main problem is that when access is denied because of routing settings, you get a 404 or a 504 (Gateway timeout) but nothing in the error log of Nexus, not even when I enable debugging.",3 +"NEXUS-4691","12/07/2011 14:46:36","Nexus4529HighlyConcurrentRepoAdditionsAndRemovalsIT.doTheTest triggers NullPointerException in ProgressListener","https://builds.sonatype.org/view/nexus/job/nexus-oss-its/107/jdk=java-6x,label=win/testReport/junit/org.sonatype.nexus.integrationtests.nexus4529/Nexus4529HighlyConcurrentRepoAdditionsAndRemovalsIT/doTheTest/ {noformat} java.lang.NullPointerException at org.sonatype.nexus.integrationtests.report.ProgressListener.showResult(ProgressListener.java:76) at org.sonatype.nexus.integrationtests.report.ProgressListener.onTestSkipped(ProgressListener.java:63) at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:70) at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:158) at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:98) at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:111) at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164) at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68) ... Removed 23 stack frames {noformat} There is more to this than it appears. Was this caused by some other test's failure? Testng does weird things when @Before executions fail.",1 +"NEXUS-4692","12/07/2011 21:05:51","Make HTTPClient 4.1 the default transport in Nexus","Current plan is to provide HTTPClient 4.1 as an alternate transport for repositories in the 2.0 release. Once we have enough confidence in this new implementation we should make it the default. This will be done in the following (2.1) release at the earliest.",3 +"NEXUS-4696","12/08/2011 20:40:43","Add enable/disable context menu item to capabilities table","... to quickly enable or disable a capability. This is a short-cut of selecting the entry, toggling the enabled checkbox and clicking save.",2 +"NEXUS-4697","12/08/2011 20:48:21","Add password text field","Add a password masking text field. ie. StringTextFormField which uses ""*"" or something to mask the input.",1 +"NEXUS-6380","12/09/2011 17:14:13","Expire Repository Caches scheduled task not available for NuGet Group Repos","# Create a Nuget Repo Group containing one each of Nuget Proxy, hosted, virtual repos. # Create an Expire Repository Caches task. Notice that the NuGet proxy and Nuget Hosted Repos are available to select in the task configuration, however NuGet Group is not. Compare this with the fact a Maven 2 Group Repo can be selected for this task. ",1 +"NEXUS-4701","12/09/2011 18:49:27","Capability type needs a description in addition to the capability instance","Currently capability has a dynamic ""description"" which is generated for an instance configuration. This is nice to document what the instance of the capability does, but we need some way to generically provide documentation/description/help information about what type of capability is. When browsing the list of capabilities to add, there is no way except for the name currently to provide details to the user as to what the capability is, and often the name doesn't really provide enough detail to explain what its for. CapabilityDescriptor should get description() field (or something) which can return the static multi-line content with rich details about the capability type (ie. not about created instances, like describe(Map) does. ",1 +"NEXUS-4702","12/09/2011 19:18:01","4 files for logback configuration seem like overkill","Currently has these files: * logback-default.xml * logback-events.xml * logback.properties * logback.xml This is IMO way overkill to configure logging, which is essentially a very simple configuration. I understand we want to retain the properties to cope with the simlpe 4 parameter Log Configuration panel, so that would be: * logback.properties * logback.xml Why is this configuration so complicated? Solution from kick off: 1.) Add DO NOT TOUCH messages to top of files (except the logback-nexus.xml which should tell users what to do.) 2.) Add good documentation to logback.xml to tell a user what to do to change the logging levels 3.) rename logback-default.xml to logback-nexus.xml (this is the one the users can edit) ",1 +"NEXUS-4704","12/09/2011 19:20:16","Log configuration UI shows ""log4j"" string","The log configuration UI mentions ""Log4j Configuration"" as the title. This should be ""Log Configuration"".",1 +"NEXUS-4706","12/12/2011 12:46:38","Synchronize Shadow Repository task can be applied to repository types other than shadow ( virtual ) repositories","Create a Synchronize Shadow Repository. In the repository selection list, all repositories are shown - however this task only applies to Virtual/Shadow repositories. Expected only the repository type that applies to this task to be listed. *Clarification:* setting up the task against a repo that does not apply does no harm - those repos are just ignored.",3 +"NEXUS-4707","12/12/2011 21:24:20","Capability description should always get refreshed from component when loading","Right now the capability description, which is auto generated, is stored in the configuration file. If the capability code changes and the configuration is the same (ie. no need to reconfigure to trigger save) then the description can't update to reflect any changes. Perhaps description asis now since its generated shouldn't be persisted at all?",1 +"NEXUS-4708","12/12/2011 21:25:17","Avoid empty ""Settings"" box for capability which has no configuration (ie. only lifecycle)","Similar to ""status"" only show when there is content, otherwise hide.",1 +"NEXUS-4709","12/12/2011 22:08:06","M1-M2 Shadow repository NFC can cause excessive network traffic","The NFC for an M1-M2 shadow repository is 15 minutes. If you have an M1-M2 shadow of an M2 proxy repository Nexus makes a remote network call through the M2 proxy repository every time this limit is reached. Note that we ship with an M1-M2 shadow of maven central.",2 +"NEXUS-4710","12/13/2011 03:23:27","Add support to declare a global capability as a singleton","Some capabilities can only be added once, need some way to configure this and prevent duplicates. For this issue I'm only talking about global capabilities, per-repository singletons will eventually be required, so perhaps keep that in mind, but not required to implement the global singleton capabilities.",3 +"NEXUS-4712","12/14/2011 08:27:01","Do not propagate undefined factory for a capability back to UI","When a capability factory does not exist do not propagate the exception back to UI {code} jvm 1 | ERROR [ities?undefined] nexus - Could not dispatch event: Added capability configuration {id='125ddbe6925cf22a', type='smartproxy.connector', enabled='true', description='Smart-proxy connector: tcp://localhost:9090'} to handler [wrapper public void org.sonatype.nexus.plugins.capabilities.internal.config.CapabilityConfigurationEventsHandler.handle(org.sonatype.nexus.plugins.capabilities.internal.config.CapabilityConfigurationEvent$Added)] jvm 1 | java.lang.reflect.InvocationTargetException: null jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_29] jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_29] jvm 1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_29] jvm 1 | at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_29] jvm 1 | at org.sonatype.nexus.eventbus.internal.guava.EventHandler.handleEvent(EventHandler.java:68) ~[nexus-capabilities-plugin-1.10.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.eventbus.internal.guava.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) ~[nexus-capabilities-plugin-1.10.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.eventbus.internal.guava.EventBus.dispatch(EventBus.java:315) [nexus-capabilities-plugin-1.10.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.eventbus.internal.DefaultNexusEventBus$1.dispatchQueuedEvents(DefaultNexusEventBus.java:77) [nexus-capabilities-plugin-1.10.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.eventbus.internal.guava.EventBus.post(EventBus.java:266) [nexus-capabilities-plugin-1.10.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.eventbus.internal.DefaultNexusEventBus.post(DefaultNexusEventBus.java:104) [nexus-capabilities-plugin-1.10.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.plugins.capabilities.internal.config.DefaultCapabilityConfiguration.add(DefaultCapabilityConfiguration.java:129) [nexus-capabilities-plugin-1.10.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.plugins.capabilities.internal.rest.CapabilitiesPlexusResource.post(CapabilitiesPlexusResource.java:179) [nexus-capabilities-plugin-1.10.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.plexus.rest.resource.RestletResource.acceptRepresentation(RestletResource.java:283) [plexus-restlet-bridge-1.18-20111207.210255-15.jar:na] jvm 1 | at org.sonatype.nexus.rest.NexusRestletResource.acceptRepresentation(NexusRestletResource.java:77) [nexus-rest-api-1.10.0-SNAPSHOT.jar:na] jvm 1 | at org.restlet.resource.Resource.post(Resource.java:688) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.resource.Resource.handlePost(Resource.java:537) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Finder.handle(Finder.java:357) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Router.handle(Router.java:504) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Router.handle(Router.java:504) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:39) [plexus-restlet-bridge-1.18-20111207.210255-15.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Application.handle(Application.java:341) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Router.handle(Router.java:504) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Router.handle(Router.java:504) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Component.handle(Component.java:673) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Server.handle(Server.java:331) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) [com.noelios.restlet.ext.servlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [servlet-api-2.5.jar:2.5] jvm 1 | at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1359) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:74) [shiro-web-1.1.0.jar:na] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520) [jetty-security-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.Server.handle(Server.java:345) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:936) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801) [jetty-http-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224) [jetty-http-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586) [jetty-io-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44) [jetty-io-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) [jetty-util-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) [jetty-util-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at java.lang.Thread.run(Thread.java:680) [na:1.6.0_29] jvm 1 | Caused by: java.lang.RuntimeException: No factory found for a capability of type smartproxy.connector jvm 1 | at org.sonatype.nexus.plugins.capabilities.internal.DefaultCapabilityRegistry.create(DefaultCapabilityRegistry.java:90) ~[nexus-capabilities-plugin-1.10.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.plugins.capabilities.internal.config.CapabilityConfigurationEventsHandler.handle(CapabilityConfigurationEventsHandler.java:57) ~[nexus-capabilities-plugin-1.10.0-SNAPSHOT.jar:na] jvm 1 | ... 81 common frames omitted {code}",1 +"NEXUS-4722","12/16/2011 23:02:09","Cancel of capability behaves oddly if selected more than one capability to view","If you select a few capabilities, then click cancel, it takes you back to the previous capability you were looking at vs. back to ""select a capability view"". Seems a bit odd to me.",1 +"NEXUS-4724","12/18/2011 00:21:50","Use alias for capabilities-list/data/... for CapabilityListItemResource","{noformat} http://localhost:9080/nexus/service/local/capabilities/12585efd2dd2c7e9 ... {noformat} ",1 +"NEXUS-4737","12/27/2011 14:46:14","Add extra columns to the repository targets view","There isn't enough information shown in the repository target table, trying to figure out what targets in the system might apply to a particular artifact involves clicking on each target in turn and looking at the regex's. There's lots of space in the table, we should add columsn for the repository type and the pattern expressions. Note that there won't always be enough room to display all of the pattern expressions, but it will still help a lot.",1 +"NEXUS-4754","01/05/2012 17:12:19","Generated ""All Repositories View"" is empty if there are no repositories of that type ","we should not validate read only roles. This will hide the error, and it will appear as everything is working fine (which in this case it is)",1 +"NEXUS-4927","01/12/2012 16:31:19","When I try to add a new virtual repo wrong field is focused","http://screencast.com/t/qhyGw9SH4EB I just click repository add virtual repo Source Nexus Repository ID got focus When I go to the first field to start the form the validation error pops...",1 +"NEXUS-4764","01/12/2012 19:26:34","Cannot rename file IOException when uploading duplicate GAV under load","Was performing deploys using multiple threads (users) of the same set of release artifacts to a releases repo. File locking seemed to fail avoiding IOException: {noformat} jvm 1 | 2012-01-11 11:39:36 ERROR [pha-10.jar.sha1] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSPeer - Rename operation failed after 0 retries in 0 ms intervals /home/sonatype/nexus-grid/nexus-webapp-smartproxy-nexus1/nexus-core-oss-webapp-2.0-SNAPSHOT/./../sonatype-work/nexus/storage/releases/.nexus/attributes/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-10/doxia-decoration-model-1.0-alpha-10.jar.sha1.nx-upload --> /home/sonatype/nexus-grid/nexus-webapp-smartproxy-nexus1/nexus-core-oss-webapp-2.0-SNAPSHOT/./../sonatype-work/nexus/storage/releases/.nexus/attributes/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-10/doxia-decoration-model-1.0-alpha-10.jar.sha1 jvm 1 | 2012-01-11 11:39:36 WARN [pha-10.jar.sha1] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSPeer - No cleanup done for error that happened while trying to save attibutes of item releases:/.nexus/attributes/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-10/doxia-decoration-model-1.0-alpha-10.jar.sha1, the backup is left as /home/sonatype/nexus-grid/nexus-webapp-smartproxy-nexus1/nexus-core-oss-webapp-2.0-SNAPSHOT/./../sonatype-work/nexus/storage/releases/.nexus/attributes/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-10/doxia-decoration-model-1.0-alpha-10.jar.sha1.nx-upload! jvm 1 | 2012-01-11 11:39:42 ERROR [pha-10.jar.sha1] - org.sonatype.nexus.error.reporting.DefaultErrorReportingManager - Detected Error in Nexus jvm 1 | org.restlet.resource.ResourceException: The server encountered an unexpected condition which prevented it from fulfilling the request jvm 1 | at org.sonatype.nexus.rest.AbstractResourceStoreContentPlexusResource.handleException(AbstractResourceStoreContentPlexusResource.java:835) ~[nexus-rest-api-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.rest.AbstractResourceStoreContentPlexusResource.upload(AbstractResourceStoreContentPlexusResource.java:199) ~[nexus-rest-api-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.plexus.rest.resource.RestletResource.upload(RestletResource.java:390) ~[plexus-restlet-bridge-1.18.jar:na] jvm 1 | at org.sonatype.plexus.rest.resource.RestletResource.storeRepresentation(RestletResource.java:313) ~[plexus-restlet-bridge-1.18.jar:na] jvm 1 | at org.sonatype.nexus.rest.NexusRestletResource.storeRepresentation(NexusRestletResource.java:95) ~[nexus-rest-api-2.0-SNAPSHOT.jar:na] jvm 1 | at org.restlet.resource.Resource.put(Resource.java:706) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.resource.Resource.handlePut(Resource.java:603) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Finder.handle(Finder.java:359) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Router.handle(Router.java:504) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:39) [plexus-restlet-bridge-1.18.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Application.handle(Application.java:341) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Router.handle(Router.java:504) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Router.handle(Router.java:504) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Component.handle(Component.java:673) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at org.restlet.Server.handle(Server.java:331) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) [com.noelios.restlet.ext.servlet-1.1.6-SONATYPE-5348-V4.jar:na] jvm 1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [servlet-api-2.5.jar:2.5] jvm 1 | at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:264) [guice-servlet-3.1.0.jar:na] jvm 1 | at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:179) [guice-servlet-3.1.0.jar:na] jvm 1 | at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93) [guice-servlet-3.1.0.jar:na] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:63) [guice-servlet-3.1.0.jar:na] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.0.jar:na] jvm 1 | at org.sonatype.nexus.web.NexusGuiceFilter$IteratingFilterChain.doFilter(NexusGuiceFilter.java:85) [nexus-web-utils-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.web.NexusGuiceFilter.dispatch(NexusGuiceFilter.java:59) [nexus-web-utils-2.0-SNAPSHOT.jar:na] jvm 1 | at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:119) [guice-servlet-3.1.0.jar:na] jvm 1 | at org.sonatype.nexus.web.NexusGuiceFilter.doFilter(NexusGuiceFilter.java:49) [nexus-web-utils-2.0-SNAPSHOT.jar:na] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [shiro-web-1.1.0.jar:na] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.1.0.jar:na] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.1.0.jar:na] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) [shiro-web-1.1.0.jar:na] jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.1.0.jar:na] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.1.0.jar:na] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.1.0.jar:na] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) [shiro-web-1.1.0.jar:na] jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.1.0.jar:na] jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359) [shiro-web-1.1.0.jar:na] jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275) [shiro-web-1.1.0.jar:na] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.1.0.jar:1.1.0] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.1.0.jar:1.1.0] jvm 1 | at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344) [shiro-core-1.1.0.jar:1.1.0] jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) [shiro-web-1.1.0.jar:na] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) [shiro-web-1.1.0.jar:na] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520) [jetty-security-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.Server.handle(Server.java:345) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:936) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801) [jetty-http-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224) [jetty-http-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586) [jetty-io-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44) [jetty-io-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) [jetty-util-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) [jetty-util-7.5.4.v20111024.jar:7.5.4.v20111024] jvm 1 | at java.lang.Thread.run(Thread.java:619) [na:1.6.0_21] jvm 1 | Caused by: org.sonatype.nexus.proxy.LocalStorageException: Cannot store attributes! jvm 1 | at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage.storeItem(DefaultFSLocalRepositoryStorage.java:390) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractRepository.storeItem(AbstractRepository.java:1040) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.proxy.maven.AbstractMavenRepository.storeItem(AbstractMavenRepository.java:408) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractRepository.storeItem(AbstractRepository.java:674) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.storeItem(DefaultRepositoryRouter.java:219) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.rest.AbstractResourceStoreContentPlexusResource.upload(AbstractResourceStoreContentPlexusResource.java:194) ~[nexus-rest-api-2.0-SNAPSHOT.jar:na] jvm 1 | ... 92 common frames omitted jvm 1 | Caused by: org.sonatype.nexus.proxy.LocalStorageException: Got exception during storing on path releases:/.nexus/attributes/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-10/doxia-decoration-model-1.0-alpha-10.jar.sha1 (while moving to final destination) jvm 1 | at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSPeer.storeItem(DefaultFSPeer.java:167) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage.storeItem(DefaultFSLocalRepositoryStorage.java:368) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.proxy.attributes.DefaultLSAttributeStorage.putAttributes(DefaultLSAttributeStorage.java:178) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.proxy.attributes.DelegatingAttributeStorage.putAttributes(DelegatingAttributeStorage.java:68) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.proxy.attributes.DefaultAttributesHandler.storeAttributes(DefaultAttributesHandler.java:272) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.proxy.attributes.DefaultAttributesHandler.storeAttributes(DefaultAttributesHandler.java:304) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage.storeItem(DefaultFSLocalRepositoryStorage.java:386) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | ... 97 common frames omitted jvm 1 | Caused by: java.io.IOException: Cannot rename file ""/home/sonatype/nexus-grid/nexus-webapp-smartproxy-nexus1/nexus-core-oss-webapp-2.0-SNAPSHOT/./../sonatype-work/nexus/storage/releases/.nexus/attributes/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-10/doxia-decoration-model-1.0-alpha-10.jar.sha1.nx-upload"" to ""/home/sonatype/nexus-grid/nexus-webapp-smartproxy-nexus1/nexus-core-oss-webapp-2.0-SNAPSHOT/./../sonatype-work/nexus/storage/releases/.nexus/attributes/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-10/doxia-decoration-model-1.0-alpha-10.jar.sha1""! File /home/sonatype/nexus-grid/nexus-webapp-smartproxy-nexus1/nexus-core-oss-webapp-2.0-SNAPSHOT/./../sonatype-work/nexus/storage/releases/.nexus/attributes/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-10/doxia-decoration-model-1.0-alpha-10.jar.sha1.nx-upload does not exist jvm 1 | at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSPeer.handleRenameOperation(DefaultFSPeer.java:446) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSPeer.storeItem(DefaultFSPeer.java:142) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | ... 103 common frames omitted {noformat} See attached wrapper.log for complete log where this happened twice",2 +"NEXUS-4770","01/18/2012 02:53:40","Attributes Upgrader logs duplicate stack trace when a file is not found and stops","Noticed duplicate logging with stack of same problem at INFO and WARN by the background attributes upgrader task. This in my Nexus logs after upgrading from 1.9.2 WAR file running in tomcat. {noformat} 2012-01-17 15:30:13 INFO [ributesUpgrader] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Rebuilding attributes in repository ID='releases' from path='/' 2012-01-17 15:30:13 INFO [ributesUpgrader] - org.sonatype.nexus.proxy.attributes.upgrade.AttributesUpgradeEventInspector$UpgraderThread - Upgrading legacy attributes of repository ""Compass Project"" [id=compass-project]. 2012-01-17 15:30:13 INFO [ributesUpgrader] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Rebuilding attributes in repository ID='compass-project' from path='/' 2012-01-17 15:30:13 INFO [ributesUpgrader] - org.sonatype.nexus.proxy.attributes.upgrade.AttributesUpgradeEventInspector$UpgraderThread - Upgrading legacy attributes of repository ""Tomcat Release"" [id=tomcat.apache.org-release]. 2012-01-17 15:30:13 INFO [ributesUpgrader] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Rebuilding attributes in repository ID='tomcat.apache.org-release' from path='/' 2012-01-17 15:30:13 INFO [ributesUpgrader] - org.sonatype.nexus.proxy.attributes.upgrade.AttributesUpgradeEventInspector$UpgraderThread - Upgrading legacy attributes of repository ""Public Snapshot Repositories"" [id=public-snapshots]. 2012-01-17 15:30:13 INFO [ributesUpgrader] - org.sonatype.nexus.proxy.maven.maven2.M2GroupRepository - Rebuilding attributes in repository ID='public-snapshots' from path='/' 2012-01-17 15:30:17 INFO [ributesUpgrader] - org.sonatype.nexus.proxy.walker.DefaultWalker - Aborted walking on repository ID='public-snapshots' from path='/', cause: Item not found on path ""/com/sonatype/matrix/maven/matrix-maven-eventspy-3.0"" in repository ""public-snapshots""! 2012-01-17 15:30:17 WARN [ributesUpgrader] - org.sonatype.nexus.proxy.walker.DefaultWalker - Got exception while doing retrieve, bailing out. org.sonatype.nexus.proxy.walker.WalkerException: Aborted walking on repository ID='public-snapshots' from path='/'. at org.sonatype.nexus.proxy.walker.DefaultWalker.reportWalkEnd(DefaultWalker.java:170) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:109) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.repository.AbstractRepository.recreateAttributes(AbstractRepository.java:534) [nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.attributes.upgrade.AttributesUpgradeEventInspector$UpgraderThread.run(AttributesUpgradeEventInspector.java:195) [nexus-proxy-2.0-SNAPSHOT.jar:na] Caused by: org.sonatype.nexus.proxy.ItemNotFoundException: Item not found on path ""/com/sonatype/matrix/maven/matrix-maven-eventspy-3.0"" in repository ""public-snapshots""! at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.doListItems(AbstractGroupRepository.java:220) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.repository.AbstractRepository.list(AbstractRepository.java:1107) [nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:232) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:253) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:253) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:253) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:253) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:253) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:101) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] ... 2 common frames omitted 2012-01-17 15:30:17 INFO [ributesUpgrader] - org.sonatype.nexus.proxy.walker.DefaultWalker - Aborted walking on repository ID='public-snapshots' from path='/', cause: org.sonatype.nexus.proxy.walker.WalkerException: Aborted walking on repository ID='public-snapshots' from path='/'. at org.sonatype.nexus.proxy.walker.DefaultWalker.reportWalkEnd(DefaultWalker.java:170) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:109) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.repository.AbstractRepository.recreateAttributes(AbstractRepository.java:534) [nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.attributes.upgrade.AttributesUpgradeEventInspector$UpgraderThread.run(AttributesUpgradeEventInspector.java:195) [nexus-proxy-2.0-SNAPSHOT.jar:na] Caused by: org.sonatype.nexus.proxy.ItemNotFoundException: Item not found on path ""/com/sonatype/matrix/maven/matrix-maven-eventspy-3.0"" in repository ""public-snapshots""! at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.doListItems(AbstractGroupRepository.java:220) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.repository.AbstractRepository.list(AbstractRepository.java:1107) [nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:232) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:253) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:253) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:253) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:253) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:253) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:101) ~[nexus-proxy-2.0-SNAPSHOT.jar:na] ... 2 common frames omitted {noformat} Would like to understand why it seemed to abort because of some missing file. And would also like to see only one log of this message at the correct log level if possible. I didn't notice the attributes upgrader ever try to rerun itself - is that expected? Can it be a little more forgiving?",2 +"NEXUS-4771","01/18/2012 04:25:28","Delete capability confirmation dialog uses description of capability rather than capability type","If a capability is created and then encounters a configuration error, the description will contain the word FAILED: followed by the class name of the exception.( see NXCM-3681 ) When trying to delete the capability you will be asked for confirmation with a message such as ""Delete the ""FAILED: java.lang.IllegalStateException"" capability?"" It would be more logical to use the capability type instead of description here, or neither of these. See attached screenshot for an example of how this looks.",1 +"NEXUS-4772","01/18/2012 16:31:14","Create Repository UI for each type of repository","There are two options for this. 1.) Allow each repository type to contribute its own UI 2.) Create a generic descriptor used to generate a UI (e.g. like scheduled tasks, rules, etc) The current UI is VERY tied to maven2 repositories, all other repository implementations hack around this fact.",40 +"NEXUS-4773","01/18/2012 20:09:25","INFO log message from NettyAsyncHttpProvider on every click of remote repository browser tree node","Every mouse click of the remote repository browser tree node in the UI prints one log line at INFO level. Here I expanded three nodes: {noformat} jvm 1 | 2012-01-18 16:22:24 INFO [c=1326916344869] - com.ning.http.client.providers.netty.NettyAsyncHttpProvider - Number of application's worked threads is 8 jvm 1 | 2012-01-18 16:22:31 INFO [c=1326916351523] - com.ning.http.client.providers.netty.NettyAsyncHttpProvider - Number of application's worked threads is 8 jvm 1 | 2012-01-18 16:22:43 INFO [c=1326916363397] - com.ning.http.client.providers.netty.NettyAsyncHttpProvider - Number of application's worked threads is 8 {noformat} Why isn't this using httpclient? Why print this line at INFO. If it must stay, please explain the value of it in solving customer issues. At the least move the category log level to WARN by default.",1 +"NEXUS-6385","01/19/2012 19:42:57","Nexus Cookies do not specify port, resulting in cookies from myhostname:8081 are sent to myhostname:8082","I tracked this down to cookies do not typically set the port. So per RFC can be sent to a different server as long as the host name is the same. http://stackoverflow.com/questions/1612177/are-http-cookies-port-specific Setting the port in the cookie may cause other issues with browsers (and how does this play with firewalls and proxies) One simple solution is to make the cookie name configurable. If we ever switch to shiro-guice (which will remove a bunch of other code) we could easily inject/configure the cookie name. Or if we are going to keep our boiler plate code, we could configure the cookie name in org.sonatype.nexus.security.NexusWebRealmSecurityManager.init() to call webSessionManager.setSessionIdCookie(...) Original Setup: {quote} I started two nexus pro instances locally. Nexus A - http://lcaolhost:8081/nexus - publisher Nexus B - http://localhost:8082/nexus - subscriber Established a Smart Proxy trust between A and B. Created apache-snapshots-proxy repo on Nexus B proxied to Nexus A http://localhost:8081/nexus/content/repositories/apache-snapshots Besides logging into the UI only a few times I noticed the following after a short while in the Nexus B logs: {quote} jvm 1 | 2012-01-19 15:45:22 INFO [Thread-25 ] - org.apache.shiro.session.mgt.AbstractValidatingSessionManager - Validating all active sessions... jvm 1 | 2012-01-19 15:45:22 INFO [Thread-25 ] - org.apache.shiro.session.mgt.AbstractValidatingSessionManager - Finished session validation. [274] sessions were stopped. {quote} Nexus A seemed to have 169 sessions cleaned up. How is it that 274 sessions were created? Are these being created by smart proxy? {quote}",2 +"NEXUS-4782","01/20/2012 22:12:15","Add support for Jetty JMX into Nexus Bundle.","We should allow people to turn on Jetty JMX support in the Nexus server. Two changes needed: 1) Add org.eclipse.jetty:jetty-jmx:7.4.2.v20110526 into the /lib directory 2) Provide a sample jetty.xml that shows how to enable it jetty-jmx.xml has been attached, the new configuration is at the bottom. Note: This issue is for Nexus 2.0, which uses Jetty 7.4.2",1 +"NEXUS-4783","01/21/2012 20:00:49","Capability lower display area heading should be cleared when ""Advanced"" button unchecked","See attached image. If you click to check the ""Show Advanced"" button in the capabilities pane, selected an advanced item and then uncheck ""Show Advanced"", the heading is not cleared.",1 +"NEXUS-4788","01/24/2012 23:11:59","Log spam if someone proxies repositories from the /service rest endpoint","Not sure how this happened, but someone is making a lot of GET requests RSO on the /service/local/repositories/ rest endpoint. This isn't valid, but the in any case log message shouldn't be an ERROR, it should be DEBUG. {quote} 2012-01-24 17:03:30 ERROR [adoc-2.3.15.jar] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""HEAD http://repository.sonatype.org/service/local/repositories/central/content/freemarker/freemarker-javadoc/2.3.15/freemarker-javadoc-2.3.15.jar"": Access denied on repository ID='central', path='/freemarker/freemarker-javadoc/2.3.15/freemarker-javadoc-2.3.15.jar', action='read'! 2012-01-24 17:03:30 ERROR [adoc-2.3.15.jar] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""HEAD http://repository.sonatype.org/service/local/repositories/jboss/content/freemarker/freemarker-javadoc/2.3.15/freemarker-javadoc-2.3.15.jar"": Access denied on repository ID='jboss', path='/freemarker/freemarker-javadoc/2.3.15/freemarker-javadoc-2.3.15.jar', action='read'! 2012-01-24 17:03:36 ERROR [i-1.5.8-ivy.xml] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""HEAD http://repository.sonatype.org/service/local/repositories/central/content/org/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8-ivy.xml"": Access denied on repository ID='central', path='/org/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8-ivy.xml', action='read'! 2012-01-24 17:03:36 ERROR [i-1.5.8-ivy.xml] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""HEAD http://repository.sonatype.org/service/local/repositories/jboss/content/org/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8-ivy.xml"": Access denied on repository ID='jboss', path='/org/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8-ivy.xml', action='read'! 2012-01-24 17:03:38 ERROR [4-1.1.0-ivy.xml] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""HEAD http://repository.sonatype.org/service/local/repositories/central/content/org/jboss/javaee/jboss-jacc-api_JDK4/1.1.0/jboss-jacc-api_JDK4-1.1.0-ivy.xml"": Access denied on repository ID='central', path='/org/jboss/javaee/jboss-jacc-api_JDK4/1.1.0/jboss-jacc-api_JDK4-1.1.0-ivy.xml', action='read'! 2012-01-24 17:03:38 ERROR [4-1.1.0-ivy.xml] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""HEAD http://repository.sonatype.org/service/local/repositories/jboss/content/org/jboss/javaee/jboss-jacc-api_JDK4/1.1.0/jboss-jacc-api_JDK4-1.1.0-ivy.xml"": Access denied on repository ID='jboss', path='/org/jboss/javaee/jboss-jacc-api_JDK4/1.1.0/jboss-jacc-api_JDK4-1.1.0-ivy.xml', action='read'! 2012-01-24 17:03:51 ERROR [t-1.5.8-ivy.xml] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""HEAD http://repository.sonatype.org/service/local/repositories/central/content/org/slf4j/slf4j-parent/1.5.8/slf4j-parent-1.5.8-ivy.xml"": Access denied on repository ID='central', path='/org/slf4j/slf4j-parent/1.5.8/slf4j-parent-1.5.8-ivy.xml', action='read'! 2012-01-24 17:03:51 ERROR [t-1.5.8-ivy.xml] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""HEAD http://repository.sonatype.org/service/local/repositories/jboss/content/org/slf4j/slf4j-parent/1.5.8/slf4j-parent-1.5.8-ivy.xml"": Access denied on repository ID='jboss', path='/org/slf4j/slf4j-parent/1.5.8/slf4j-parent-1.5.8-ivy.xml', action='read'! 2012-01-24 17:03:53 ERROR [t-1.6.5-ivy.xml] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""HEAD http://repository.sonatype.org/service/local/repositories/central/content/ant/ant/1.6.5/ant-1.6.5-ivy.xml"": Access denied on repository ID='central', path='/ant/ant/1.6.5/ant-1.6.5-ivy.xml', action='read'! 2012-01-24 17:03:53 ERROR [t-1.6.5-ivy.xml] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""HEAD http://repository.sonatype.org/service/local/repositories/jboss/content/ant/ant/1.6.5/ant-1.6.5-ivy.xml"": Access denied on repository ID='jboss', path='/ant/ant/1.6.5/ant-1.6.5-ivy.xml', action='read'! {quote}",1 +"NEXUS-4789","01/24/2012 23:13:59","""Remote storage settings change detected"" is being logged over and over on RSO","The RSO logs are showing these messages a lot since we put the 2.0 build on it. We need to investigate. {quote} 2012-01-24 17:04:09 INFO [oviders-1.3.pom] - org.sonatype.nexus.proxy.storage.remote.commonshttpclient.CommonsHttpClientRemoteStorage - Remote storage settings change detected for ProxyRepository ID=""mc-repo"" (""mc-repo""), updating HttpClient... 2012-01-24 17:04:09 INFO [oviders-1.3.pom] - org.sonatype.nexus.proxy.storage.remote.commonshttpclient.CommonsHttpClientRemoteStorage - Remote storage settings change detected for ProxyRepository ID=""spring"" (""Spring External""), updating HttpClient... 2012-01-24 17:04:09 INFO [-dao-1.1.28.jar] - org.sonatype.nexus.proxy.storage.remote.commonshttpclient.CommonsHttpClientRemoteStorage - Remote storage settings change detected for ProxyRepository ID=""GWT-plugin-repo"" (""GWT Plugin Repo""), updating HttpClient... 2012-01-24 17:04:09 WARN [oviders-1.3.pom] - org.sonatype.nexus.proxy.storage.remote.commonshttpclient.CommonsHttpClientRemoteStorage - The proxy repository ""Spring External"" (ID=spring) is backed by Amazon S3 service. This means that Nexus can't reliably detect the validity of your setup (baseUrl of proxy repository)! 2012-01-24 17:04:09 INFO [oviders-1.3.pom] - org.sonatype.nexus.proxy.storage.remote.commonshttpclient.CommonsHttpClientRemoteStorage - Remote storage settings change detected for ProxyRepository ID=""github-oss"" (""github (from oss)""), updating HttpClient... 2012-01-24 17:04:10 INFO [model-1.0.1.jar] - org.sonatype.nexus.proxy.storage.remote.commonshttpclient.CommonsHttpClientRemoteStorage - Remote storage settings change detected for ProxyRepository ID=""eclipselink"" (""EclipseLink""), updating HttpClient... 2012-01-24 17:04:10 ERROR [urces-1.5.8.jar] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""HEAD http://repository.sonatype.org/service/local/repositories/central/content/org/slf4j/slf4j-api-sources/1.5.8/slf4j-api-sources-1.5.8.jar"": Access denied on repository ID='central', path='/org/slf4j/slf4j-api-sources/1.5.8/slf4j-api-sources-1.5.8.jar', action='read'! 2012-01-24 17:04:10 ERROR [urces-1.5.8.jar] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""HEAD http://repository.sonatype.org/service/local/repositories/jboss/content/org/slf4j/slf4j-api-sources/1.5.8/slf4j-api-sources-1.5.8.jar"": Access denied on repository ID='jboss', path='/org/slf4j/slf4j-api-sources/1.5.8/slf4j-api-sources-1.5.8.jar', action='read'! 2012-01-24 17:04:10 INFO [0.1-sources.jar] - org.sonatype.nexus.proxy.storage.remote.commonshttpclient.CommonsHttpClientRemoteStorage - Remote storage settings change detected for ProxyRepository ID=""central-proxy"" (""Central Proxy""), updating HttpClient... 2012-01-24 17:04:10 INFO [0.1-sources.jar] - org.sonatype.nexus.proxy.storage.remote.commonshttpclient.CommonsHttpClientRemoteStorage - Remote storage settings change detected for ProxyRepository ID=""atlassian"" (""Atlassian""), updating HttpClient... 2012-01-24 17:04:10 INFO [0.1-sources.jar] - org.sonatype.nexus.proxy.storage.remote.commonshttpclient.CommonsHttpClientRemoteStorage - Remote storage settings change detected for ProxyRepository ID=""aduna"" (""Aduna Software""), updating HttpClient... 2012-01-24 17:04:10 INFO [-1.0.1.jar.sha1] - org.sonatype.nexus.proxy.storage.remote.commonshttpclient.CommonsHttpClientRemoteStorage - Remote storage settings change detected for ProxyRepository ID=""apache-staging"" (""Apache Staging""), updating HttpClient... {quote}",3 +"NEXUS-4792","01/25/2012 19:51:04","Extend task UI to allow for automatically scheduled system tasks.","We have a use case where a task gets run periodically by the Nexus system. We want the user to be able to disable, cancel or stop this task, but not change other aspects of it. Currently there is no good way to accomplish this. We need to make changes to the Nexus core to allow for this.",3 +"NEXUS-4794","01/26/2012 13:55:51","Fix repository fields value","Currently the UI is adding repo_ or group_ in front of repository id for repository type fields. This may be from the times when the two were separated but is no longer necessary and is actually unwanted as this wil require every capability to take extra care to encode/decode this value.",1 +"NEXUS-4796","01/27/2012 10:37:05","Form values are HTML encoded multiple times on save","The REST layer encodes special characters in message payload as HTML entities as a means to protect the UI from XSS attacks. The encoded values are rendered ok, but configuration pages send the literal (still encoded with html entities) values by default. These values will be encoded again. ||Location||First save||Second Save||Third Save|| |Form Field|{noformat}""Test""{noformat}|{noformat}"Test"{noformat}|{noformat}&quot;Test&quot;{noformat}| |Value returned via REST|{noformat}"Test"{noformat}|{noformat}&quot;Test&quot;{noformat}|{noformat}&amp;quot;Test&amp;quot;{noformat}| |Displayed in other UI|{noformat}""Test""{noformat}|{noformat}"Test"{noformat}|{noformat}&quot;Test&quot;{noformat}| See attached video. This is already fixed in some places (Repository Name, generated fields like parts of the task and capabilities configuration, custom metadata grid). See the htmlDecode configuration for Ext.form.TextField. Consider making that true by default. ",3 +"NEXUS-4799","01/27/2012 22:43:24","Attributes upgrade logs exception when it doesn't encounter README.txt","Attributes upgrade blows up when README.txt isn't at root of old directory: {quote} jvm 1 | 2012-01-27 16:40:53 ERROR [host-1-thread-3] - org.sonatype.nexus.proxy.attributes.upgrade.DefaultAttributeUpgrader - Unable to perform file read from legacy attributes directory: /home/rseddon/test/nexus/nexus-professional-2.0-SNAPSHOT/./../sonatype-work/nexus/proxy/attributes jvm 1 | java.io.FileNotFoundException: /home/rseddon/test/nexus/nexus-professional-2.0-SNAPSHOT/./../sonatype-work/nexus/proxy/attributes/README.txt (No such file or directory) jvm 1 | at java.io.FileInputStream.open(Native Method) ~[na:1.6.0_29] jvm 1 | at java.io.FileInputStream.(FileInputStream.java:120) ~[na:1.6.0_29] jvm 1 | at org.codehaus.plexus.util.FileUtils.fileRead(FileUtils.java:383) ~[plexus-utils-2.1.jar:na] jvm 1 | at org.codehaus.plexus.util.FileUtils.fileRead(FileUtils.java:359) ~[plexus-utils-2.1.jar:na] jvm 1 | at org.sonatype.nexus.proxy.attributes.upgrade.DefaultAttributeUpgrader.isUpgradeDone(DefaultAttributeUpgrader.java:269) [nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.proxy.attributes.upgrade.DefaultAttributeUpgrader.isUpgradeFinished(DefaultAttributeUpgrader.java:136) [nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.proxy.attributes.upgrade.DefaultAttributeUpgrader.upgradeAttributes(DefaultAttributeUpgrader.java:221) [nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.proxy.attributes.upgrade.DefaultAttributeUpgrader.upgradeAttributes(DefaultAttributeUpgrader.java:202) [nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.proxy.attributes.upgrade.AttributesUpgradeEventInspector.inspect(AttributesUpgradeEventInspector.java:47) [nexus-proxy-2.0-SNAPSHOT.jar:na] jvm 1 | at org.sonatype.nexus.events.DefaultEventInspectorHost$EventInspectorHandler.run(DefaultEventInspectorHost.java:164) [nexus-app-2.0-SNAPSHOT.jar:na] jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_29] jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_29] jvm 1 | at java.lang.Thread.run(Thread.java:662) [na:1.6.0_29] {quote}",1 +"NEXUS-4801","01/30/2012 19:19:01","Proxy attributes in virtual repositories don't get upgraded","After upgrading from 1.9.2.4 to 2.0 the proxy/attributes in my central-m1 shadow repository were not upgraded. {noformat} ./central-m1/antlr/jars/antlr-2.7.6.jar ./central-m1/antlr/jars/antlr-2.7.6.jar.sha1 ./central-m1/antlr/poms/antlr-2.7.6.pom ./central-m1/antlr/poms/antlr-2.7.6.pom.sha1 ./central-m1/com.google/poms/google-5.pom ./central-m1/com.google/poms/google-5.pom.sha1 ./central-m1/com.google.guava/jars/guava-r06.jar ./central-m1/com.google.guava/jars/guava-r06.jar.sha1 ./central-m1/com.google.guava/poms/guava-r06.pom ./central-m1/com.google.guava/poms/guava-r06.pom.sha1 ./central-m1/commons-collections/jars/commons-collections-3.1.jar ./central-m1/commons-collections/jars/commons-collections-3.1.jar.sha1 ./central-m1/commons-collections/poms/commons-collections-3.1.pom ./central-m1/commons-collections/poms/commons-collections-3.1.pom.sha1 ./central-m1/dom4j/jars/dom4j-1.6.1.jar ./central-m1/dom4j/jars/dom4j-1.6.1.jar.sha1 ./central-m1/dom4j/poms/dom4j-1.6.1.pom ./central-m1/dom4j/poms/dom4j-1.6.1.pom.sha1 ./central-m1/javax.transaction/jars/jta-1.1.jar ./central-m1/javax.transaction/jars/jta-1.1.jar.sha1 ./central-m1/javax.transaction/poms/jta-1.1.pom ./central-m1/javax.transaction/poms/jta-1.1.pom.sha1 ./central-m1/junit/jars/junit-4.4.jar ./central-m1/junit/jars/junit-4.4.jar.sha1 ./central-m1/junit/poms/junit-4.4.pom ./central-m1/junit/poms/junit-4.4.pom.sha1 ./central-m1/org.apache/poms/apache-10.pom ./central-m1/org.apache/poms/apache-10.pom.sha1 ./central-m1/org.apache/poms/apache-7.pom ./central-m1/org.apache/poms/apache-7.pom.sha1 ./central-m1/org.apache/poms/apache-9.pom ./central-m1/org.apache/poms/apache-9.pom.sha1 ./central-m1/org.apache.maven/poms/maven-parent-16.pom ./central-m1/org.apache.maven/poms/maven-parent-16.pom.sha1 ./central-m1/org.apache.maven/poms/maven-parent-19.pom ./central-m1/org.apache.maven/poms/maven-parent-19.pom.sha1 ./central-m1/org.apache.maven/poms/maven-parent-20.pom ./central-m1/org.apache.maven/poms/maven-parent-20.pom.sha1 ./central-m1/org.apache.maven/poms/maven-parent-21.pom ./central-m1/org.apache.maven/poms/maven-parent-21.pom.sha1 ./central-m1/org.apache.maven/poms/maven-plugin-api-2.0.6.pom ./central-m1/org.apache.maven/poms/maven-plugin-api-2.0.6.pom.sha1 ./central-m1/org.apache.maven.plugins/jars/maven-clean-plugin-2.4.1.jar ./central-m1/org.apache.maven.plugins/jars/maven-clean-plugin-2.4.1.jar.sha1 ./central-m1/org.apache.maven.plugins/jars/maven-compiler-plugin-2.3.2.jar ./central-m1/org.apache.maven.plugins/jars/maven-compiler-plugin-2.3.2.jar.sha1 ./central-m1/org.apache.maven.plugins/jars/maven-jar-plugin-2.3.2.jar ./central-m1/org.apache.maven.plugins/jars/maven-jar-plugin-2.3.2.jar.sha1 ./central-m1/org.apache.maven.plugins/jars/maven-javadoc-plugin-2.8.1.jar ./central-m1/org.apache.maven.plugins/jars/maven-javadoc-plugin-2.8.1.jar.sha1 ./central-m1/org.apache.maven.plugins/jars/maven-resources-plugin-2.5.jar {noformat}",1 +"NEXUS-4803","01/31/2012 11:47:42","Tabs on repository panel do not scroll","The upper tab pane ('Welcome', 'Repositories', ...) will offer scroll buttons, but the repository tab pane is just out of reach.",1 +"NEXUS-4804","01/31/2012 13:01:09","Unable to deploy a project to m1 hosted repository","While testing NXCM-3145 I tried to deploy a project to m1 hosted repository and got the following error: {noformat} jvm 1 | 2012-01-31 10:54:53 INFO [5452-1-site.xml] - org.sonatype.nexus.proxy.maven.maven1.M1Repository - Storing of item m1h:/org.sonatype.flexmojos/poms/flexmojos-parent-4.2-beta-20120131.125452 -1-site.xml is forbidden by Maven Repository policy. Because m1h is a SNAPSHOT repository jvm 1 | 2012-01-31 10:54:53 ERROR [5452-1-site.xml] - org.sonatype.nexus.rest.ContentPlexusResource - Got exception during processing request ""PUT http://localhost:8081/nexus/content/repositories/m 1h/org.sonatype.flexmojos/poms/flexmojos-parent-4.2-beta-20120131.125452-1-site.xml"": Storing of item m1h:/org.sonatype.flexmojos/poms/flexmojos-parent-4.2-beta-20120131.125452-1-site.xml is forbidden by Maven Repository policy. Because m1h is a SNAPSHOT repository {noformat} Out of curiosity I changed the layout to RELEASE and then nothing was deployable: {noformat} jvm 1 | 2012-01-31 10:56:16 INFO [31.125616-2.pom] - org.sonatype.nexus.proxy.maven.maven1.M1Repository - Storing of item m1h:/org.sonatype.flexmojos/poms/flexmojos-parent-4.2-beta-20120131.125616 -2.pom is forbidden by Maven Repository policy. Because m1h is a RELEASE repository jvm 1 | 2012-01-31 10:56:16 ERROR [31.125616-2.pom] - org.sonatype.nexus.rest.ContentPlexusResource - Got exception during processing request ""PUT http://localhost:8081/nexus/content/repositories/m 1h/org.sonatype.flexmojos/poms/flexmojos-parent-4.2-beta-20120131.125616-2.pom"": Storing of item m1h:/org.sonatype.flexmojos/poms/flexmojos-parent-4.2-beta-20120131.125616-2.pom is forbidden by Maven Repository policy. Because m1h is a RELEASE repository {noformat} So it looks like the problem only occur with SNAPSHOT artifact WITH classifier.",1 +"NEXUS-4807","01/31/2012 16:49:23","Repositories on removal from System does not get unregistered from Plexus container ","Repositories on removal from System does not get unregistered from Plexus container. This is causing ""slow leak"" (a proper leak, but grows slowly), since all the created and dropped repositories are actually kept pinned in memory and in plexus, queued for potential ""lifecycle management"". Think any use cases, where repositories are created and dropped at fast pace (ie. staging).",1 +"NEXUS-4815","02/01/2012 23:58:00","Minor recommended changes to logging configuration UI","See attached image",1 +"NEXUS-6397","02/07/2012 13:20:59","Regression: Error dialog for bad metadata search value is formatted poorly and has bad link","Enter {noformat} !@#$%^&*()_+}{[]|\/?>< {noformat} as the search term for the key and value fields in metadata search. You get an ugly error dialog in 2.0 In 1.9.2.4, the error dialog is less ugly although the error message could be improved to be less technical. The 'home page' link in the error dialog is broken. ( 404) ",1 +"NEXUS-6450","02/08/2012 16:23:12","Staging promotions puts the staging group into target group but does not remove previously put members of staging group from target group","Started off from NEXUS-4845 The reason why we have cycle, is a bug in staging plugin: when a staging repository is closed, apparently it is put into ""target"" group. But, if you promote it -- it is implemented as a group internally in nexus -- the group is put also into ""target"" group. Hence, the initial staging repository is put twice into ""target"" group. Proposed fix: either remove initially put staging repository from ""target"" group before putting in promoted group, or simply do not put the promotion group into ""target"" group, since all the members are already put into ""target"" group.",2 +"NEXUS-4853","02/10/2012 11:50:02","Weekly tasks show next run as today","I created a task scheduled to run WEEKLY on monday, but UI shows next run as being friday. http://screencast.com/t/IVWTU6C7",2 +"NEXUS-4854","02/10/2012 12:43:49","Information Panels vanish from UI when clicking on SNAPSHOT with classifier","http://screencast.com/t/qXs4oRPcrp5v can anyone confirm: selecting nexus-maven-plugin-2.1-SNAPSHOT-site.xml breaks information tab on the right https://repository.sonatype.org/index.html#nexus-search;gav~org.sonatype.plugins~nexus-maven-plugin~~~~kw,versionexpand ",2 +"NEXUS-4862","02/13/2012 18:59:24","Snapshot remover task should not stop if it encounters a zero length file","Zero length files will get created in the storage area if a user runs out of disk space, or file handles. The snapshot remover should not stop processing if it encounters these. As a matter of fact, a strong argument can be made that it should just remove them. {noformat} 2012-02-13 02:18:29 WARN [en-metadata.xml] - org.sonatype.nexus.proxy.attributes.DefaultLSAttributeStorage - While reading attributes of exo-snapshots:/org/exoplatform/cs/exo.cs.web.webservice/2.2.8-SNAPSHOT/maven-metadata.xml we got IOException: java.io.EOFException: No content to map to Object due to end of input at org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2775) ~[jackson-mapper-asl-1.9.4.jar:1.9.4] at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2718) ~[jackson-mapper-asl-1.9.4.jar:1.9.4] at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1916) ~[jackson-mapper-asl-1.9.4.jar:1.9.4] at org.sonatype.nexus.proxy.attributes.JacksonJSONMarshaller.unmarshal(JacksonJSONMarshaller.java:55) ~[nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.attributes.DefaultLSAttributeStorage.doGetAttributes(DefaultLSAttributeStorage.java:242) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.attributes.DefaultLSAttributeStorage.getAttributes(DefaultLSAttributeStorage.java:130) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.attributes.DelegatingAttributeStorage.getAttributes(DelegatingAttributeStorage.java:50) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.attributes.DefaultAttributesHandler.fetchAttributes(DefaultAttributesHandler.java:232) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage.retrieveItemFromFile(DefaultFSLocalRepositoryStorage.java:274) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage.retrieveItem(DefaultFSLocalRepositoryStorage.java:321) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.repository.AbstractRepository.doRetrieveItem(AbstractRepository.java:1308) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem(AbstractProxyRepository.java:1026) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.maven.AbstractMavenRepository.doRetrieveItem(AbstractMavenRepository.java:393) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.maven.maven2.M2Repository.doRetrieveItem(M2Repository.java:417) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:769) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.doRetrieveItems(AbstractGroupRepository.java:567) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.maven.maven2.M2GroupRepository.doRetrieveMetadata(M2GroupRepository.java:211) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.maven.maven2.M2GroupRepository.doRetrieveItem(M2GroupRepository.java:134) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:769) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:584) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:183) [nexus-proxy-2.0-RC2.jar:na] at org.sonatype.nexus.rest.AbstractResourceStoreContentPlexusResource.get(AbstractResourceStoreContentPlexusResource.java:139) [nexus-rest-api-2.0-RC2.jar:na] at org.sonatype.plexus.rest.resource.RestletResource.represent(RestletResource.java:249) [plexus-restlet-bridge-1.18.jar:na] at org.sonatype.nexus.rest.NexusRestletResource.represent(NexusRestletResource.java:44) [nexus-rest-api-2.0-RC2.jar:na] at org.restlet.resource.Resource.getRepresentation(Resource.java:302) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.resource.Resource.handleGet(Resource.java:464) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Finder.handle(Finder.java:353) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Router.handle(Router.java:504) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:39) [plexus-restlet-bridge-1.18.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Application.handle(Application.java:341) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Router.handle(Router.java:504) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Router.handle(Router.java:504) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Component.handle(Component.java:673) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Server.handle(Server.java:331) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) [com.noelios.restlet.ext.servlet-1.1.6-SONATYPE-5348-V4.jar:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [servlet-api-2.5.jar:2.5] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:278) [guice-servlet-3.1.1.jar:na] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:268) [guice-servlet-3.1.1.jar:na] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:180) [guice-servlet-3.1.1.jar:na] at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93) [guice-servlet-3.1.1.jar:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:84) [guice-servlet-3.1.1.jar:na] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.1.jar:na] at org.sonatype.nexus.web.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:88) [nexus-web-utils-2.0-RC2.jar:na] at org.sonatype.nexus.web.NexusGuiceFilter$MultiFilterPipeline.dispatch(NexusGuiceFilter.java:58) [nexus-web-utils-2.0-RC2.jar:na] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:126) [guice-servlet-3.1.1.jar:na] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275) [shiro-web-1.1.0.jar:na] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.1.0.jar:1.1.0] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.1.0.jar:1.1.0] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344) [shiro-core-1.1.0.jar:1.1.0] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) [shiro-web-1.1.0.jar:na] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520) [jetty-security-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.Server.handle(Server.java:345) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:919) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582) [jetty-http-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218) [jetty-http-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586) [jetty-io-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44) [jetty-io-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) [jetty-util-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) [jetty-util-7.5.4.v20111024.jar:7.5.4.v20111024] at java.lang.Thread.run(Thread.java:662) [na:1.6.0_30] {noformat}",1 +"NEXUS-4870","02/16/2012 11:32:01","NonProxyHosts broken for HttpClient 4 remote storage","Set global proxy to something but don't start a proxy. With nexus.codehaus.org as a non-proxy host, httpclient3 remote storage is able to use the repo. httpclient4 breaks. {code} localhost 8888 nexus.codehaus.org {code} {noformat} 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - getTargetsForRequest() :: codehaus-snapshots:/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.target.DefaultTargetRegistry - Resolving targets for repository='codehaus-snapshots' for path='/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom' 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer - Checking isPermitted() with perms: [nexus:target:1:codehaus-snapshots:read, nexus:target:3:codehaus-snapshots:read, nexus:target:any:codehaus-snapshots:read] 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Created ResourceStore request for /com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - getTargetsForRequest() :: codehaus-snapshots:/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.target.DefaultTargetRegistry - Resolving targets for repository='codehaus-snapshots' for path='/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom' 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer - Checking isPermitted() with perms: [nexus:target:3:codehaus-snapshots:read, nexus:target:any:codehaus-snapshots:read, nexus:target:1:codehaus-snapshots:read] 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - codehaus-snapshots.retrieveItem() :: /com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - /com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom :: localOnly=false, remoteOnly=false, ProxyMode=ALLOW 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage - /com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom --> /home/hanzelm/sonatype/nexus-dists/nexus-professional-2.0/./../sonatype-work/nexus/storage/codehaus-snapshots/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Item /com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom not found in local storage. 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage - /com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom --> /home/hanzelm/sonatype/nexus-dists/nexus-professional-2.0/./../sonatype-work/nexus/storage/codehaus-snapshots/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Item /com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom not found in local storage. 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.attributes.DefaultLSAttributeStorage - Loading attributes on UID=codehaus-snapshots:/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom.sha1 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage - /.nexus/attributes/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom.sha1 --> /home/hanzelm/sonatype/nexus-dists/nexus-professional-2.0/./../sonatype-work/nexus/storage/codehaus-snapshots/.nexus/attributes/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom.sha1 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage - /com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom.sha1 --> /home/hanzelm/sonatype/nexus-dists/nexus-professional-2.0/./../sonatype-work/nexus/storage/codehaus-snapshots/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom.sha1 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage - /.nexus/trash/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom.sha1 --> /home/hanzelm/sonatype/nexus-dists/nexus-professional-2.0/./../sonatype-work/nexus/storage/codehaus-snapshots/.nexus/trash/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom.sha1 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.attributes.DefaultLSAttributeStorage - Loading attributes on UID=codehaus-snapshots:/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom.md5 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage - /.nexus/attributes/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom.md5 --> /home/hanzelm/sonatype/nexus-dists/nexus-professional-2.0/./../sonatype-work/nexus/storage/codehaus-snapshots/.nexus/attributes/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom.md5 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage - /com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom.md5 --> /home/hanzelm/sonatype/nexus-dists/nexus-professional-2.0/./../sonatype-work/nexus/storage/codehaus-snapshots/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom.md5 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage - /.nexus/trash/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom.md5 --> /home/hanzelm/sonatype/nexus-dists/nexus-professional-2.0/./../sonatype-work/nexus/storage/codehaus-snapshots/.nexus/trash/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom.md5 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Mirror count:0 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Using mirror URL:http://nexus.codehaus.org/snapshots/, retryCount=3 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage - Invoking HTTP GET method against remote location http://nexus.codehaus.org/snapshots/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - com.sonatype.nexus.licensing.NexusLicenseKey - Invalid feature: LdapRealm found in license key, ignoring. 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.plexus.appevents.SimpleApplicationEventMulticaster - Notifying 26 EventListener about event org.sonatype.nexus.log.internal.LogbackLoggingEvent fired (LogbackLoggingEvent [level=WARN, message=Couldn't validate the Professional License, running in evaluation mode., ]) 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus - Event 'LogbackLoggingEvent [level=WARN, message=Couldn't validate the Professional License, running in evaluation mode., ]' fired 2012-02-16 12:26:08 WARN [01.034926-1.pom] - com.sonatype.nexus.licensing.ProfessionalApplicationStatusSource - Couldn't validate the Professional License, running in evaluation mode. 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Failed mirror URL:http://nexus.codehaus.org/snapshots/ 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Removing parameters in a stack is not supported. java.lang.UnsupportedOperationException: Removing parameters in a stack is not supported. at org.apache.http.impl.client.ClientParamsStack.removeParameter(ClientParamsStack.java:247) ~[httpclient-4.1.2.jar:4.1.2] at org.sonatype.nexus.proxy.storage.remote.httpclient.NonProxyHostsAwareHttpRoutePlanner.determineRoute(NonProxyHostsAwareHttpRoutePlanner.java:73) ~[nexus-proxy-2.0.jar:na] at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:721) ~[httpclient-4.1.2.jar:4.1.2] at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:358) ~[httpclient-4.1.2.jar:4.1.2] at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) ~[httpclient-4.1.2.jar:4.1.2] at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754) ~[httpclient-4.1.2.jar:4.1.2] at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732) ~[httpclient-4.1.2.jar:4.1.2] at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.executeRequest(HttpClientRemoteStorage.java:450) ~[nexus-proxy-2.0.jar:na] at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.retrieveItem(HttpClientRemoteStorage.java:134) ~[nexus-proxy-2.0.jar:na] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveRemoteItem(AbstractProxyRepository.java:1491) [nexus-proxy-2.0.jar:na] at org.sonatype.nexus.proxy.maven.AbstractMavenRepository.doRetrieveRemoteItem(AbstractMavenRepository.java:445) [nexus-proxy-2.0.jar:na] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem0(AbstractProxyRepository.java:1202) [nexus-proxy-2.0.jar:na] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem(AbstractProxyRepository.java:1085) [nexus-proxy-2.0.jar:na] at org.sonatype.nexus.proxy.maven.AbstractMavenRepository.doRetrieveItem(AbstractMavenRepository.java:393) [nexus-proxy-2.0.jar:na] at org.sonatype.nexus.proxy.maven.maven2.M2Repository.doRetrieveItem(M2Repository.java:421) [nexus-proxy-2.0.jar:na] at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:769) [nexus-proxy-2.0.jar:na] at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:584) [nexus-proxy-2.0.jar:na] at org.sonatype.nexus.rest.AbstractResourceStoreContentPlexusResource.get(AbstractResourceStoreContentPlexusResource.java:139) [nexus-rest-api-2.0.jar:na] at org.sonatype.plexus.rest.resource.RestletResource.represent(RestletResource.java:249) [plexus-restlet-bridge-1.18.jar:na] at org.sonatype.nexus.rest.NexusRestletResource.represent(NexusRestletResource.java:44) [nexus-rest-api-2.0.jar:na] at org.restlet.resource.Resource.getRepresentation(Resource.java:302) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.resource.Resource.handleGet(Resource.java:464) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Finder.handle(Finder.java:353) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Router.handle(Router.java:504) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Router.handle(Router.java:504) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:39) [plexus-restlet-bridge-1.18.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Application.handle(Application.java:341) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Router.handle(Router.java:504) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Router.handle(Router.java:504) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.doHandle(Filter.java:150) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Filter.handle(Filter.java:195) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Component.handle(Component.java:673) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at org.restlet.Server.handle(Server.java:331) [org.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) [com.noelios.restlet-1.1.6-SONATYPE-5348-V4.jar:na] at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) [com.noelios.restlet.ext.servlet-1.1.6-SONATYPE-5348-V4.jar:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [servlet-api-2.5.jar:2.5] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:278) [guice-servlet-3.1.1.jar:na] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:268) [guice-servlet-3.1.1.jar:na] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:180) [guice-servlet-3.1.1.jar:na] at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93) [guice-servlet-3.1.1.jar:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:84) [guice-servlet-3.1.1.jar:na] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.1.jar:na] at org.sonatype.nexus.web.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:88) [nexus-web-utils-2.0.jar:na] at org.sonatype.nexus.web.NexusGuiceFilter$MultiFilterPipeline.dispatch(NexusGuiceFilter.java:58) [nexus-web-utils-2.0.jar:na] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:126) [guice-servlet-3.1.1.jar:na] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275) [shiro-web-1.1.0.jar:na] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.1.0.jar:1.1.0] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.1.0.jar:1.1.0] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344) [shiro-core-1.1.0.jar:1.1.0] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272) [shiro-web-1.1.0.jar:na] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) [shiro-web-1.1.0.jar:na] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520) [jetty-security-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409) [jetty-servlet-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.Server.handle(Server.java:345) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:919) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582) [jetty-http-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218) [jetty-http-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51) [jetty-server-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586) [jetty-io-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44) [jetty-io-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) [jetty-util-7.5.4.v20111024.jar:7.5.4.v20111024] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) [jetty-util-7.5.4.v20111024.jar:7.5.4.v20111024] at java.lang.Thread.run(Thread.java:662) [na:1.6.0_30] 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Item /com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom failed content integrity validation. 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.attributes.DefaultLSAttributeStorage - Loading attributes on UID=codehaus-snapshots:/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage - /.nexus/attributes/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom --> /home/hanzelm/sonatype/nexus-dists/nexus-professional-2.0/./../sonatype-work/nexus/storage/codehaus-snapshots/.nexus/attributes/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage - /com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom --> /home/hanzelm/sonatype/nexus-dists/nexus-professional-2.0/./../sonatype-work/nexus/storage/codehaus-snapshots/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage - /.nexus/trash/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom --> /home/hanzelm/sonatype/nexus-dists/nexus-professional-2.0/./../sonatype-work/nexus/storage/codehaus-snapshots/.nexus/trash/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Item /com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom not found in remote storage. 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Item /com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom does not exist in local storage neither in remote storage, throwing ItemNotFoundException. 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - codehaus-snapshots retrieveItem() :: NOT FOUND codehaus-snapshots:/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Adding path /com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom to NFC. 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.plexus.appevents.SimpleApplicationEventMulticaster - Notifying 26 EventListener about event org.sonatype.nexus.log.internal.LogbackLoggingEvent fired (LogbackLoggingEvent [level=ERROR, message=Got exception during processing request ""GET http://localhost:8081/nexus/service/local/repositories/codehaus-snapshots/content/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom"": Item not found on path ""/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom"" in repository ""codehaus-snapshots""!, ]) 2012-02-16 12:26:08 DEBUG [01.034926-1.pom] - org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus - Event 'LogbackLoggingEvent [level=ERROR, message=Got exception during processing request ""GET http://localhost:8081/nexus/service/local/repositories/codehaus-snapshots/content/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom"": Item not found on path ""/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom"" in repository ""codehaus-snapshots""!, ]' fired 2012-02-16 12:26:08 ERROR [01.034926-1.pom] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""GET http://localhost:8081/nexus/service/local/repositories/codehaus-snapshots/content/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom"": Item not found on path ""/com/envoisolutions/sxc/sxc/0.7-SNAPSHOT/sxc-0.7-20080601.034926-1.pom"" in repository ""codehaus-snapshots""! {noformat}",1 +"NEXUS-4872","02/16/2012 17:56:31","Add an example jetty.xml which shows how to configure access logging.","We should add an example jetty.xml into /conf/examples"" which shows how to enable access logging. I've attached the file which needs to be included.",1 +"NEXUS-4875","02/17/2012 10:23:11","Search error message disappears when Repository panel queries 'repository_statuses' resource","Nexus is set up with a proxy on localhost, but the port is closed. When the 'Repositories' panel is open, it queries a REST resource every few seconds (autoblock status or sth?). That causes an ""invalid search query"" message on the search panel to disappear. See attached video.",2 +"NEXUS-4879","02/20/2012 15:00:16","nexus ldap plugin should run tests use JUnit 4 runner instead of JUnit38ClassRunner","I tried adding a unit test to org.sonatype.security.ldap.dao.LdapGroupDAOTest in ldap-common module. Since all the unit test methods are using Junit 4x annotations I assumed these were being used to run the tests. It turns out that this is not forced ( it used to be afaik ) and instead Junit delegates to org.junit.internal.runners.JUnit38ClassRunner instead since in above case depends on AbstractLdapTestEnvironment from https://github.com/sonatype/sisu-ldap-testsuite/tree/plexus-ldap-testsuite-1.4 which extends PlexusTestCase which finally extends Junit 3x TestCase. Surefire decides that Junit 3 runer must be used then. This leads to confusion in writing additional tests and who knows if some test methods are not being run because they are not named properly. {quote} ------------------------------------------------------------------------------- Test set: org.sonatype.security.ldap.dao.LdapGroupDAOTest ------------------------------------------------------------------------------- Tests run: 3, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.803 sec <<< FAILURE! testUsingInvalidGroupMemberFormat(org.sonatype.security.ldap.dao.LdapGroupDAOTest) Time elapsed: 0.768 sec <<< ERROR! org.sonatype.security.ldap.dao.NoLdapUserRolesFoundException: No roles found for user: cstamas at org.sonatype.security.ldap.dao.DefaultLdapGroupDAO.getGroupMembership(DefaultLdapGroupDAO.java:86) at org.sonatype.security.ldap.dao.LdapGroupDAOTest.doTestWithGroupMemberFormat(LdapGroupDAOTest.java:79) at org.sonatype.security.ldap.dao.LdapGroupDAOTest.testUsingInvalidGroupMemberFormat(LdapGroupDAOTest.java:48) 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 junit.framework.TestCase.runTest(TestCase.java:168) at junit.framework.TestCase.runBare(TestCase.java:134) at junit.framework.TestResult$1.protect(TestResult.java:110) at junit.framework.TestResult.runProtected(TestResult.java:128) at junit.framework.TestResult.run(TestResult.java:113) at junit.framework.TestCase.run(TestCase.java:124) at junit.framework.TestSuite.runTest(TestSuite.java:243) at junit.framework.TestSuite.run(TestSuite.java:238) *at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)* at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104) 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 org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164) at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110) {quote}",1 +"NEXUS-4880","02/20/2012 19:37:51","Artifact paths with special characters cannot be found or deleted from UI Browse local storage","# in your local hosted releases repo create the following paths: {{mkdir 'sonatype-work/nexus/storage/releases/>foo'}} {{mkdir 'sonatype-work/nexus/storage/releases/&foo'}} {{mkdir 'sonatype-work/nexus/storage/releases/%foo'}} {{mkdir 'sonatype-work/nexus/storage/releases/\{foo'}} # start Nexus if you haven't already. Login as admin. Browse releases repo local storage. You should see the file paths above. # right click on each one and select delete and click Ok to confirm. Result '&foo' can be deleted, the others cannot. Expected any path shown in UI to be deleted and/or looked up from UI upon request. # Also notice the '(Not Found)' text appended to tree paths when selected in the tree. See attached video for overview. 1.9.2.4 behaved slightly different, finding more paths, but also returning server error for the one with percent sign, where 2.0 simply says Not Found. {noformat} jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.apache.shiro.web.servlet.SimpleCookie - Found string value [2038f376-428e-4f16-91ca-be2b9431b537] from Cookie [JSESSIONID] jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - getTargetsForRequest() :: releases:/>foo/ jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.proxy.target.DefaultTargetRegistry - Resolving targets for repository='releases' for path='/>foo/' jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.proxy.maven.maven2.M2GroupRepository - getTargetsForRequest() :: public:/repositories/releases/>foo/ jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.proxy.target.DefaultTargetRegistry - Resolving targets for repository='public' for path='/repositories/releases/>foo/' jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer - Checking isPermitted() with perms: [nexus:target:any:releases:read, nexus:target:1:releases:read, nexus:target:1:public:read, nexus:target:3:releases:read, nexus:target:any:public:read, nexus:target:3:public:read] jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Created ResourceStore request for /%3Efoo/ jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - getTargetsForRequest() :: releases:/%3Efoo/ jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.proxy.target.DefaultTargetRegistry - Resolving targets for repository='releases' for path='/%3Efoo/' jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.proxy.maven.maven2.M2GroupRepository - getTargetsForRequest() :: public:/%3Efoo/ jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.proxy.target.DefaultTargetRegistry - Resolving targets for repository='public' for path='/%3Efoo/' jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer - Checking isPermitted() with perms: [nexus:target:any:public:read, nexus:target:1:releases:read, nexus:target:3:releases:read, nexus:target:any:releases:read, nexus:target:3:public:read, nexus:target:1:public:read] jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - releases.retrieveItem() :: /%3Efoo/ jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - /%3Efoo/ :: localOnly=true, remoteOnly=false jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage - /%3Efoo/ --> /Users/plynch/dev/sonatype/nexus-all/nexus/nexus/nexus-oss-webapp/target/nexus-oss-webapp-2.1-SNAPSHOT-bundle/nexus-oss-webapp-2.1-SNAPSHOT/./../sonatype-work/nexus/storage/releases/%3Efoo jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - Item /%3Efoo/ not found in local storage. jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - releases retrieveItem() :: NOT FOUND releases:/%3Efoo/ jvm 1 | 2012-02-20 15:44:15 DEBUG [tp2004273875-38] - org.sonatype.plexus.appevents.SimpleApplicationEventMulticaster - Notifying 23 EventListener about event org.sonatype.nexus.log.internal.LogbackLoggingEvent fired (LogbackLoggingEvent [level=ERROR, message=Got exception during processing request ""GET http://localhost:8081/nexus/service/local/repositories/releases/content/%3Efoo/?isLocal&_dc=1329765255175"": Item not found on path ""/%3Efoo/"" in repository ""releases""!, ]) jvm 1 | 2012-02-20 15:44:15 ERROR [tp2004273875-38] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""GET http://localhost:8081/nexus/service/local/repositories/releases/content/%3Efoo/?isLocal&_dc=1329765255175"": Item not found on path ""/%3Efoo/"" in repository ""releases""! jvm 1 | 2012-02-20 15:45:10 DEBUG [tp2004273875-41] - org.apache.shiro.web.servlet.SimpleCookie - Found string value [2038f376-428e-4f16-91ca-be2b9431b537] from Cookie [JSESSIONID] jvm 1 | 2012-02-20 15:45:10 DEBUG [tp2004273875-41] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - getTargetsForRequest() :: releases:/>foo/ jvm 1 | 2012-02-20 15:45:10 DEBUG [tp2004273875-41] - org.sonatype.nexus.proxy.target.DefaultTargetRegistry - Resolving targets for repository='releases' for path='/>foo/' jvm 1 | 2012-02-20 15:45:10 DEBUG [tp2004273875-41] - org.sonatype.nexus.proxy.maven.maven2.M2GroupRepository - getTargetsForRequest() :: public:/repositories/releases/>foo/ jvm 1 | 2012-02-20 15:45:10 DEBUG [tp2004273875-41] - org.sonatype.nexus.proxy.target.DefaultTargetRegistry - Resolving targets for repository='public' for path='/repositories/releases/>foo/' jvm 1 | 2012-02-20 15:45:10 DEBUG [tp2004273875-41] - org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer - Checking isPermitted() with perms: [nexus:target:any:public:delete, nexus:target:any:releases:delete, nexus:target:1:releases:delete, nexus:target:3:releases:delete, nexus:target:3:public:delete, nexus:target:1:public:delete] jvm 1 | 2012-02-20 15:45:10 DEBUG [tp2004273875-41] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Created ResourceStore request for /%3Efoo/ jvm 1 | 2012-02-20 15:45:10 DEBUG [tp2004273875-41] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - getTargetsForRequest() :: releases:/%3Efoo/ jvm 1 | 2012-02-20 15:45:10 DEBUG [tp2004273875-41] - org.sonatype.nexus.proxy.target.DefaultTargetRegistry - Resolving targets for repository='releases' for path='/%3Efoo/' jvm 1 | 2012-02-20 15:45:10 DEBUG [tp2004273875-41] - org.sonatype.nexus.proxy.maven.maven2.M2GroupRepository - getTargetsForRequest() :: public:/%3Efoo/ jvm 1 | 2012-02-20 15:45:10 DEBUG [tp2004273875-41] - org.sonatype.nexus.proxy.target.DefaultTargetRegistry - Resolving targets for repository='public' for path='/%3Efoo/' jvm 1 | 2012-02-20 15:45:10 DEBUG [tp2004273875-41] - org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer - Checking isPermitted() with perms: [nexus:target:1:public:delete, nexus:target:any:releases:delete, nexus:target:3:public:delete, nexus:target:3:releases:delete, nexus:target:1:releases:delete, nexus:target:any:public:delete] jvm 1 | 2012-02-20 15:45:10 DEBUG [tp2004273875-41] - org.sonatype.nexus.proxy.maven.maven2.M2Repository - releases.deleteItem() :: /%3Efoo/ jvm 1 | 2012-02-20 15:45:10 DEBUG [tp2004273875-41] - org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage - /%3Efoo/ --> /Users/plynch/dev/sonatype/nexus-all/nexus/nexus/nexus-oss-webapp/target/nexus-oss-webapp-2.1-SNAPSHOT-bundle/nexus-oss-webapp-2.1-SNAPSHOT/./../sonatype-work/nexus/storage/releases/%3Efoo jvm 1 | 2012-02-20 15:45:10 DEBUG [tp2004273875-41] - org.sonatype.plexus.appevents.SimpleApplicationEventMulticaster - Notifying 23 EventListener about event org.sonatype.nexus.log.internal.LogbackLoggingEvent fired (LogbackLoggingEvent [level=ERROR, message=Got exception during processing request ""DELETE http://localhost:8081/nexus/service/local/repositories/releases/content/%3Efoo/"": Item not found on path ""/%3Efoo/"" in repository ""releases""!, ]) jvm 1 | 2012-02-20 15:45:10 ERROR [tp2004273875-41] - org.sonatype.nexus.rest.repositories.RepositoryContentPlexusResource - Got exception during processing request ""DELETE http://localhost:8081/nexus/service/local/repositories/releases/content/%3Efoo/"": Item not found on path ""/%3Efoo/"" in repository ""releases""! {noformat} ",1 +"NEXUS-4897","02/23/2012 10:52:16","Bookmarking search does not work for some (illegal?) values","Some search queries like '!@#$%^&*()_+}{[]|\/?><' cause a js error in the indexer plugin code for the URL bookmarks, causing bookmarked URLs like http://localhost:8081/nexus/index.html#nexus-search;quick~!@#$%^&*%28%29_+}{[]|\/?%3E%3C to not issue a search request at all. {noformat} malformed URI sequence, error source line: var parts = decodeURIComponent(bookmark).split('~'); {noformat} ",1 +"NEXUS-4905","02/28/2012 18:24:12","Files not ending in ""pom"" or ""jar"" don't show up in ""new cached files"" system feed","Files which don't end in ""pom"" or ""jar"" don't get recorded in system feeds which record file changes.",1 +"NEXUS-4906","02/28/2012 21:41:15","Nexus creates useless hashes for uploaded sig files","Recently used Nexus 2.0 to upload a pom, as well as several artefacts, and also the signature (.asc) files for each. Nexus created hashes for everything, including the .asc (signature) files. Such hashes are useless, and just get in the way when trying to check that all the required files have been uploaded.",1 +"NEXUS-4907","02/28/2012 21:48:09","Staging upload GUI does not allow sufficient room for displaying uploaded artifacts","The ""Artifacts"" box on the ""Staging Upload"" screen is far too small for many use cases, and cannot be resized. It should be wider, and the user should be able to make it longer.",1 +"NEXUS-4910","03/01/2012 07:37:11","Role ""Repo: All Repositories (View)"" has no privileges assigned","The built-in role ""Repo: All Repositories (View)"" should have the privilege ""All Repositories - (view)."" See attached screenshot.",1 +"NEXUS-4918","03/02/2012 15:59:22","Nexus is generating invalid maven-metadata.xml at GA level"," bentmann, http://screencast.com/t/Dp4QzP1Vn bentmann, so, right side metadata.xml is generated by nexus bentmann, I just wanna you confirm to me it is invalid velo: no, this is GA-level metadata which never mentions timestamped snapshots GA-level metadata only uses the generic -SNASPHOT suffix, resolution of that to a timestamp is job of the GAV-level metadata bentmann, thanks, I'm gonna fix this one nexus the presence of latest/release should be fine, although latest is normally only seen in plugin metadata ",1 +"NEXUS-4920","03/05/2012 10:02:10","Nexus should have item retrieval using only the canonical source","Even requests for nexus metadata like ""/.meta/repository-metadata.xml"" are relayed to mirrors if it is not found in the main proxy. Could be fixed by introducing an 'canonicalOnly' flag like 'local/remoteOnly'. {quote} cstamas: That is the real one, reason is this class [NexusRawTransport|https://github.com/sonatype/nexus/blob/master/nexus/nexus-app/src/main/java/org/sonatype/nexus/repositories/metadata/NexusRawTransport.java] that delegates to actual repository. {quote}",3 +"NEXUS-4932","03/06/2012 11:32:32","Update Nexus configuration version","nexus.xml version is 2.0.0, nexus version is 2.1-SNAPSHOT.",1 +"NEXUS-4938","03/07/2012 16:13:23","Extend ReferenceFactory with a new method: createThisReference","Extend ReferenceFactory with a new method: createThisReference(Request) This new method would, similarly to existing createChildReference(Request, child) create a reference (obeying force URL etc) to ""this"".",1 +"NEXUS-4939","03/07/2012 18:16:53","DefaultMetadataUpdater.undeployArtifact() does not remove metadata.","I am writing a plugin that prunes old release candidate builds from a repository. I am using ArifactStoreHelper.deleteArtifact(..., true, true, true), and things are mostly successful. Ultimately this method calls DefaultMetadataUpdater.undeployArtifact(), and I've found a few problems with this and related methods. First, undeployArtifact() seems to use add operations instead of remove operations (maybe C&P from deployArtifact()?) for the GA and G metadata. I initially attempted to make a fix for this by using remove operations, but this led to a few additional issues. For the GA metadata, RemoveVersionOperation.perform() correctly removes the version from the versions collection, but there are some additional cases that aren't handled: 1) the version removed was the latest, 2) the version removed was the only version. I found this issue in 1.9.2.4, but I've also looked at code on the master branch and it seems to be the same. One additional question: is ArifactStoreHelper.deleteArtifact() the right API to use for deleting a GAV? ",5 +"NEXUS-4955","03/12/2012 12:12:19","FSPeer wrongly assumes target.getName is always a good candidate for tmp file creation","FSPeer wrongly assumes target.getName is always a good candidate for tmp file creation. This might not always be true (especially for non-maven layouted repositories, but even Maven layouted ones might contain such files, made by some custom Nexus plugin or external tooling). The code in question is here: https://github.com/sonatype/nexus/blob/982f62b530768e490cf83c916d3aa2692d38ede2/nexus/nexus-proxy/src/main/java/org/sonatype/nexus/proxy/storage/local/fs/DefaultFSPeer.java#L316 ",1 +"NEXUS-4957","03/13/2012 15:29:50","When setting ""Publish URL"" to false, prevent repo Summary tab from displaying 'undefined' distribution management section","If you set the *Publish URL* repository setting to *False* then when you refresh the grid, under the column *Repository Path* it renders a link named *undefined* and url *http:///nexus/undefined* Also, if the type of the repository is *Hosted* then under the *Summary* tab on the section *Distribution Management* it shows *undefined* I attached a screenshot. See the red squares. I traced the REST calls I detected that when if True the response JSON data contains the field ""data.contentResourceURI"" with the correct url, but when it is False this field doesn't exists in the response JSON. So I think the undefined showed comes from a Javascript variable concatenation that doesn't exists. Also this behavior is the opposite of NEXUS-3574 and maybe could be the cause of NEXUS-4064 (which still happens in 2.0.2)",1 +"NEXUS-4976","03/22/2012 09:59:40","Revert: Link to nexus book logging section in the logger UI","Really would be nice to give user some info on this tab to explain how to further configure nexus logging. Even something pointing to an updated section of http://www.sonatype.com/books/nexus-book/reference/confignx-sect-log.html . {quote}More information on how to configure logging can be found [here|http://www.sonatype.com/books/nexus-book/reference/confignx-sect-log.html]. {quote} ",1 +"NEXUS-4996","03/23/2012 16:05:44","Uppercase in email domain rejected as ""invalid""","Testing SMTP setup using my own address, which I habitually enter in mixed case (mwood@IUPUI.Edu) kept giving me an ""invalid address"" dialog. It's certainly not invalid -- an RFC2822 address can contain uppercase letters. Eventually I found SmtpSettingsValidationPlexusResource.EMAIL_PATTERN which contains only a lowercase range in the final character-class brackets. Simplest way to prevent user surprise is probably to change [a-z] to [a-zA-Z]. (Now that many more TLDs are to be created, it may only be a matter of time before it has to be [a-zA-Z0-9].)",1 +"NEXUS-4997","03/23/2012 16:20:36","SMTP config panel uses ""SSL"" and ""TLS"" incorrectly","""SSL enabled"" and ""TLS enabled"" don't do what they say. SSL and TLS are slight variations of basically the same authentication/privacy protocol. What the checkboxes actually enable are: o (""SSL"") Start an SSL/TLS session (probably on alternate SMTP port 465) and then start an SMTP session inside it. This is sometimes referred to as SSMTP. o (""TLS"") Start a plaintext SMTP session (probably on port 25) and then attempt upward negotiation to encrypted by issuing a STARTTLS verb, to start an SSL/TLS session inside the SMTP session. May I suggest labelling these something like ""enable Secure SMTP"" and ""enable STARTTLS negotiation"", and enhancing the tip texts to explain more fully. (Aside: the current tip texts essentially just repeat the field labels and add nothing to one's understanding). Actually, come to think of it, this really should be a single three-state field: plain SMTP, SMTP-in-TLS, STARTTLS. It makes no sense to use SSMTP and STARTTLS independently.",1 +"NEXUS-5031","04/13/2012 16:08:19","Upgrade to latest Jetty 7.x to solve known denial of service security vulnerabilities"," Upgrading to latest Jetty 7 would eliminate these vulnerabilities. ",1 +"NEXUS-5065","05/21/2012 09:28:52","Block access to P2 aggregated repository when capability is disabled","When a P2 aggregator capability is disabled the P2 metadata (.meta/p2) should not be accessible (404).",1 +"NEXUS-5094","06/11/2012 19:04:38","Purging snapshot task should take into account classifier","We deploy multiple classifiers and it would be helpful if the purging task would recognize the artifact's classifier and keep a minimum number of copies of those. ",2 +"NEXUS-5103","06/19/2012 13:13:38","Snapshots are not correctly published in P2","The .meta/p2/artifacts.xml references wrong version of snapshot artifact if there are more than one snapshot per artifact. Basically it references the first found snapshot instead of the latest one. For example, we have an artifact com.test-osgi version 1.0.0-SNAPSHOT and at least 2 snapshots: one from 20120615 and the latest from 20120619. Looking into .meta/p2/plugins/com.test-osgi_1.0.0.SNAPSHOT.jar we see that there is a proper reference to the latest snapshot: LINK to snapshots:/com/1.0.0-SNAPSHOT/test-osgi-1.0.0-20120619.082428-7.jar but .meta/p2/artifacts.xml still includes the oldest available: ",2 +"NEXUS-6379","06/20/2012 13:52:27","Code housekeeping: make sure all NuGet DB problems are logged","Not all operations are logged on failure",1 +"NEXUS-5112","06/25/2012 14:52:44","P2 Proxy repository keeps huge linked hash map in memory","P2 Proxy repository keeps huge linked hash map in memory. With one P2 proxy for Indigo site, it consumes 1/4th of total heap. By using MAT, it seems it contains all the mappings for the artifacts in memory? Does it mean that Nexus P2 proxy repository memory needs raises with _size of the proxied repository_? Seems wrong.",5 +"NEXUS-5173","07/23/2012 09:44:35","Fix CompositeCapability","CompositeCapability is missing some parts as: # Combine status from all member capabilities # Combine description from all member capabilities # Create an AND between all activation conditions # Create an AND between all validity conditions",0 +"NEXUS-5300","10/10/2012 19:33:52","LDAP group search should use paged result sets","When attempting to retrieve the list of users associated with a group Nexus will issue the following query if the LDAP server uses dynamic group mapping: {code} (&(objectClass=inetOrgPerson)(uid=*)) {code} This can return a very large result set. Nexus isn't currently using paged result sets, so this can result in an OOM, or in the server truncating the result set: [DefaultLdapGroupDAO.java|https://github.com/sonatype/nexus/blob/master/nexus/nexus-core-plugins/nexus-ldap-plugin-parent/ldap-common/src/main/java/org/sonatype/security/ldap/dao/DefaultLdapGroupDAO.java#L258] We should be using a paged result set, as shown here: http://docs.oracle.com/javase/7/docs/api/javax/naming/ldap/PagedResultsControl.html ",5 +"NEXUS-5402","11/29/2012 15:56:17","User able to see all contents of host when browsing remote through proxy","Hello Nexus Support Team, We have deployed one Nexus ""host"" with multiple ""proxies"" in other locations. We have identified an issue in which a user, who is Browsing Storage of a repo on the host, is only able to see contents based on that user's defined roles (i.e. the user can only see data underneath their Repository Targets, as expected). However, when the same user goes to a Nexus Proxy and uses the ""Browse Remote Storage"" feature, they are able to see all contents of the host. Is this a bug or by design? Basically, we were expecting the same level of permissions on the host (using Browse Storage) to also apply on the proxy (using Browse Remote Storage) so that users are unable to see contents they shouldn't have access to.",0 +"NEXUS-5403","11/29/2012 16:12:29","LDAP Roles show a realm of ""Nexus"" when they should be LDAP","When adding an LDAP group as a Role, it still shows a realm of ""Nexus"". We think this may be a display issue because security still functions correctly.",0 +"NEXUS-5405","11/30/2012 11:44:46","Group Yum metadata not regenerated when a member proxy repository metadata changes","When yum metadata changes in a proxy repository (new files retrieved), that is included in a yum enabled group, the metadata for group is not regenerated",1 +"NEXUS-5406","11/30/2012 11:49:35","[capabilities] Dynamic source for selections for combos","Dynamic source for selections = be able to define that the source for a combo or (multi)selection lists. The field definition will have an ID or rest path to be called to get the list to be displayed. On server side there should be a rest resource that will respond with a generic list of key/value pairs. Once this is done also the js of capabilities and tasks can be simplified by removing the internal hardcoded repositories combo handling. Advantages are that specific lists can be done for example to only select proxy repositories/groups/... We should consider also including some eventual filter beside of type so we do not have to define multiple sources when they return same kind of data just filtered as for example the repositories groups/proxy example. In case of yum capabilities this will allow selection of ""Repository targets"" to be included in views concept. In case of SP plugin this could be used to allow only proxies for Subscribe capability or select the format of File Sink.",2 +"NEXUS-5408","11/30/2012 11:53:30","Multi selection lists field type","Add new type of property that will allow multi-selection from a list",3 +"NEXUS-5409","11/30/2012 12:14:38","Make easy to implement a capability","Make possible to implement capabilities just by having annotations on class/properties. This will cover most of the use cases. For more complex implementations, one should still be able to use the current way of implementing capabilities",5 +"NEXUS-5484","01/11/2013 18:47:05","P2 Metadata not generating for public group","I set up three M2 repositories for hosting p2 artifacts (snapshot, release, third-party). I added these three repositories to an M2 group. I then configured the P2 Metadata Generator and P2 Repository Aggregation plugins to point to the group. The p2 repository config files (artifacts.xml and content.xml) are present in .meta/p2, but they do not contain any actual information. I've attached the generated output. If I change the Nexus plugins to point to just one of the repositories directly, the metadata for that repository seems to be generated correctly. I also tried using a P2 group, but that produced the same results. Let me know if I can provide more information. Thanks.",1 +"NEXUS-5514","01/22/2013 14:58:38","Nexus does not strip trailing spaces from URL's in proxy repository configuration","Nexus does not strip trailing spaces from remote URL's in proxy repository configuration. Not sure if this is a regression or not.",0 +"NEXUS-5515","01/28/2013 19:44:26","Nexus upgrade does not properly back up changed configuration files.","Start with a sonatype-work directory created with Nexus 2.1.2, and then upgrade it to 2.3.0-04. Two problems emerge. First, nexus.xml.bak contains: {code:XML} 2.2.0 2.3.0-04 {code} This should have been: {code:XML} 2.0.0 2.1.2 {code} Second, logback-events.xml was changed, but logback-events.xml.bak was not created. So a user cannot role back to the previous release without manually editing two files. ",2 +"NEXUS-5557","02/21/2013 18:27:45","Use logging framework for js","console implementations are pretty broken on some browser. UI should use a logging framework like e.g. http://log4javascript.org to have reliable logging in place. Bonus: log4javascript would be able to log remotely to Nexus backend",5 +"NEXUS-5635","03/26/2013 21:49:32","Capabilities icon column showing ""..."" on IE","Looks like extjs is rendering ""..."" for the icon column on IE due to it thinking there is not enough room for the entire content. Should increase the column width slightly to avoid this.",0 +"NEXUS-5674","04/16/2013 12:59:55","Disabled security not happy with shiro annotations","Cannot access shiro protected jersey resources when security is disabled.",3 +"NEXUS-5681","04/18/2013 14:03:58","REST API documentation for /repositories/{repositoryID}/content is missing","There isn't any documentation for the ""/repositories/{repositoryID}/content"" rest endpoint.",1 +"NEXUS-5724","05/17/2013 22:17:22","Add repository target setting to snapshot remover","For organizations that make heavy use of repository partitioning using repository targets it can be desirable to have different snapshot removal policies for these partitions. We should add a repository target to the snapshot removal task's configuration.",2 +"NEXUS-5800","07/18/2013 17:08:51","migrate nexus-yum-plugin to nexus-oss repo","nexus-yum-plugin should be moved to nexus-oss git repo for build simplicity. After a brief discussion with Jason Dillon, it looks like the following need to happen: 1) Make any unit tests no depend on any external cmd line tools. If the tests require repotool, then convert to ITs. 2) Move into nexus-oss, but also change the GA of the plugin to match rest of Nexus oss plugins. Also change the version to match nexus-oss version 3) Update nexus-oss bamboo.zion jobs to make sure that ITs for this plugin can run on the appropriate agents with required cmd line tool ",2 +"NEXUS-5803","07/19/2013 08:14:33","RequireJS Load timeout for modules on ""slow"" ISP","Using Nexus 2.5.1-01, RequireJS timed out due to ""slow"" ISP. {code} The following error has occurred: Message: Uncaught Error: Load timeout for modules: static/js/nexus-capabilities-plugin-all.js?v=2.4 http://requirejs.org/docs/errors.html#timeout URL: http://nexus.bippo.co.id/nexus/js/201306281421/sonatype-lib.js Line Number: 2 nx-all.js?nexusVersion=2.5.1-01:1 log nx-all.js?nexusVersion=2.5.1-01:1 Uncaught Error: Load timeout for modules: static/js/nexus-capabilities-plugin-all.js?v=2.4 http://requirejs.org/docs/errors.html#timeout sonatype-lib.js:2 {code} Our ISP in Indonesia is probably slow by US/EU standards, and bad latency. We're accustomed to waiting minutes for a complex page to load but this depends that the browser/scripts won't give up first. RequireJS should be configured by default to have higher timeout value.",1 +"NEXUS-5825","08/13/2013 16:17:11","Remove Releases by Time","The ""Remove Releases from Repository"" Scheduled Task only lets you choose the minimum number of GA releases to keep. It would be nice to be able to apply an age filter as well, to keep all GA releases newer than some age (eg 6months), even it the number of releases within that age exceeds that number. This is similar to the ""Remove Snapshots from Repository"", and I hope that sharing the code for those options between the tasks would not be a difficult thing to add to Nexus.",2 +"NEXUS-5830","08/16/2013 15:40:15","/service/local/status resource creates http sessions","Starting in Nexus 2.1, authenticated requests to /service/local/status are creating http sessions, even despite a user agent that should not create sessions: {noformat:title=Nexus 2.1} > for i in {1..2}; do curl -u admin:admin123 http://localhost:2100/nexus/service/local/status -I -H ""User-Agent: curl/""; done HTTP/1.1 200 OK Date: Fri, 16 Aug 2013 14:32:23 GMT Set-Cookie: JSESSIONID=64b626d9-5cd4-490b-bdfc-d22221b19191; Path=/nexus; HttpOnly Set-Cookie: rememberMe=deleteMe; Path=/nexus; Max-Age=0; Expires=Thu, 15-Aug-2013 14:32:23 GMT Content-Type: application/xml; charset=UTF-8 Date: Fri, 16 Aug 2013 14:32:23 GMT Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept Server: Noelios-Restlet-Engine/1.1.6-SONATYPE-5348-V4 Content-Length: 10983 HTTP/1.1 200 OK Date: Fri, 16 Aug 2013 14:32:24 GMT Set-Cookie: JSESSIONID=bb59fe42-0019-4583-b1ba-ea81f0948fd7; Path=/nexus; HttpOnly Set-Cookie: rememberMe=deleteMe; Path=/nexus; Max-Age=0; Expires=Thu, 15-Aug-2013 14:32:24 GMT Content-Type: application/xml; charset=UTF-8 Date: Fri, 16 Aug 2013 14:32:24 GMT Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept Server: Noelios-Restlet-Engine/1.1.6-SONATYPE-5348-V4 Content-Length: 10983 {noformat} {noformat:title=Nexus 2.0.6} > for i in {1..2}; do curl -u admin:admin123 http://localhost:8082/service/local/status -I -H ""User-Agent: curl/""; done HTTP/1.1 200 OK Date: Fri, 16 Aug 2013 14:37:59 GMT Set-Cookie: rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Thu, 15-Aug-2013 14:37:59 GMT Content-Type: application/xml; charset=UTF-8 Date: Fri, 16 Aug 2013 14:37:59 GMT Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept Server: Noelios-Restlet-Engine/1.1.6-SONATYPE-5348-V4 Content-Length: 9882 HTTP/1.1 200 OK Date: Fri, 16 Aug 2013 14:37:59 GMT Set-Cookie: rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Thu, 15-Aug-2013 14:37:59 GMT Content-Type: application/xml; charset=UTF-8 Date: Fri, 16 Aug 2013 14:37:59 GMT Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept Server: Noelios-Restlet-Engine/1.1.6-SONATYPE-5348-V4 Content-Length: 9882 {noformat} There is a cookie IT that apparently does not check for this specific condition because it has been passing: testsuite/legacy-testsuite/src/test/java/org/sonatype/nexus/testsuite/security/nexus4257/Nexus4257CookieVerificationIT.java Also I can no longer find anywhere in code where specific user agents strings are checked in order to decide if a session should be created. NexusApplication.java adds some ""noSessionCreation"" filter bits, but it is not entirely obvious how all this works. ",1 +"NEXUS-5832","08/16/2013 21:44:42","File content validation for XML files fails if file only contains whitepace","Something strange is going on with this server, it is full of artifacts like this one that contain nothing but 99 spaces: http://repo-demo.jfrog.org/artifactory/simple/repo1-cache/com/disney/pubsys/gopublish/cms/cms/6.4.3.0002/cms-6.4.3.0002.jar Unfortunately this is proxied by grails: http://repo.grails.org/grails/core/ And if Nexus has a proxy of either of these it starts to store the invalid files as artifacts. We should modify file content validation. If a file is a candidate for validation we should first pass it through String.strip(). If the result is zero length we should reject it. ",1 +"NEXUS-5838","08/21/2013 03:20:45","Repositories -> Browse Remote uses wrong URL on remote and gets HTTP/404","Repositories -> Browse Remote uses wrong URL on remote and gets HTTP/404 I did some debugging with 'tcpdump' network packet checker to see why Remote Browse did not work when it works in Firefox. The prefix that is configured into the remote repo URL is emitted twice: Nexus config: Remote Storage Location => ""http://maven.repository.redhat.com/techpreview/all/"" Actual URL in HTTP request from Nexus 2.6.1-02 is: GET /techpreview/all//techpreview/all/?delimiter=/ HTTP/1.1 The Server then responds with HTTP/404 Not Found.",1 +"NEXUS-5839","08/21/2013 19:31:28","scanning empty central repo to build an index takes unusually long time","Start Nexus, Download central index. At the end of the download, a scan is performed of storage to create local merged index. What I don't understand is why it takes 23 seconds to scan nothing? {noformat} jvm 1 | 2013-08-21 15:14:14 INFO [pxpool-1-thread-1] admin org.sonatype.nexus.index.NexusScanningListener - Scanning of repositoryID=""central"" finished: scanned=0, added=0, updated=0, removed=0, scanningDuration=0:00:23.492 {noformat} ",5 +"NEXUS-5840","08/22/2013 09:16:41","DN values containing "","" (comma) can result in improperly escaped LDAP filters","Simple concatenation filter values in getGroupMembershipFromGroups method create invalid filter when DN contains escaped characters. Attached patch resolve this issue. I can not create tests to demonstrate this issue and working patch because ApacheDS version 1.5.4 used in IT tests also works incorrect with escaped DN values in attributes (see https://issues.apache.org/jira/browse/DIRSERVER-1311).",1 +"NEXUS-5842","08/25/2013 14:45:27","Yum Generate Metadata Task does not expose newly deployed RPMs after first metadata generation","1) Create yum-hosted repo 2) Create yum-proxy of yum-hosted 3) Deploy test-artifact rpm to Hosted 4) Generate Yum Metadata on Hosted using scheduled task 5) Notice sonatype-work/tmp/nexus-yum-plugin/.cache-yum-hosted/.packageFiles/yum-hosted.txt contains the test-artifact rpm ---- 1) Manually Update prefixes.txt/automatic routing file for yum-proxy 2) Download test-artifact rpm from Proxy 3) Generate Yum Metadata on Proxy using scheduled task 4) Notice sonatype-work/tmp/nexus-yum-plugin/.cache-yum-proxy/.packageFiles/yum-proxy.txt contains the test-artifact rpm ---- 1) Deploy test-rpm rpm to Hosted 2) Manually Update prefixes.txt/automatic routing file for yum-proxy 3) Download test-rpm rpm from yum-proxy 4) Generate Yum Metadata for yum-proxy ---- 1) Generate Yum Metadata for yum-hosted ---- Problem: Notice the yum metadata cache for proxy does not include the new test-rpm it only includes the test-artifact rpm Expected: The second run of generate metadata on proxy should expose metadata for newly downloaded artifacts Could the reuse of the {{--pkglist}} option prevent the inclusion of the new artifacts? ",2 +"NEXUS-5854","08/29/2013 18:05:40","Role ID field should not appear editable after save of External Role Mapping","Add External Role Mapping for crowd 1) Create Mapping 2) Before the mapping is saved, Role ID field is greyed out ( non-edtable ) as expected 3) Save Mapping 4) Role ID field is no longer greyed out, yet still is not editable. Expected: Role ID filed to remain greyed out.",1 +"NEXUS-6384","08/30/2013 17:26:30","Allow configuring Crowd HTTP client with specific HTTP connection retry count","Crowd connection may have its own retry characteristics, similar to how proxy repos may have. The Crowd configuration should expose customizing this value, like it does connection timeout. Otherwise it will pick up the global server retry value default of 3.",2 +"NEXUS-5860","09/04/2013 18:35:46","add a log line that prints all the permissions a subject has per request","There are various loggers that will print what permissions are needed to access a particular Nexus resource while a request is being processed. Problem is I can find no logger that prints all the permissions ( roles/privs ) a specific authenticated principal user has. Therefore when debugging security problems in Nexus, you effectively only have one side of equation to go by. This often leads to a bunny trail figuring out what to give a Nexus user so they can access a resource. Please print in one line, all the permissions a requests principal has, unless there is some performance reason this cannot be done. adding it at TRACE level is fine. DEBUG may be better. ",3 +"NEXUS-6366","09/07/2013 15:48:42","Crowd: excessive requests to crowd server when listing crowd users","Configure Crowd Server. Open Users tab of Nexus. Select Realm list drop down on Users tab toolbar. Click Magnifying glass icon without any search criteria. Nexus then sends one request to Crowd server to list *all* crowd users ( max results is http://localhost:8095/crowd/rest/usermanagement/1/search?entity-type=user&start-index=0&max-results=2147483647&expand=user. Once this response comes back, for each user in the response a request is sent to get that user's roles. This could have a large performance impact where the remote crowd server maps lots of users. We should improve performance impact here. Examples: - limit the max number of users returned to the initial query - maybe 500? - do not request each user's roles ( to display in role column ) until the user is selected in the list. ",3 +"NEXUS-5871","09/10/2013 18:51:19","Scheduled task drop down is not sorted","The scheduled task drop down is not sorted, which makes it painful to add new tasks (very difficult to find some of them).",1 +"NEXUS-5873","09/11/2013 09:12:14","RUTAUTH plugin should auto enable Realm when capability enabled","RUTAUTH plugin should auto enable Realm when capability enabled. Still, as capability _has a parameter_ (the header name), I am not clear what should happen the other way: user enables the Realm without configuring capability... (to have it behave in symmetrical way: would not matter do you enable capability or the Realm, it would ""just work""). Maybe have some predefined ""default"" value for HTTP header like ""REMOTE_USER"" and use that to auto-activate Capability?",1 +"NEXUS-5883","09/17/2013 16:25:41","Add order column so that sorting can be restored to default order","If you click on a column header in the staging profiles list it will sort the column. This is fine, but there is no way to get back to the original order. And the original order is important, because that shows you the evaluation order. We should add a ""clear sort"" button to the toolbar that removes any column specific sorting.",0 +"NEXUS-5887","09/18/2013 21:40:51","Licensing page does not mask UI when loading","Should show wait mask always when loading data.",1 +"NEXUS-5888","09/18/2013 21:57:15","Replace move up/down ordering UX with dialog box","The ordering _feature_ of staging profiles, and ldap servers, is fundamentally broken due to the ability to sort columns. This results in very confusing experience when anything other than the default sorting by order field is set. Since this column is not actually shown to users, its also impossible (without reloading the browser page or re-opening the tab) to restore the default sorting order. The dialog box should show a simple list with primary identifier, which is *not sortable* and provide options to move up/down to reorder. Save button, will persist the change, Cancel button (or close dialog) will abort ordering.",3 +"NEXUS-5897","09/19/2013 17:13:56","Add authorization support to capabilities","Capabilities should support authorisation by being able to provide per capability type (at descriptor level) what permissions are required for a capability to be read/created/updated/deleted. * Grid entries will be filtered out based on read permission. * Capability types will be filtered out based on read permission. * Capability types will be filtered out based on create permission when creating a new capability. * Capability details will be disabled based on update permission * Enable/disable a capability will be disabled based on update permission * Delete button/menu will be disabled based on delete permission * Permissions will be enforced in backend ",5 +"NEXUS-5898","09/19/2013 17:23:08","Make connection request retry attempts work for connection reset exceptions","Currently the request retry count in Nexus http settings does not take effect if a ""connection reset"" exception is thrown. I think we should extend the retry count to work for any SocketException received.",1 +"NEXUS-5904","09/20/2013 15:05:15","Remove the mirrors tab from hosted repositories","It no longer makes sense to have a mirrors tab in hosted repositories due to NEXUS-5789. We need to remove this UI also.",2 +"NEXUS-5906","09/20/2013 15:13:18","Add ""releaseAfterClose"" option to the nexus-staging-maven-plugin","It will help our CLM evaluations/deployments a lot if we can add a mode to the nexus-staging-maven-plugin where we immediately release a staging repository if it has been successfully closed. This is because a lot of end users don't want real staging, they just want their deployed artifacts scanned by CLM. This is possible with the current plugin, but the configuration is quite complex. I propose doing this with a ""releaseAfterClose"" flag. The default value for this will be false.",1 +"NEXUS-5932","09/23/2013 19:03:50","expose 'userAgent' on com.sonatype.nexus.staging.client.StagingRepository model","This was requested by a customer and seemingly trivial to implement. Per https://sonatype.zendesk.com/agent/#/tickets/2680 {quote} Hi, we need to filter all staging repositories by userAgent. As com.sonatype.nexus.staging.client.StagingRepository is missing the ""userAgent"" we have to implement a call to Staging REST ""/staging/profile_repositories/{profileIdKey}"" while all other stuff can easily be done with the StagingWorkflowV1Service. We would really appreciate if the class com.sonatype.nexus.staging.client.StagingRepository would get at least the field ""userAgent"" from the additional fields org.sonatype.nexus.restlight.stage.StageRepository had. Can you add it in an upcoming release? {quote} ",1 +"NEXUS-5941","09/26/2013 14:58:14","Add support for tagging to capabilities","The should be possible to tag capabilities at descriptor/capability level with key/value information. The information should be used in capabilities UI to allow grouping based on available tags. Examples: * mark all smart proxy capabilities with a Category ""Smart Proxy"" tag * mark all security related capabilities with a Category ""Security"" tag * mark all capabilities that are specific to a repository with a Repository tag",1 +"NEXUS-5944","09/27/2013 15:50:27","Repository is auto-blocked if ""allow file browsing"" is disabled on remote","If you disable ""allow file browsing"" on a hosted repository, and then create a proxy repository to it in another Nexus instance the repository will be auto-blocked. We should be able to handle this situation, there are well known paths that can be used for testing such as ""/.meta/repository-metadata.xml"". Rich ",2 +"NEXUS-5948","09/30/2013 13:43:56","enable sorting of scheduled tasks columns","Scheduled tasks are sorted by Name as default. There are no other sort options. For a Nexus Pro with many tasks, this is very frustrating, since you often want to look at tasks by Type instead. However, there are no sort options for any of the columns. The number of task entries is quite large now due to the many Healthcheck related tasks there. Look at RSO for an example.",1 +"NEXUS-5949","09/30/2013 14:55:52","Need workaround for cases where trial installer cannot be run.","We've found that the Linux installer cannot always be run successfully. Typically causes of this are lack of X11 libraries (NXCM-4628) or strange http proxy setups. For cases where the installer fails we need a way to provide Nexus Pro + trial configuration without a full installer. This could be the standard pro distribution + a trial configuration bundle for instance. ",3 +"NEXUS-5955","10/01/2013 18:18:50","Automatic routing interferes with yum repo metadata","See here, the automatic routing prefix file contains the yum metadata files: {quote} ## repository-prefixes/2.0 # # Prefix file generated by Sonatype Nexus # Do not edit, changes will be overwritten! /repodata/ebabb5cdcfd90b56ba9c1250958c01442f266ba5d0d4c287a99509de5f85f7b3-filelists.xml.gz /repodata/e5288252c53835b15d1a3cfb1ee79d9fabc7e41a4039518f2c5461b04928bc6f-primary.xml.gz /repodata/6eab60c43f89ac10ee6dce5ef815428c0987afc77f09ce92176bd37ee40559c3-filelists.sqlite.bz2 /repodata/91610135649ef8059312f7d935860d272c759bd0edce7cd9fed2bff0b097fe29-other.xml.gz /repodata/8e2dc4494bb4ac5d799034b42bc4afab80d66ed5a466a15a7bc5f92c2b7c8a30-other.xml.gz /archetype-catalog.xml /repodata/62983c24247ac537efb30fb84e49757ee5692cc8371f278056aa5431eab55370-other.sqlite.bz2 /com/mycompany /repodata/a93b808d31f4cfec7b1ae8463270e0cd6fd30206a16545196c08a810d4890c9e-primary.xml.gz /repodata/2d3d0431515ec9755030d618befb82c9fcee5c10dc6478714d639751eebb3a8b-other.sqlite.bz2 /repodata/eda629e1037985fa72aeb80c0054d5638fcbb0265624091b369a513ffbc00399-filelists.xml.gz /repodata/186e3ab67ffc76df9b164dc119b7a5f3cf265fde19da2531e79a9baa5068879d-filelists.sqlite.bz2 /repodata/54c03951fe73f3e64ba4025674fde4ba6165a2ea97b56c4286a084bf9baf6799-filelists.sqlite.bz2 /repodata/189a204d4d0469e105bba086656705cac04c3d1f2eae3b02aa5f3dc4b3b64a97-other.xml.gz /repodata/9c20ae2b5b43e13b0d385bdb70dacaf486ca75c507a2e440c175fe635ba49cfa-other.sqlite.bz2 /repodata/70d7278e115f2d601cb50f4c9898d8bc0b16e647357d4db1423b80ce712cadf1-primary.sqlite.bz2 /repodata/repomd.xml /repodata/69cc43f574f49aced9f79fb3d0935ba73201de4bde6f8eb01bfd15ee38e7a61a-primary.sqlite.bz2 /repodata/8ced9f96f28df680e23529ebea075e267b4ae0756086a27c85407c93fa53bcf4-primary.xml.gz /repodata/d9abd67d9db26be5e9303a529965b482505feca7e49f739ccb1a1b7794a31669-primary.sqlite.bz2 /repodata/5c7e42b0f096cbfc6fb2dec96db01164ee34fd55d5f198297b96b91aea7d79d3-filelists.xml.gz {quote} These file names (the ones with the embedded checksums) change every time an rpm is deployed into a yum enabled repo. This means that every time an rpm is deployed the files listed in the repomod.xml file will not be available for download until auto-routing is fetched again, regardless of cache timeout settings.",2 +"NEXUS-5956","10/01/2013 18:31:47","Old yum metadata is never cleaned up from yum proxy repository.","Every time an rpm is deployed into a yum repository it causes a brand new set of metadata files to be created (these all have sha1 sums embedded in their file names). If you have a proxy of a yum repository, this means a new version of the metadata is downloaded every time, and after a while these consume significant space. Maybe if repmod.xml is downloaded we should remove the rest of the metadata files from the repodata directory? {quote} $ ls 003bfcf89201c1a2ed591531c66effc3a4e027fe641d219377684a9aeba20169-filelists.xml.gz 08828c0881e310aa4dbee6214d077e8e15ad90b6254a01e1598cb69d3cb5c14f-other.sqlite.bz2 150aa0c323606b53090b01d44e73e58ea776df12a2523a99d82e027b908921b0-other.xml.gz 186e3ab67ffc76df9b164dc119b7a5f3cf265fde19da2531e79a9baa5068879d-filelists.sqlite.bz2 189a204d4d0469e105bba086656705cac04c3d1f2eae3b02aa5f3dc4b3b64a97-other.xml.gz 27cad8418cc46a381004ca03cc8b6cd8b74d74710b3ea034704824e45ceebd5a-filelists.sqlite.bz2 2d3d0431515ec9755030d618befb82c9fcee5c10dc6478714d639751eebb3a8b-other.sqlite.bz2 3df248f0d472c45e332dc77ce63634f1332f0a8e358c60975e312adafe0a3013-filelists.sqlite.bz2 54c03951fe73f3e64ba4025674fde4ba6165a2ea97b56c4286a084bf9baf6799-filelists.sqlite.bz2 5c7e42b0f096cbfc6fb2dec96db01164ee34fd55d5f198297b96b91aea7d79d3-filelists.xml.gz 62983c24247ac537efb30fb84e49757ee5692cc8371f278056aa5431eab55370-other.sqlite.bz2 69cc43f574f49aced9f79fb3d0935ba73201de4bde6f8eb01bfd15ee38e7a61a-primary.sqlite.bz2 6eab60c43f89ac10ee6dce5ef815428c0987afc77f09ce92176bd37ee40559c3-filelists.sqlite.bz2 70d7278e115f2d601cb50f4c9898d8bc0b16e647357d4db1423b80ce712cadf1-primary.sqlite.bz2 7b42db3950a9cd7a36f0bfeca78d84e7bd07d4f12c6a2cf2215570f9b8ec1f2a-other.sqlite.bz2 82d364e082b4d24d74a95e8fa9428cf29753252a205799b87fad8984930afd1f-primary.xml.gz 87ce8c5229877bb63e873f20cdc69a8b1d2a0678de1252702c4aed52c415fd95-other.xml.gz 8ced9f96f28df680e23529ebea075e267b4ae0756086a27c85407c93fa53bcf4-primary.xml.gz 8e2dc4494bb4ac5d799034b42bc4afab80d66ed5a466a15a7bc5f92c2b7c8a30-other.xml.gz 91610135649ef8059312f7d935860d272c759bd0edce7cd9fed2bff0b097fe29-other.xml.gz 9c20ae2b5b43e13b0d385bdb70dacaf486ca75c507a2e440c175fe635ba49cfa-other.sqlite.bz2 a87708732e325a1eeff6c3bddbba184d251c5baafcf571e687bc2238958ffc6a-primary.sqlite.bz2 a93b808d31f4cfec7b1ae8463270e0cd6fd30206a16545196c08a810d4890c9e-primary.xml.gz b5e7ffa0b66e1199ec7580e3bd14f92d9a63cf2eedc979d53880d916f919a0c4-filelists.xml.gz d9abd67d9db26be5e9303a529965b482505feca7e49f739ccb1a1b7794a31669-primary.sqlite.bz2 e3acecf7d4dc3d35b6757593d65d6840d17d2e68bf4aa4e33cf9b235d7ca4d44-primary.xml.gz e5288252c53835b15d1a3cfb1ee79d9fabc7e41a4039518f2c5461b04928bc6f-primary.xml.gz ebabb5cdcfd90b56ba9c1250958c01442f266ba5d0d4c287a99509de5f85f7b3-filelists.xml.gz ebc9769b8b38af08a612a420bf5107b4a50f9d9517c7c218ca6bc7382aa24f7d-primary.sqlite.bz2 eda629e1037985fa72aeb80c0054d5638fcbb0265624091b369a513ffbc00399-filelists.xml.gz {quote}",3 +"NEXUS-5957","10/01/2013 18:44:51","Yum proxy repository metadata is not refetched if request for it comes through a group repo","Create a group repository that contains a hosted repository which has yum metadata generation enabled, and also a proxy repository of a remote which contains yum metadata. Create a merge metadata capability for this group. Requests for metadata to the group for ""repodata/repomd.xml"" never trigger a request to the proxy repository's remote for this file, regardless of cache timeout settings. This means that new artifacts created on the remote will never become available through the group.",2 +"NEXUS-5959","10/01/2013 20:17:19","Detect when smartproxy nodes have out-of-sync clocks","When smartproxy nodes have clocks which are out of sync, all sorts of strange problems can happen. Smartproxy should try and detect if the clocks are out of sync and complain, perhaps even on handshake report failure to connect if clocks are out-of-sync?",3 +"NEXUS-5963","10/02/2013 10:12:34","System property http.proxyHost incompatible regular expressions, server wide","We are running nexus and jenkins on the same tomcat server. When setting the proxy settings in nexus, these settings are saved in proxy system properties. These properties are shared for everything running in tomcat. Nexus requires the non proxy hosts to be configured as regular expressions. This leads to a system property http.nonProxyHosts=.\*\.honda-eu\.com|.\*\.eu\.honda\.com. This is however not a valid value according to http://docs.oracle.com/javase/7/docs/technotes/guides/net/proxies.html (This is a list of patterns separated by '|'. The patterns may start or end with a '*' for wildcards. Any host matching one of these patterns will be reached through a direct connection instead of through a proxy.). In short: if nexus uses it's own proxy configuration standards, it should not modify, nor use the system properties.",1 +"NEXUS-5965","10/02/2013 16:53:58","defacto jetty.xml and examples need cleanup","Worked on a customer issue with our Jetty examples for https redirect. In the process discovered our example is outdated and even the defacto jetty.xml could be simplified a bit. This issue is to note these changes are needed and tie an issue to improvements I will submit a pull request for. ",1 +"NEXUS-5966","10/02/2013 17:40:04","Search indexes are not propagated through procurement repositories","If you create a procurement repository against a repository that has indexes the search indexes of the source are not made available through the procurement repository. This is similar to NXCM-1593, but not quite the same. NXCM-1593 got bogged down in a discussion about applying procurement rules to search indexes. I don't think that is necessary. In fact, one could argue it would be a good thing to be able to see everything that is available in the procurement repository through the indexes. That way end users could ask their nexus administrators to allow access. This *is* similar to NXCM-5515, in that the (partial) workaround is to allow read access to the source repository, which kind of defeats the purpose of procurement. ",3 +"NEXUS-5968","10/02/2013 19:04:48","provide option to not poll for staging operation success using nexus-staging-maven-plugin and ant tasks","In some cases, user may not want to wait to see if nexus-staging operations are successful. Their workflow may be that they will manually check later to see if close,promote,drop,release failed or wait for notification email. This is especially relevant where staging operations take a long time to complete. nexus-staging-maven-plugin and nexus-ant-tasks should expose such an option, the default preserving the current behavior. ",3 +"NEXUS-5969","10/03/2013 21:07:12","improve logging for signature validation failures","Failures validating signatures on ossrh. unfortunately the logging of the failures are not helping diagnose the issue The current logs really don't say much of anything ... just a null message at the end of the line where one would expect something helpful. {quote} jvm 1 | 2013-10-03 03:55:22 DEBUG [pxpool-1-thread-20] xxxxxxxxx com.sonatype.nexus.pgp.DefaultPGPKeyManager - Signature invalid for artifact: ""/io/netty/netty-transport-sctp/4.0.10.Final/netty-transport-sctp-4.0.10.Final.jar"": null {quote} See OSSRH-5675 Improve the logging so we can find out what is wrong. ",2 +"NEXUS-5981","10/07/2013 10:48:17","Remove pgp.mit.edu from list of uses SKS Keyservers","nexus-pgp-plugin uses a list of SKS servers to perform signature validation (used by Staging and Procurement plugins). The default entries are: * http://pool.sks-keyservers.net:11371/ * http://pgp.mit.edu:11371/ While the first itself is a _SKS server pool_, the latter is a ""simple standalone"" one. Moreover, the latter one _was removed from the former's pool_ as it's not maintained. It uses SKS Server version 1.1.1 while the pool is on version 1.1.3, 1.1.4 and above (1.1.4+). With latest changes (NEXUS-5969 for example), the MIT SKS server will just create log pollution, as for example GPG subkey search is added and works only in SKS Server version 1.1.3 and above https://bitbucket.org/skskeyserver/sks-keyserver/src/4069c369eaaa718c6d4f19427f8f164fb9a1e1f0/CHANGELOG?at=default#cl-65 Hence, even if the check will succeed, log will contain spam if MIT server is tried first (and we randomly choose servers from the list AFAIK). Proposed solution: remove MIT from default configuration More about this: The hostname ""pool.sks-keyservers.net"" will be resolved to an actual server based on requester location and other factors. Problem with retries (ie. you got assigned a server that is 0xdeadbeef, unlikely but still possible), is that OS and Java will cache DNS resolution result. A ""real retry"" would be to resolve that hostname again, and retry with new IP. ",1 +"NEXUS-5982","10/07/2013 14:58:43","Staging ""finish"" privilege is confusing","The description of the staging ""finish"" privilege is confusing. It appears that this allows a user to close a staging repository associated with a profile? If so, we should change the description to use the word ""close"".",1 +"NEXUS-5985","10/08/2013 15:00:55","nexus-staging-maven-plugin should record ID of build promotion repository, then use this during release","The nexus-staging-maven-plugin:promote goal currently does not record the build promotion repository. This makes it difficult to automate a stage->close->promote->release workflow. If a staging repository has been promoted we should record the ID, and then use this during a subsequent release goal.",1 +"NEXUS-5988","10/08/2013 19:58:26","No task will clean up snapshots from a procurement repository","There is no way to clean up cached artifacts from a procurement repository. This isn't usually a problem, but in the case of snapshots it definitely is, since these will accumulate over time, and old versions generally aren't needed. It seems to me the """"Evict unused proxied items"" task should work for this use case, since procurement repositories are essentially proxy repositories with rules. The snapshot removal task is definitely not appropriate, it rewrites the metadata files, and the procurement repository should be serving the metadata from the remote. ",2 +"NEXUS-5989","10/08/2013 20:36:16","If ""application server settings (optional)"" is not checked than administration/server page can't be saved.","Uncheck ""application server settings (optional)"", under ""administration/server"" and save. Now make another change on the page and attempt to save. This fails. Why this section is optional anyhow?",1 +"NEXUS-5993","10/09/2013 19:06:40","review File.mkdirs() usage, replace with Files.createDirectory(file.toPath()); to not hide IOExceptions","see summary - we don't want to hide low level IOExceptions anymore in buggy code",3 +"NEXUS-5997","10/10/2013 19:30:39","xml:base URL embedded in yum metadata breaks proxy repositories","In fixing NEXUS-5806 we started to embed the server base URL into the xml:base of the yum primary.xml.gz file. This causes proxy's of yum enabled group repositories to fail, requests to download artifacts from yum are made to the proxy's remote instead of the proxy itself.",3 +"NEXUS-6014","10/17/2013 15:24:57","Nexus should respect X-Forwarded headers by default","To minimize any potential problems fronting nexus with Apache mod_proxy or other reverse proxies using the X-Forwarded-* headers, we should configure Jetty to acknowledge and respect any X-Forwarded headers by default. See Jetty Logic here: http://download.eclipse.org/jetty/stable-8/xref/org/eclipse/jetty/server/AbstractConnector.html#432 See Jetty Docs describing how to front Jetty with reverse proxy SSL: http://wiki.eclipse.org/Jetty/Howto/Configure_mod_proxy Related forum post: http://wiki.eclipse.org/Jetty/Howto/Configure_mod_proxy We should also update the book to mention how to set the X-Forwarded-Proto header in httpd as well. http://books.sonatype.com/nexus-book/reference/install-sect-proxy.html ",1 +"NEXUS-6022","10/19/2013 08:45:25","The undeployArtifact in DefaultMetadataUpdater attempts to add version instead of removing","The method org.sonatype.nexus.proxy.maven.DefaultMetadataUpdater.undeployArtifact(ArtifactStoreRequest) uses an AddVersionOperator where it probably should use a RemoveVersionOperator. At present, it performs the same task as the deployArtifact method.",1 +"NEXUS-6028","10/22/2013 14:27:30","Browse remote tab is visible for Nuget repos but should not be","Browse Remote tab for NuGet proxy repos is visible. This is a regression. Not sure which version it first regressed but original issue to hide it was https://issues.sonatype.org/browse/NXCM-3543",1 +"NEXUS-6030","10/22/2013 17:04:15","Nexus serving insecure content: add.png, delete.png","See attached from loading RSO. This prevents a ""Green"" lock icon when browsing nexus securely using https. ",1 +"NEXUS-6039","10/24/2013 18:05:40","Repository auto-block can trigger a deadlock in smart proxy.","See the attached jstack.out file. Smart proxy is attempting to shut down the jms connection because repository is being auto-blocked. This is causing request threads to pile up on the UID lock.",5 +"NEXUS-6048","10/28/2013 13:53:26","improve Remove Releases from Repository task performance","As said in summary. When first scheduled, we had an oom exception. So we increased the max memory to 1 GiB. After that we had no more oom issues. The task ran for 147h 43m 57s and finished successfully. During this time he cleaned up 8270 releases (as derived from the log entries ""Recreating Maven2 metadata in repository ID='releases' from path=..."". Disk space went from 134GiB down to 75GiB. While it was successfull I think this is incredibly slow. The fix might be similar to the one from issue NEXUS-4640. Fix: A new task option is added to make the task perform better. [Refer to comment|https://issues.sonatype.org/browse/NEXUS-6048?focusedCommentId=301151&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-301151]",3 +"NEXUS-6050","10/28/2013 15:05:27","Automatic routing warnings should include repository ID","We need to include the repository ID in automatic routing log messages. Without this it is very difficult to track the cause down. {quote} 2013-10-28 07:52:58 WARN [ar-4-thread-3] Task-User org.sonatype.nexus.proxy.maven.routing.internal.RemoteContentDiscovererImpl - Remote strategy prefix-file error: RemoteAccessDeniedException {quote}",1 +"NEXUS-6053","10/28/2013 22:52:23","Use of FormDataBodyPart results in failure to discover resource","I'm converting my plug-in to use the new siesta/jersey based framework. One of the resources has a POST method that consumes ""multipart/form-data"". Declaring a parameter like this: {code:none} @FormDataParam(""value"") FormDataBodyPart value {code} results in that the resource fails to be discovered (it doesn't show up in the log under ""org.sonatype.nexus.plugins.siesta.SiestaModule - Resources:"" during boot). If I change the FormDataBodyPart into a String, then the resource shows up and can be called. Using a String results in a value that contains the full raw content of the part so it's not really an option. I'm currently using 2.7.0.m4",2 +"NEXUS-6057","10/30/2013 09:12:29","Yum merge metadata capability cause Stack Overflow when repository is put Out of Service","The test scenario contains a step, that a capability that depend on a repository should get passivated. I tried this with ""Yum Generate Metadata"" using Releases repository. Then Releases put out of service, UI got Server Error 500 response and Nexus log had a stack overflow exception: {quote} jvm 1 | java.lang.StackOverflowError: null jvm 1 | at java.util.regex.Pattern$GroupTail.match(Pattern.java:4615) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Pattern$CharProperty.match(Pattern.java:3694) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Pattern$GroupHead.match(Pattern.java:4556) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Pattern$Branch.match(Pattern.java:4500) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Pattern$Branch.match(Pattern.java:4500) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Pattern$Branch.match(Pattern.java:4500) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Pattern$BranchConn.match(Pattern.java:4466) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Pattern$GroupTail.match(Pattern.java:4615) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Pattern$Curly.match0(Pattern.java:4177) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Pattern$Curly.match(Pattern.java:4132) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Pattern$GroupHead.match(Pattern.java:4556) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Pattern$Branch.match(Pattern.java:4502) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Pattern$Branch.match(Pattern.java:4500) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3715) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Pattern$Start.match(Pattern.java:3408) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Matcher.search(Matcher.java:1199) ~[na:1.7.0_45] jvm 1 | at java.util.regex.Matcher.find(Matcher.java:618) ~[na:1.7.0_45] jvm 1 | at java.util.Formatter.parse(Formatter.java:2517) ~[na:1.7.0_45] jvm 1 | at java.util.Formatter.format(Formatter.java:2469) ~[na:1.7.0_45] jvm 1 | at java.util.Formatter.format(Formatter.java:2423) ~[na:1.7.0_45] jvm 1 | at java.lang.String.format(String.java:2797) ~[na:1.7.0_45] jvm 1 | at org.sonatype.nexus.proxy.utils.RepositoryStringUtils.getHumanizedNameString(RepositoryStringUtils.java:25) ~[nexus-core-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.RepositoryNotAvailableException.(RepositoryNotAvailableException.java:32) ~[nexus-core-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractRepository.checkConditions(AbstractRepository.java:1155) ~[nexus-core-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:590) ~[nexus-core-2.7.0-SNAPSHOT.jar:2.7.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:138) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] jvm 1 | at org.sonatype.nexus.yum.internal.capabilities.MetadataCapabilitySupport.renderStatus(MetadataCapabilitySupport.java:157) ~[na:na] jvm 1 | at org.sonatype.nexus.capability.support.CapabilitySupport.status(CapabilitySupport.java:78) ~[na:na] ... {quote}",1 +"NEXUS-6060","10/30/2013 11:09:26","CLM App Management link of profile editor leads to wrong URL","See attached video. In short, with CLM configured, at Staging profile south panel, the ""CLM Application Management"" link is shown, but it leads to wrong URL (having CLM Brain responding with 404): http://localhost:8070//assets/index.html#/management/application/0001/policies Note the double slash ({{//assets}}). Manually removing one slash leads to page okay. When no application selected, the ""CLM Dashboard"" is correct, leads to proper page on Brain.",1 +"NEXUS-6061","10/30/2013 11:19:41","CLM failure on Staging Close rendering seems broken","Followed the ""Staging Profile Fail on Close Repository"" from CLM testing scenario. Everything when fine, and happened as expected, except the ""Activity"" rendering seems broken. Instead of the rendering shown in video, I got ""raw"" data it seems. While following the x.appScan.url did lead me to report.",1 +"NEXUS-6062","10/30/2013 12:05:28","update httpclient dependencies in nexus-ant-tasks and nexus-maven-plugins","Noticed nexus-ant-tanks still depend on httpclient 4.2.2 - this version has known bugs and should be updated to match what the recent version of nexus-staging-maven-plugin is using at the very least.",1 +"NEXUS-6063","10/30/2013 12:09:38","update Nexus and components to use httpclient 4.2.6 to pick up SSL and NTLM related fixes","Important SSL and NTLM related fixes https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310360&version=12324353 These seems less risky than upgrading to 4.3.x of httpclient at this stage.( 2.7 )",1 +"NEXUS-6071","10/30/2013 19:49:07","Smart Proxy secure connector capability should validate fields","""Port"" should be validated as a positive integer ""Advertise Uri"" should be validated as URI",1 +"NEXUS-6072","10/30/2013 20:07:21","Failure during capability load prevents the rest of capabilities to be loaded","An exception thrown during capability.load will result in the rest of them to not be loaded (capabilities not yet loaded). {code} jvm 1 | Caused by: java.lang.RuntimeException: Could not load configurations jvm 1 | at org.sonatype.nexus.plugins.capabilities.internal.CapabilityRegistryBooter.handle(CapabilityRegistryBooter.java:54) ~[na:na] jvm 1 | ... 54 common frames omitted jvm 1 | Caused by: java.lang.IllegalStateException: State 'INVALID (Failed to load: java.net.URISyntaxException: Illegal character in path at index 5: dasdf asdfas dfgasfg asfg f)' does not permit 'enable' operation jvm 1 | at org.sonatype.nexus.plugins.capabilities.internal.DefaultCapabilityReference$State.enable(DefaultCapabilityReference.java:349) ~[na:na] jvm 1 | at org.sonatype.nexus.plugins.capabilities.internal.DefaultCapabilityReference.enable(DefaultCapabilityReference.java:150) ~[na:na] jvm 1 | at org.sonatype.nexus.plugins.capabilities.internal.DefaultCapabilityRegistry.load(DefaultCapabilityRegistry.java:368) ~[na:na] jvm 1 | at org.sonatype.nexus.plugins.capabilities.internal.CapabilityRegistryBooter.handle(CapabilityRegistryBooter.java:51) ~[na:na] jvm 1 | ... 54 common frames omitted {code}",1 +"NEXUS-6074","10/31/2013 08:40:03","Maven Archetype plugin wrong use of RepositoryEventLocalStatusChanged","Or better, Nx Core fires RepositoryEventLocalStatusChanged event at ""wrong"" moment, when the configuration is not yet applied, and MAC plugin attempts to ""install"" the catalog while repository is still ""Out of Service"" (configuration change is not committed yet), causing log spam such as: {quote} jvm 1 | 2013-10-31 09:33:19 INFO [qtp1111344480-85] admin org.sonatype.nexus.plugins.mac.MacPluginEventInspector - Unable to install the generated archetype catalog, repository releases is out of service {quote} Still, the MAC plugin successfully handles the local status change of the repository, as the subsequent event (fired when configuration change is committed) redoes the work and succeeds.",1 +"NEXUS-6075","10/31/2013 08:52:07","Capability repository local status condition becomes satisfied before repository status is changed","RepositoryLocalStatusCondition watches RepositoryEventLocalStatusChanged, event which is (wrongly) sent before repository configuration is saved, meaning that doing any operation with repository will end up in exceptions like for example: org.sonatype.nexus.proxy.RepositoryNotAvailableException: Repository ""3rd party"" [id=thirdparty] is not available! We should use ",1 +"NEXUS-6082","11/01/2013 20:25:30","ui dialogs display literal
html tags","make a UI request to Nexus that will timeout. the simplest is start nexus, login, shutdown nexus and make another ui request. You see a dialog that states the request timed out ( as expected ) but the message starts with '

' This is just one example. Other dialogs have the same escaping problem.",1 +"NEXUS-6100","11/07/2013 06:02:00","user token authenticate dialog error messages cut off in IE10","happens for both Reset User Token and Access User Token dialogs.",1 +"NEXUS-6107","11/08/2013 16:20:37","nexus-core-client uses Java7 API","Seems nexus-client-core uses Java7 API and classes. Offended classes: org.sonatype.nexus.client.internal.rest.jersey.subsystem.JerseyUtilities org.sonatype.nexus.client.internal.rest.jersey.subsystem.JerseyContent Most notably java.nio.files.Files class and File.toPath method. Seems animal sniffer is not running on these? How got 2.7.0-01 build released otherwise?",1 +"NEXUS-6158","12/03/2013 14:03:51","nuget local repos feeds should support nuspec dependency optional targetFramework attribute","Nuspec defines an optional targetFramework attribute as of version 2.0 http://docs.nuget.org/docs/reference/nuspec-reference#Specifying_Dependencies_in_version_2.0_and_above When uploading a nupkg with a nuspec containing this attribute, Nexus does not expose the framework bits in the feed element, therefore *installing these artifacts from a local nuget repo using visual studio does not work*. In contrast, *downloading a nupkg from a __proxy__ repository feed WILL work because these dependency details include targetFramework details*. ---- Example: 1) Download a nupkg which specifies dependencies with targetFramework https://www.nuget.org/api/v2/package/Microsoft.AspNet.WebApi.Client/5.0.0 Results in a file called microsoft.aspnet.webapi.client.5.0.0.nupkg ---- 1) Boot nexus Pro 2) Add a local repo of Nuget type 3) Using the artifact upload tab, upload the nuget artifact into the local nuget repo. 4) Perform a search against that local nuget repo for the uploaded artifact. The feed entry returned will not contain the targetFramework string inside the dependency element. {noformat} Newtonsoft.Json:4.5.11|Newtonsoft.Json:4.5.11|Microsoft.Net.Http:2.2.13 {noformat} ---- Compare this with a proxy Nuget repo of the official feed: 1) in nexus, add a proxy repo against https://www.nuget.org/api/v2 2) wait for the download nuget index task to complete ( approx 5-6 minutes ) 3) Perform a search against that proxy nuget repo for the same artifact. The feed entry returned will contain the targetFramework string inside the dependency element. {noformat} Newtonsoft.Json:4.5.11:net45|Newtonsoft.Json:4.5.11:portable-wp80+win+net45|Microsoft.Net.Http:2.2.13:portable-wp80+win+net45 {noformat} ---- Attached files contain the detailed differences: {noformat:title=nexus-local.xml feed from local nuget repo} curl -v ""http://localhost:8081/nexus/service/local/nuget/nuget-local/Search%28%29?\$filter=IsLatestVersion&\$skip=0&\$top=30&searchTerm=%27microsoft.aspnet.webapi.client%27&targetFramework=%27net45%27&includePrerelease=false"" -o nexus-local.xml -u admin:admin123 {noformat} {noformat:title=nexus-proxy.xml feed from Nexus proxy repo against nuget.org} curl -v ""http://localhost:8081/nexus/service/local/nuget/nuget.org/Search%28%29?\$filter=IsLatestVersion&\$skip=0&\$top=30&searchTerm=%27microsoft.aspnet.webapi.client%27&targetFramework=%27net45%27&includePrerelease=false"" -o nexus-proxy.xml -u admin:admin123 {noformat} {noformat:title=nuget.org.xml feed direct from nuget.org} curl -v ""https://www.nuget.org/api/v2/Search%28%29?\$filter=IsLatestVersion&\$skip=0&\$top=30&searchTerm=%27microsoft.aspnet.webapi.client%27&targetFramework=%27net45%27&includePrerelease=false"" -o nuget.org.xml {noformat} ",2 +"NEXUS-6164","12/06/2013 21:48:55","Add ability to disable SSL certificate checks to nexus maven plugins","It's not uncommon for end users to run Nexus with self signed SSL certificates. In general they can make Maven play nicely with these by using [system properties|http://maven.apache.org/wagon/wagon-providers/wagon-http/]. It would be nice if the nexus maven plugins had a mechanism to do the same. Having them respect the same system properties referenced above is probably best, since an end user would need to set these anyhow. ",3 +"NEXUS-6169","12/10/2013 20:39:23","Nexus 2.7 now returns 501 instead of 405 for MKCOL, possibly breaking some wagons","Nexus 2.7 is returning 501 for MKCOL now, previous versions returned 405. Update: Seems the issue here is monitoring software looking for 50x responses. This change causes a steady stream of false alarms for some setups. Update 2: This is causing build slowdowns, since the builds are attempting to create each parent directory individually in response to 501 rather than just giving up as it did with the 405 response.",1 +"NEXUS-6177","12/13/2013 11:13:23","The ""?asExpired"" flag does not invalidate NFC","The ""?asExpired"" flag is meant to invalidate local cache and force a ""remote check"" for requested item. Still, it is getting blocked by NFC, if the item is not locally cached, but is in NFC.",1 +"NEXUS-6179","12/13/2013 17:05:48","Requesting a folder which does not exist in a proxy repository's local storage causes a file to be created in storage.","Start a clean 2.7 instance. Add a proxy for https://repository.sonatype.org/content/groups/forge, add it into the public group. Now request: http://localhost:8081/nexus/content/groups/public/com A file named ""com"" will be downloaded to the proxy repository's local cache (attached). This file contains the HTML directory listing of the remote. All attempts to download artifacts that start with ""com"" will now fail. ",3 +"NEXUS-6185","12/17/2013 10:31:16","Timestamped M2 Snapshots should be consumable over M1 shadow","Because of NEXUS-3963 and how shadowed artifact file name is constructed here https://github.com/sonatype/nexus-oss/blob/nexus-2.7.x/components/nexus-core/src/main/java/org/sonatype/nexus/proxy/maven/LayoutConverterShadowRepository.java#L421 the timestamped M2 artifacts are not consumable by Maven1 from M1 shadow repositories. Suggested fix: the code on referenced line(s) should be something like this (pseudo code): {noformat} gav.getArtifactId() + ""-"" + gav.getBaseVersion() + (if classifier exists then + ""-"" + gav.getClassifier()) + ""."" + gav.getExtension() {noformat} Point is in use of {{gav.getBaseVersion()}} that will make shadowed file use {{X-SNAPSHOT}} instead of the timestamped file name. Note that this change will pose a (neglectable) limitation: Maven1 will ""see"" and be able to consume only _latest deployed snapshots_. Also, on removal of any snapshot in master repository, the link is shadow will get removed and _not redirected to another timestamped snapshot_. But these issues will not happen, if ""usual"" configuration is used, where you deploy constantly newer and never snapshots, while having remote old snapshots task running regularly. The link will get ""fixed"" on new subsequent deploy.",1 +"NEXUS-6187","12/18/2013 09:40:12","Inconsistencies in file item checksum handling","Seems like issue NEXUS-5418 introduced even more inconsistencies as known, and it made ""Rebuild Maven Metadata"" defunct (unverified, as reported by user on HC). It caused a known inconsistency, that proxy repositories response on file retrieval of SHA1 (and MD5) files basically ""redirected"" response to main file (the file that asked checksum belongs to) and served the response generated for main item corresponding attribute. This does not happen in hosted or group repositories, but should. The problem reported by user probably stems from same change, as ""Rebuild Maven Metadata"", once you end up with wrong checksums, does not recalculates them, but restores the bad ones from attributes.",5 +"NEXUS-6220","01/13/2014 23:33:49","Repository health check fails when using an HTTP proxy server with NTLM authentication.","I'm not sure when this regression occurred yet, but RHC no longer works with NTLM http proxy servers. I tested with 2.6.4 and 2.7.0, and in both cases it fails with 407 response. When testing with 2.0.6 it works fine (I tested with this version because we originally fixed this in 2.0.1).",2 +"NEXUS-6238","01/30/2014 17:40:08","provide option to set or not set rpm metadata baseurl per metadata updates","Scenario: - yum does not work with authentication + https urls - yum does work in a limited fashion for authentication + http by putting the username + password as part of the url - nexus requires base url to be always set in the metadata - createrepo tool makes setting the baseurl in the metadata optional - would generally like all requests to Nexus to use https, which typically requires one to ""force it"" and enter a nexus base url of https://... , - forcing the nexus base url to https:// puts https:// in the metadata, forcing yum to try and use https:// urls - last item breaks yum request: provide option to set or not set rpm metadata baseurl per each repository metadata modification ",1 +"NEXUS-6241","01/31/2014 16:39:05","Add end-user instructions for support ticket creation in Support Tools UI","The support tools tab does not show how to contact support. The *Nexus Professional* edition should have a link to the ""create ticket"" link in the support site (https://support.sonatype.com/anonymous_requests/new). ",1 +"NEXUS-6246","02/04/2014 22:21:26","Checksum search fails after repair index task is run","Start up nexus, enable index download for central. When the task completes search for: dc6a73fdbd1fa3f0944e8497c6c872fa21dca37e This will work. Now right click on the central proxy, and run ""repair index"". When the task completes repeat the above search. This fails. I'm not sure what is going on here... is this due to a difference between the full and incremental indexes published on central? ",2 +"NEXUS-6251","02/05/2014 16:54:33","If yum metadata generation fails the output of the createrepo/mergerepo command should always be logged","If yum metadata creation fails all we see is this: {quote} 2014-02-03 11:17:08 WARN [ool-1-thread-14] - org.sonatype.nexus.yum.internal.task.GenerateMetadataTask - Scheduled task (GenerateMetadataTask) failed :: Generate Yum metadata of repository 'snapshots' (started 2014-02-03T11:17:08+00:00, runtime 0:00:00.391) java.io.IOException: Yum metadata generation failed at org.sonatype.nexus.yum.internal.task.GenerateMetadataTask.doRun(GenerateMetadataTask.java:177) ~[na:na] at org.sonatype.nexus.yum.internal.task.GenerateMetadataTask.doRun(GenerateMetadataTask.java:72) ~[na:na] at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:157) ~[nexus-core-2.7.1-01.jar:2.7.1-01] at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:419) [nexus-scheduler-2.7.1-01.jar:2.7.1-01] at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:45) [nexus-core-2.7.1-01.jar:2.7.1-01] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.2.jar:1.2.2] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [na:1.7.0_10] at java.util.concurrent.FutureTask.run(FutureTask.java:166) [na:1.7.0_10] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_10] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) [na:1.7.0_10] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [na:1.7.0_10] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [na:1.7.0_10] at java.lang.Thread.run(Thread.java:722) [na:1.7.0_10] Caused by: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1) at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:377) ~[na:na] at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:160) ~[na:na] at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:147) ~[na:na] at org.sonatype.nexus.yum.internal.task.CommandLineExecutor.exec(CommandLineExecutor.java:46) ~[na:na] at org.sonatype.nexus.yum.internal.task.GenerateMetadataTask.doRun(GenerateMetadataTask.java:168) ~[na:na] ... 13 common frames omitted {quote} This makes it pretty much impossible to figure out what happened. We need to record the command output in case of failure.",1 +"NEXUS-6261","02/07/2014 18:16:34","prevent scheduling a new YUM GenerateMetadataTask when one is already blocked","We are concerned that more one YUM GenerateMetadataTask can be blocked while waiting for one to complete that is running already. Given One YUM GenerateMetadataTask (A) against repo (X) is already running and Given One YUM GenerateMetadataTask (B) against repo (X) is already blocked waiting for A to complete Then do not queue another YUM GenerateMetadataTask (C) against repo (X) This is to help avoid depleting the scheduled task queue if many rpms are being added and deleted from the same repo. Such a condition should be noticeable using INFO level logging to help detect when this happens. ",3 +"NEXUS-6294","02/21/2014 18:31:09","timeline can leave index files in deleted state","Similar to NEXUS-6172, the Timeline indexer can apparently also leave index related files in deleted state. Example: {noformat} ./lsof_11.txt:java 25932 nexus 342r REG 199,15000 3850684 3221234 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hl9qt.cfs (deleted) ./lsof_11.txt:java 25932 nexus 430r REG 199,15000 50701986 2891166 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hbols.cfs (deleted) ./lsof_11.txt:java 25932 nexus 450r REG 199,15000 132517668 5638482 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_gsjr4.fdt (deleted) ./lsof_11.txt:java 25932 nexus 472r REG 199,15000 739154000 3074756 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_ge3m8.fdt (deleted) ./lsof_11.txt:java 25932 nexus 480r REG 199,15000 17127563 2371147 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hp6qy.cfs (deleted) ./lsof_11.txt:java 25932 nexus 484r REG 199,15000 17052339 2407675 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hocle.cfs (deleted) ./lsof_11.txt:java 25932 nexus 558r REG 199,15000 1859 4423474 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hpo0y.cfs (deleted) ./lsof_11.txt:java 25932 nexus 569r REG 199,15000 51634538 1769329 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_ge3m8.tis (deleted) ./lsof_11.txt:java 25932 nexus 632r REG 199,15000 121615364 2415669 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_ge3m8.frq (deleted) ./lsof_11.txt:java 25932 nexus 640r REG 199,15000 126339488 4824719 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hfkfp.cfs (deleted) ./lsof_11.txt:java 25932 nexus 666r REG 199,15000 85143748 3487562 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_ge3m8.prx (deleted) ./lsof_11.txt:java 25932 nexus 690r REG 199,15000 172155190 1293568 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_ge3m8.nrm (deleted) ./lsof_11.txt:java 25932 nexus 764r REG 199,15000 19271630 5013798 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hndn1.cfs (deleted) ./lsof_11.txt:java 25932 nexus 776r REG 199,15000 162867124 4943870 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_h5e5k.cfs (deleted) ./lsof_11.txt:java 25932 nexus 841r REG 199,15000 7041607 3295662 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hl3rt.cfs (deleted) ./lsof_11.txt:java 25932 nexus 906r REG 199,15000 2360884 1437876 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hpo0c.cfs (deleted) ./lsof_11.txt:java 25932 nexus 981r REG 199,15000 2359415 5807022 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hpnzi.cfs (deleted) ./lsof_11.txt:java 25932 nexus 1000r REG 199,15000 6859907 5834919 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_gsjr4.tis (deleted) ./lsof_11.txt:java 25932 nexus 1016r REG 199,15000 21663996 4685190 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_gsjr4.frq (deleted) ./lsof_11.txt:java 25932 nexus 1020r REG 199,15000 5710156 4962523 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hfgpt.cfs (deleted) ./lsof_11.txt:java 25932 nexus 1025r REG 199,15000 104422338 6704678 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_gzncj.cfs (deleted) ./lsof_11.txt:java 25932 nexus 1030r REG 199,15000 15690134 5777042 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_gsjr4.prx (deleted) ./lsof_11.txt:java 25932 nexus 1210r REG 199,15000 165177442 3273226 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hl9r3.cfs (deleted) ./lsof_11.txt:java 25932 nexus 1214r REG 199,15000 5450572 5634993 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_gsjr4.fdx (deleted) ./lsof_11.txt:java 25932 nexus 1226r REG 199,15000 2361176 6197676 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hpo0m.cfs (deleted) ./lsof_11.txt:java 25932 nexus 1252r REG 199,15000 36791338 5872613 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_gsjr4.nrm (deleted) ./lsof_11.txt:java 25932 nexus 1274r REG 199,15000 21294812 6354916 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hmgu7.cfs (deleted) ./lsof_11.txt:java 25932 nexus 1447r REG 199,15000 5713761 6298627 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hkyp1.cfs (deleted) ./lsof_11.txt:java 25932 nexus 1555r REG 199,15000 1859 1168980 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hpo0x.cfs (deleted) ./lsof_11.txt:java 25932 nexus 1591r REG 199,15000 25504476 10016573 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_ge3m8.fdx (deleted) ./lsof_11.txt:java 25932 nexus 1594r REG 199,15000 2361635 3296399 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hpo0w.cfs (deleted) ./lsof_11.txt:java 25932 nexus 1612r REG 199,15000 51634538 1769329 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_ge3m8.tis (deleted) ./lsof_11.txt:java 25932 nexus 1623r REG 199,15000 6859907 5834919 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_gsjr4.tis (deleted) ./lsof_11.txt:java 25932 nexus 1630r REG 199,15000 1859 4173410 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hpo0z.cfs (deleted) ./lsof_11.txt:java 25932 nexus 1639r REG 199,15000 1889 4544747 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hpo10.cfs (deleted) ./lsof_11.txt:java 25932 nexus 1643r REG 199,15000 1946 877219 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hpo11.cfs (deleted) ./lsof_11.txt:java 25932 nexus 1646r REG 199,15000 2360277 1419851 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hpnzs.cfs (deleted) ./lsof_11.txt:java 25932 nexus 1655r REG 199,15000 2360547 4035024 /nexus_01/nexus/sonatype-work/nexus/timeline/index/_hpo02.cfs (deleted) {noformat} ",1 +"NEXUS-6303","02/25/2014 14:49:50","poorly named caches","See attached image. The part after ""."" is driven by Shiro - there should always be one authenticatingCache and one authorizationCache for any realm, *if enabled"" - otherwise it should not even be present/visible. The part before ""."" is driven by Nexus impl. Keep it simple: Prefix names like this should be used: ""XML"" ""LDAP"" ""Crowd"" ""kenai"" ""enterprise-ldap"" cache should be deleted as is legacy junk and replaced with ""LDAP.authenticationCache and ""LDAP.autorizationCache"" proper. ""path-cache"" of what? Suggestions for better name here? Like ""Nexus.contentPathCache"" ""shiro-activeSessionCache"" - should probably remove the name shiro here and mention it as ""Nexus.sessionCache"" or similar. ",3 +"NEXUS-6306","02/25/2014 21:13:42","strip out invalid addressees out of staging emails before send attempt","Staging emails can be sent to users identified by roles, specific email addresses, and the ""creator"" of the staging repo. If any one of these collected addresses is invalid syntactically, the entire email sending fails. The message logged: {noformat} jvm 1 | 2014-02-25 16:19:55,424-0400 WARN [pxpool-1-thread-3] admin, com.sonatype.nexus.staging.internal.task.RepositoryCloseTask - Failed to send notifications; ignoring: java.lang.IllegalArgumentException: Invalida e-mail address: ""Administrator User"" {noformat} Some client side validation should be performed on the collected addresses before sending. If there are any addresses left after striping out the bad ones, continue the send attempt to these 'good ones'. Log at WARN all stripped addresses so an admin has a chance to correct this. ",1 +"NEXUS-6307","02/26/2014 20:04:24","Print message in log if high-strength JCE is installed","Not having JCE *may* cause problems with some installation configurations. We should detect if it is installed, and if it is installed, log the fact at INFO. Apparently calling this will work for this purpose: Cipher.getMaxAllowedKeyLength(""AES""); It will return 128 if no JCE is installed, 2147483647 if it is.",1 +"NEXUS-6310","02/27/2014 20:36:30","Upgrade to Tika 1.6","Once it is released, probably around end of April 2014. And then remove the custom mime types fix added in issue NEXUS-6271, like the custom mime XML.",1 +"NEXUS-6316","03/05/2014 08:42:24","Update Shiro dependency to 1.2.3","As Shiro 1.2.3 is out, we should bump Nexus Shiro dependency to it. Nexus currently uses 1.2.2",0.5 +"NEXUS-6332","03/15/2014 01:14:27","Replace Crowd modello configuration with a capability","Acceptance Criteria: On upgrade, latest crowd configuration will be converted to a capability Users will have to first upgrade to 2.8 to get on latest crowd configuration",3 +"NEXUS-6489","03/27/2014 06:48:25","Add support class for capabilities without configuration","There are a bunch of capabilities that do not have any configuration, all of them using similar class as configuration. Create a support class ""WithoutConfiguration"" and reuse it all over the place.",1 +"NEXUS-6500","03/31/2014 22:45:18","Unable to install a license after a non-trial license expires","If a non-trial license expires you cannot install a new license through the UI. {quote} 2016-04-30 16:43:56,265-0500 DEBUG [qtp30070137-72] org.apache.shiro.session.mgt.DefaultSessionManager - Unable to resolve session ID from SessionKey [org.apache.shiro.web.session.mgt.WebSessionKey@411147]. Returning null to indicate a session could not be found. 2016-04-30 16:43:56,265-0500 DEBUG [qtp30070137-72] *UNKNOWN org.sonatype.nexus.restlet1x.internal.RestletServlet - Processing: POST /nexus/service/local/licensing/upload (http://localhost:8081/nexus/service/local/licensing/upload) 2016-04-30 16:43:56,437-0500 INFO [qtp30070137-72] *UNKNOWN /nexus - nexus: [Noelios Restlet Engine] - Attaching application: org.sonatype.nexus.rest.NexusApplication@1da2473 to URI: /nexus/service/local 2016-04-30 16:43:56,546-0500 DEBUG [qtp30070137-72] *UNKNOWN com.sonatype.nexus.licensing.api.LicenseInstallPlexusResource - Error installing license, returning status: Forbidden (403) - Subject is unauthorized to install a license. org.sonatype.plexus.rest.resource.PlexusResourceException: Subject is unauthorized to install a license. at com.sonatype.nexus.licensing.api.LicenseInstallPlexusResource.checkPermission(LicenseInstallPlexusResource.java:297) [nexus-licensing-plugin-2.8.0-01/:na] at com.sonatype.nexus.licensing.api.LicenseInstallPlexusResource.upload(LicenseInstallPlexusResource.java:256) [nexus-licensing-plugin-2.8.0-01/:na] at com.sonatype.nexus.licensing.api.LicenseInstallPlexusResource.upload(LicenseInstallPlexusResource.java:219) [nexus-licensing-plugin-2.8.0-01/:na] at org.sonatype.plexus.rest.resource.RestletResource.upload(RestletResource.java:350) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.sonatype.plexus.rest.resource.RestletResource.acceptRepresentation(RestletResource.java:250) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.sonatype.nexus.rest.NexusRestletResource.acceptRepresentation(NexusRestletResource.java:70) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.resource.Resource.post(Resource.java:688) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.resource.Resource.handlePost(Resource.java:537) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Finder.handle(Finder.java:357) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.handle(Filter.java:195) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Router.handle(Router.java:504) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.handle(Filter.java:195) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:36) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.handle(Filter.java:195) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.handle(Filter.java:195) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.handle(Filter.java:195) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.handle(Filter.java:195) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.handle(Filter.java:195) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Application.handle(Application.java:341) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.handle(Filter.java:195) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Router.handle(Router.java:504) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Filter.handle(Filter.java:195) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Router.handle(Router.java:504) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Component.handle(Component.java:676) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.restlet.Server.handle(Server.java:331) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at org.sonatype.nexus.restlet1x.internal.RestletServlet.service(RestletServlet.java:90) ~[nexus-restlet1x-plugin-2.8.0-01/:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) ~[javax.servlet-3.0.0.v201112011016.jar:na] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:288) ~[guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:278) ~[guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) ~[guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93) ~[guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) ~[guice-servlet-3.1.10.jar:3.1.10] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) ~[shiro-web-1.2.2.jar:1.2.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) ~[guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) ~[guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) ~[nexus-core-2.8.0-01.jar:2.8.0-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) ~[guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) ~[guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) ~[nexus-core-2.8.0-01.jar:2.8.0-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) ~[guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) ~[guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) ~[nexus-core-2.8.0-01.jar:2.8.0-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) ~[guice-servlet-3.1.10.jar:3.1.10] at com.sonatype.nexus.analytics.internal.RestRequestCollector.doFilter(RestRequestCollector.java:82) ~[na:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) ~[guice-servlet-3.1.10.jar:3.1.10] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) ~[shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) ~[shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) ~[shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) ~[shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) ~[shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) ~[shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) ~[shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) ~[shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) ~[shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) ~[shiro-web-1.2.2.jar:1.2.2] at org.sonatype.nexus.web.internal.SecurityFilter.executeChain(SecurityFilter.java:73) ~[nexus-core-2.8.0-01.jar:2.8.0-01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) ~[shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) ~[shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) ~[shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) ~[shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) ~[shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) ~[shiro-web-1.2.2.jar:1.2.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) ~[guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) ~[guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) ~[nexus-core-2.8.0-01.jar:2.8.0-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) ~[guice-servlet-3.1.10.jar:3.1.10] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:135) ~[nexus-licensing-plugin-2.8.0-01/:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) ~[guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) ~[guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) ~[nexus-core-2.8.0-01.jar:2.8.0-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) ~[guice-servlet-3.1.10.jar:3.1.10] at com.yammer.metrics.web.WebappMetricsFilter.doFilter(WebappMetricsFilter.java:76) ~[metrics-web-2.2.0.jar:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) ~[guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.CommonHeadersFilter.doFilter(CommonHeadersFilter.java:67) ~[nexus-core-2.8.0-01.jar:2.8.0-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) ~[guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.ErrorPageFilter.doFilter(ErrorPageFilter.java:71) ~[nexus-core-2.8.0-01.jar:2.8.0-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) ~[guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:70) ~[nexus-core-2.8.0-01.jar:2.8.0-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) ~[guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) ~[guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) ~[nexus-core-2.8.0-01.jar:2.8.0-01] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterPipeline.dispatch(NexusGuiceFilter.java:56) ~[nexus-core-2.8.0-01.jar:2.8.0-01] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:132) ~[guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:129) ~[guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:206) ~[guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:129) ~[guice-servlet-3.1.10.jar:3.1.10] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) ~[jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) ~[jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) ~[jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) ~[jetty-security-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) ~[jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) ~[jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) ~[jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) ~[jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) ~[jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) ~[jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) ~[jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at com.yammer.metrics.jetty.InstrumentedHandler.handle(InstrumentedHandler.java:200) ~[metrics-jetty-2.2.0.jar:na] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) ~[jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) ~[jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.Server.handle(Server.java:370) ~[jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) ~[jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960) ~[jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021) ~[jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865) ~[jetty-http-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) ~[jetty-http-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) ~[jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) ~[jetty-io-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) ~[jetty-io-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) ~[jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) ~[jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at java.lang.Thread.run(Unknown Source) ~[na:1.7.0_25] {quote}",2 +"NEXUS-6501","03/31/2014 22:59:49","inbound request URL syntax validity should be checked and fail fast","Inbound request URLs that contain certain invalid characters may bypass basic syntax checking and cause Nexus to perform more internal work then necessary. This can also cause Nexus to report noisy WARN messages in the logs. Expected: Nexus should perform URL syntax validation as early as possible and fail with simple log messages instead of verbose WARN when a URL is syntactically invalid. The HTTP response should return a 400 status in this case. ",1 +"NEXUS-6505","04/01/2014 19:43:31","Yum metadata generation can block download of repomd.xml file for long periods of time.","The generation of yum metadata can block downloads of the repomd.xml file for a long time. Nexus should not hold the lock on this file for a long period of time. One possible solution to this would be to generate the metadata in a temporary location, and then acquire the lock only to move it into place.",3 +"NEXUS-6510","04/01/2014 20:48:31","ERROR log message from M2Repository - LocalStorageException FileAlreadyExistsException does not include root cause throwable","Nexus logs may contain an ERROR log message similar to the following ( not specific to this particular artifact ): {quote} 2014-04-01 14:36:02 ERROR [qtp608010191-4349] anonymous org.sonatype.nexus.proxy.maven.maven2.M2Repository - Got LocalStorageException in proxy repository ""Atlassian"" [id=atlassian] while caching retrieved artifact ""ResourceStoreRequest\{...\}"" got from URL https://maven.atlassian.com/public/, will attempt next mirror, cause: java.nio.file.FileAlreadyExistsException: /home/nexus/nexus/sonatype-work/nexus/storage/atlassian/com/atlassian/jira/jira-func-tests/4.4.1 {quote} Cause: {quote} java.nio.file.FileAlreadyExistsException: /home/nexus/nexus/sonatype-work/nexus/storage/atlassian/com/atlassian/jira/jira-func-tests/4.4.1 {quote} Expected: This log message should include a stack trace to better understand what led to this problem.",0.5 +"NEXUS-6524","04/09/2014 11:57:52","Remove plexusldaptestsuite","Similar to NEXUS-6511, this one is also an aged plexus component. https://github.com/sonatype/sisu-ldap-testsuite Use case in UTs/ITs: - load a LDIF file - start up a LDAP server - use of ldap/ldaps protocols - using LDAP server from LDAP Realm of Security We might update the existing tooling, or replace it with something like this (is WIP but looks nice), or just roll a very thing wrapper around ApacheDS/OpenDS/whatever https://github.com/trevershick/ldap-test-utils",2 +"NEXUS-6530","04/09/2014 22:39:41","Archive browser doesn't work for NuGet .nupkg packages","The archive browser doesn't work for NuGet packages. Adding an override into the nexus.mimetypes file in WEB-INF/classes fixes this, so it seems to be just a case of a missing default value. We should add ""nupkg: application/zip"" into our default mime types. ",0.5 +"NEXUS-6536","04/13/2014 04:30:43","Replace N and TN security ids with meaningful identifiers","Get rid of confusing security entity identifiers. 13 or T9 is meaningless, use meaningful names instead[",5 +"NEXUS-6537","04/14/2014 16:32:51","File deletion does a copy/delete to trash rather than a move","Not sure why we are doing a copy/delete here: https://github.com/sonatype/nexus-oss/blob/master/components/nexus-core/src/main/java/org/sonatype/nexus/util/file/DirSupport.java#L325 I seem to recall that a file move in Java will do a move if possible, and fall back to copy/delete if it isn't. If this is the case we should consider changing this implementation.",1 +"NEXUS-6560","04/29/2014 15:32:03","uncompressed archives with HTML file as an entry can be rejected by file content validation","Fire up Nexus 2.7.2, and retrieve this URL: http://localhost:8081/nexus/content/groups/public/com/intellij/annotations/7.0.3/annotations-7.0.3.jar This works. Now try the same with Nexus 2.8.0. This will fail, the artifact is rejected by file content validation. I'm not sure why, the magic number is correct, and various zip programs I tried (including jar) unpack it without complaint. {quote} jvm 1 | 2014-04-29 09:15:15,818-0500 INFO [qtp128766849-84] admin org.sonatype.nexus.proxy.maven.maven2.M2Repository - Proxied item central:/com/intellij/annotations/7.0.3/annotations-7.0.3.jar evaluated as INVALID during content validation (validator=filetypevalidator, sourceUrl=https://secure.central.sonatype.com/maven2/com/intellij/annotations/7.0.3/annotations-7.0.3.jar) {quote}",2 +"NEXUS-6562","05/01/2014 16:47:31","Regression: File content validation still enabled for procurement, no way to disable","This was supposed to have been fixed in 2.8: NEXUS-6234 It seems it wasn't, I'm still seeing this issue.",1 +"NEXUS-6564","05/01/2014 19:15:48","OBR virtual repository metadata update fails when triggered by smart proxy download immediately","A virtual OBR repository shadowing a maven release proxy repository is not able to update it's metadata in response to a smart proxy preemptive fetch due to lack of privileges. {quote} 2014-05-01 13:07:19,745-0500 WARN [esh-1-thread-19] *SYSTEM org.sonatype.nexus.obr.shadow.ObrShadowRepository - Could not sync shadow ObrShadowRepository(id=obv) for event RepositoryItemEventCacheUpdate(sender=""abc"" [id=abc], abc:/com/osgiknowhow/sandbox/pig-latin-client/1.0.1/pig-latin-client-1.0.1.jar) org.sonatype.nexus.proxy.StorageException: A storage exception occured! at org.sonatype.nexus.obr.util.ObrUtils.updateObr(ObrUtils.java:323) ~[na:na] at org.sonatype.nexus.obr.shadow.ObrShadowRepository.updateLink(ObrShadowRepository.java:145) ~[na:na] at org.sonatype.nexus.obr.shadow.ObrShadowRepository.createLink(ObrShadowRepository.java:124) ~[na:na] at org.sonatype.nexus.proxy.repository.AbstractShadowRepository.onRepositoryItemEvent(AbstractShadowRepository.java:113) ~[nexus-core-2.8.0-05.jar:2.8.0-05] at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_55] at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_55] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventHandler.handleEvent(EventHandler.java:80) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.dispatch(EventBus.java:329) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.DefaultGuavaEventBus.dispatch(DefaultGuavaEventBus.java:34) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.ReentrantGuavaEventBus.dispatchQueuedEvents(ReentrantGuavaEventBus.java:57) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.post(EventBus.java:281) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus.post(DefaultEventBus.java:78) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doCacheItem(AbstractProxyRepository.java:879) [nexus-core-2.8.0-05.jar:2.8.0-05] at org.sonatype.nexus.proxy.maven.AbstractMavenRepository.doCacheItem(AbstractMavenRepository.java:482) [nexus-core-2.8.0-05.jar:2.8.0-05] at org.sonatype.nexus.proxy.maven.maven2.M2Repository.doCacheItem(M2Repository.java:231) [nexus-core-2.8.0-05.jar:2.8.0-05] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveRemoteItem(AbstractProxyRepository.java:1364) [nexus-core-2.8.0-05.jar:2.8.0-05] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem0(AbstractProxyRepository.java:1103) [nexus-core-2.8.0-05.jar:2.8.0-05] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem(AbstractProxyRepository.java:986) [nexus-core-2.8.0-05.jar:2.8.0-05] at org.sonatype.nexus.proxy.maven.AbstractMavenRepository.doRetrieveArtifactItem(AbstractMavenRepository.java:408) [nexus-core-2.8.0-05.jar:2.8.0-05] at org.sonatype.nexus.proxy.maven.AbstractMavenRepository.doRetrieveItem(AbstractMavenRepository.java:391) [nexus-core-2.8.0-05.jar:2.8.0-05] at org.sonatype.nexus.proxy.maven.maven2.M2Repository.doRetrieveItem(M2Repository.java:395) [nexus-core-2.8.0-05.jar:2.8.0-05] at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:757) [nexus-core-2.8.0-05.jar:2.8.0-05] at com.sonatype.nexus.plugins.smartproxy.event.internal.handler.ItemHandlerSupport.fetchItem(ItemHandlerSupport.java:190) [nexus-smartproxy-plugin-2.8.0-05/:na] at com.sonatype.nexus.plugins.smartproxy.event.internal.handler.ItemHandlerSupport.doFetchItem(ItemHandlerSupport.java:205) [nexus-smartproxy-plugin-2.8.0-05/:na] at com.sonatype.nexus.plugins.smartproxy.event.internal.handler.ItemHandlerSupport.access$000(ItemHandlerSupport.java:48) [nexus-smartproxy-plugin-2.8.0-05/:na] at com.sonatype.nexus.plugins.smartproxy.event.internal.handler.ItemHandlerSupport$PreemptiveFetchItemEvent.perform(ItemHandlerSupport.java:254) [nexus-smartproxy-plugin-2.8.0-05/:na] at com.sonatype.nexus.plugins.smartproxy.event.internal.handler.ItemHandlerSupport$PreemptiveFetchItemEventInspector.inspect(ItemHandlerSupport.java:270) [nexus-smartproxy-plugin-2.8.0-05/:na] at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_55] at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_55] at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) [guava-16.0.1.jar:na] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) [guava-16.0.1.jar:na] at com.google.common.eventbus.AsyncEventBus.access$001(AsyncEventBus.java:34) [guava-16.0.1.jar:na] at com.google.common.eventbus.AsyncEventBus$1.run(AsyncEventBus.java:117) [guava-16.0.1.jar:na] at org.sonatype.nexus.threads.MDCAwareRunnable.run(MDCAwareRunnable.java:41) [nexus-core-2.8.0-05.jar:2.8.0-05] at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [shiro-core-1.2.2.jar:1.2.2] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_55] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_55] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_55] Caused by: org.sonatype.nexus.proxy.StorageException: A storage exception occured! at org.sonatype.nexus.obr.util.ObrUtils.retrieveObrItem(ObrUtils.java:178) ~[na:na] at org.sonatype.nexus.obr.util.ObrUtils.updateObr(ObrUtils.java:301) ~[na:na] ... 40 common frames omitted Caused by: org.sonatype.nexus.proxy.AccessDeniedException: Access denied on repository ID='obv', path='/.meta/obr.xml', action='read'! at org.sonatype.nexus.proxy.access.DefaultAccessManager.decide(DefaultAccessManager.java:48) ~[nexus-core-2.8.0-05.jar:2.8.0-05] at org.sonatype.nexus.proxy.repository.AbstractRepository.checkConditions(AbstractRepository.java:1174) [nexus-core-2.8.0-05.jar:2.8.0-05] at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:587) [nexus-core-2.8.0-05.jar:2.8.0-05] at org.sonatype.nexus.obr.util.ObrUtils.retrieveObrItem(ObrUtils.java:166) ~[na:na] ... 41 common frames omitted {quote}",3 +"NEXUS-6569","05/05/2014 22:51:35","Add X-Frame-Options header to avoid clickjacking","https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options Unsure if this needs to be just on the index.html or on more content responses too?",1 +"NEXUS-6570","05/06/2014 19:31:54","Smart Proxy download immediately option for checksum updates sends duplicate download requests for main artifact","Set up a two nexus instances, one proxying the other with smart proxy + preemptive fetch. Artifacts deployed to the remote are downloaded 3 times. Retrieval: {quote} 2014-05-06 13:23:41 DEBUG [esh-1-thread-5] *SYSTEM remote.storage.outbound - [abc] GET http://192.168.1.155:8081/nexus/content/repositories/releases/com/foo/project/1.0/project-1.0.jar - 30.51 ms 2014-05-06 13:23:41 DEBUG [esh-1-thread-6] *SYSTEM remote.storage.outbound - [abc] GET http://192.168.1.155:8081/nexus/content/repositories/releases/com/foo/project/1.0/project-1.0.jar - 38.24 ms 2014-05-06 13:23:42 DEBUG [esh-1-thread-7] *SYSTEM remote.storage.outbound - [abc] GET http://192.168.1.155:8081/nexus/content/repositories/releases/com/foo/project/1.0/project-1.0.jar - 39.46 ms {quote} Storage: {quote} 2014-05-06 13:23:41 DEBUG [esh-1-thread-5] *SYSTEM org.sonatype.nexus.proxy.storage.local.fs.DefaultFSPeer - Storing file to /Users/rseddon/Nexii/nexus-272/foo/sonatype-work/nexus/storage/abc/com/foo/project/1.0/project-1.0.jar
2014-05-06 13:23:41 DEBUG [esh-1-thread-6] *SYSTEM org.sonatype.nexus.proxy.storage.local.fs.DefaultFSPeer - Storing file to /Users/rseddon/Nexii/nexus-272/foo/sonatype-work/nexus/storage/abc/com/foo/project/1.0/project-1.0.jar
2014-05-06 13:23:42 DEBUG [esh-1-thread-7] *SYSTEM org.sonatype.nexus.proxy.storage.local.fs.DefaultFSPeer - Storing file to /Users/rseddon/Nexii/nexus-272/foo/sonatype-work/nexus/storage/abc/com/foo/project/1.0/project-1.0.jar {quote}",2 +"NEXUS-6582","05/14/2014 14:22:20","Yum Generate Metadata does not detect new rpms added on filesystem","Some of our legacy build processes require uploading RPMs directly to the file system. The Yum Generate Metadata task is unable to pick up these new RPMs. Once a Yum Generate Metadata task has completed it produces a rpm list file. After this any RPMs added directly to the filesystem will not get picked up as the Generate Metadata task will reuse the existing rpm list file. I can work around this by manually updating the xml config to add the property 'forceFullScan' with a value of 'True' This will force a Full Scan and will not reuse the old rpm list file. It would be useful to have this option available in the Yum Generate Metadata configuration screen.",0.5 +"NEXUS-6583","05/14/2014 14:25:37","Yum Generate Metadata only allows a single RPM per Directory","Some of our legacy build processes require uploading RPMs directly to the file system. It currently adds more than one RPM to a directory but the Yum Generate Metadata task only allows a single RPM per directory. I can work around this by manually updating the xml config to change the property 'singleRpmPerDirectory' with a value of 'False' This will allow multiple RPMs per directory. It would be useful to have this option available in the Yum Generate Metadata configuration screen.",0.5 +"NEXUS-6585","05/14/2014 18:03:03","Bring back boot report of REST endpoints and components","This was removed from siesta 2.x upgrade, but it was a nice feature we should bring it back.",2 +"NEXUS-6617","05/29/2014 15:02:51","Support Bundle can include unprotected HTTP proxy server password","When Nexus is configured with an HTTP proxy server that has username and password, then the system properties `http.proxyPassword` and `https.proxyPassword` get set to the plain text proxy server password. The sysinfo report included in the support bundle can include these plain text system property values. Suggest these values be replaced with some known text instead to protect the password from being transmitted in the support bundle. ",0.5 +"NEXUS-6619","05/30/2014 22:42:27","Include staging database details into support-zip","With the move to nosql db for staging, we have lost the ability to include the staging.xml in support-zip. Example of same thing done with Capabilities: https://github.com/sonatype/nexus-oss/blob/master/plugins/capabilities/nexus-capabilities-plugin/src/main/java/org/sonatype/nexus/plugins/capabilities/internal/SupportBundleCustomizerImpl.java",1 +"NEXUS-6621","06/03/2014 14:50:38","include request.log in support bundle","request.log should be included in support bundles from Nexus.",0.5 +"NEXUS-6626","06/06/2014 10:44:04","upgrade to HTTP client 4.3.4","See RelNotes https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310360&version=12326286",0.5 +"NEXUS-6634","06/10/2014 20:04:31","Request timeout in Crowd configuration should be in seconds","The request timeout in the Crowd configuration screen is in milliseconds. I don't see a good use case for this level of granularity, and other timeouts in Nexus are in seconds. We should make this one use seconds also.",1 +"NEXUS-6640","06/10/2014 22:16:17","CLM application treatment is confusing","CLM application drop down when editing a staging profile has some confusing items. - it asks to choose ""(none)"" when it is not even an option if CLM is not configured. - it asks to ""select an application"" when one can't be selected since CLM is not configured, OR the license prevents display of an app OR CLM user does not have permissions to the app. ",1 +"NEXUS-6646","06/12/2014 13:49:01","Crowd plugin that is not configured logs IllegalStateException when viewing security roles","If you log in as admin, and go this screen below: http://localhost:8081/nexus/#admin/security/roles Nexus log will get multiple lines of Crowd Errors, like these: {noformat} jvm 1 | 2014-06-12 14:47:12,329+0200 ERROR [pool-5-thread-5] admin com.sonatype.nexus.crowd.internal.CrowdAuthorizationManager - Unable to list roles due to java.lang.IllegalStateException/Crowd not configured jvm 1 | 2014-06-12 14:47:12,329+0200 ERROR [pool-5-thread-3] admin com.sonatype.nexus.crowd.internal.CrowdAuthorizationManager - Unable to list roles due to java.lang.IllegalStateException/Crowd not configured jvm 1 | 2014-06-12 14:47:12,329+0200 ERROR [pool-5-thread-11] admin com.sonatype.nexus.crowd.internal.CrowdAuthorizationManager - Unable to list roles due to java.lang.IllegalStateException/Crowd not configured jvm 1 | 2014-06-12 14:47:12,330+0200 ERROR [pool-5-thread-10] admin com.sonatype.nexus.crowd.internal.CrowdAuthorizationManager - Unable to list roles due to java.lang.IllegalStateException/Crowd not configured jvm 1 | 2014-06-12 14:47:12,335+0200 ERROR [pool-5-thread-15] admin com.sonatype.nexus.crowd.internal.CrowdAuthorizationManager - Unable to list roles due to java.lang.IllegalStateException/Crowd not configured {noformat} Note: I just started NX fresh, did not configure _anything_ (so not even touched Crowd), and just started ""clicking around"" on UI",1 +"NEXUS-6650","06/13/2014 16:12:01","Nuget: return 403 with reason instead of 404 when redirection fails through a proxy server","Given an org configures an http proxy server to access certain hosts only And Nexus is configured with this http proxy server And GET requests to a nuget proxy repository hosted in Nexus have to follow a redirect to a different host than the host they proxy in order to download an artifact When the artifact is downloaded through Nexus and the http proxy server responds with 403 because access to that host is not allowed Then Nexus should respond to the original request with 403 And the response should include the possible reason of the 403 ( source proxy server was used, the redirected to host used and that the routing through it failed with 403) Nexus currently responds with 404 and no reason to the NuGet client. This leads a Nexus admin to turn on Nexus DEBUG logging to see redirection failure instead of client user knowing they need to configure the Nexus HTTP proxy server to allow certain hosts. PULL REQUESTS: https://github.com/sonatype/nexus-oss/pull/601 (2.9.x) https://github.com/sonatype/nexus-oss/pull/606 (master)",1 +"NEXUS-6651","06/16/2014 18:51:37","allow direct request for NuGet artifact through proxy repository if artifact is not already cached in the local feed","Request this URL through a NuGet proxy repository of https://www.nuget.org/api/v2: http://localhost:8081/nexus/service/local/nuget/nuget-proxy/Extended.Wpf.Toolkit/1.8.0 The outbound request made is this: https://www.nuget.org/api/v2/Packages(Id='Extended.Wpf.Toolkit',Version='1.8.0') A 200 response is received with XML describing the artifact, but then no request is made for this: https://www.nuget.org/api/v2/package/Extended.Wpf.Toolkit/1.8.0 If you then enable ""fetch all versions"" in the ""download nuget feed"" and make the original request again it will work. I'm not sure why this is necessary since the path is the same, and Nexus knows that the artifact exists due to the first request's return value. ",1 +"NEXUS-6652","06/18/2014 15:23:19","LDAP OSS to Pro upgrade bug, multiple configuration fields are not migrated","Discovered while adapting OSS ITs to now merged Pro LDAP (issue is NEXUS-6591). On upgrade of OSS config to Pro config, the flag introduced for NXCM-370 is lost (""userBaseDn"" is optional, when subtree search is used) and some others too. This should be fixed in 2.9. In master, the work/changes done as part of NEXUS-6591 fixes the problem. OSS ITs that now run against Pro LDAP plugin caught this.",0.5 +"NEXUS-6658","06/19/2014 16:56:03","Add a mode to staging which allows explicit profile selection, and also enforces repository targets","Currently explicit staging profile selection bypasses any repository target set in a staging profile. This is OK for some use cases, but for others it gives end users the ability to deploy artifacts with group ID's that they should not have access to. Disabling explicit profile selection as a workaround isn't always an option, because some nexus-staging-maven-plugin goals require it. An example of this is ""deploy-staged-repository"". We should consider adding a mode to staging that allows explicit staging profile selection, and yet still enforces the staging profile's repository target. ",3 +"NEXUS-6664","06/23/2014 16:14:43","upgrade from previously upgraded 2.8 OSS to Pro ldap configuration can fail subsequent upgrades","On LDAP configuration for post 2.8 versions of Nexus.",1 +"NEXUS-6666","06/23/2014 18:16:31","Download indexes task should not process out of service repositories","If a repository is out of service it is still processed by the download indexes scheduled task. It should not be. Interestingly, update indexes task does not have this problem. ",1 +"NEXUS-6668","06/26/2014 14:16:59","include all referenced jetty configuration files in support zip","we currently include jetty.xml in support zip. Nexus 2.8.x allows more than one wrapper.app.parameter and therefore more than one jetty config file. Suggest we either include each jetty file now, or one effective jetty.xml if that is easier.",1 +"NEXUS-7330","06/26/2014 20:03:54","Officially support Java 8 as runtime for Nexus","We are currently unofficially supporting Java 8 - we would like to officially support it. The only way to do that is run all Nexus tests using CI Java 8 on release branches. This task is about setting this up permanently. In addition any further work required to officially support Java 8 should be done.",1 +"NEXUS-6670","06/26/2014 22:47:45","Profile ID is showing up in staging role names","The staging profile ID is showing up in generated staging roles. They should be showing the profile name. ",1 +"NEXUS-6673","06/30/2014 18:17:07","Staging repository listing log spam when repository is not found","OSSRH logs are filled with junk like this: {quote} 2014-06-30 12:12:27 WARN [qtp1936214235-377168] knutster com.sonatype.nexus.staging.rest.repository.RepositoryListResource - Failed to convert repository item: id = 'comlicel-1002'; ignoring org.sonatype.nexus.proxy.NoSuchRepositoryException: Repository with ID=""comlicel-1002"" not found at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getRepository(DefaultRepositoryRegistry.java:124) ~[nexus-core-2.8.1-01.jar:2.8.1-01] at org.sonatype.nexus.rest.ProtectedRepositoryRegistry.getRepository(ProtectedRepositoryRegistry.java:71) ~[nexus-restlet1x-plugin-2.8.1-01/:na] at com.sonatype.nexus.staging.rest.repository.RepositoryResourceSupport.convert(RepositoryResourceSupport.java:49) ~[nexus-staging-plugin-2.8.1-01/:na] at com.sonatype.nexus.staging.rest.repository.RepositoryListResource$1.doApply(RepositoryListResource.java:94) ~[nexus-staging-plugin-2.8.1-01/:na] at com.sonatype.nexus.staging.internal.persist.ConfigurationFunctionSupport.apply(ConfigurationFunctionSupport.java:48) [nexus-staging-plugin-2.8.1-01/:na] at com.sonatype.nexus.staging.internal.persist.DefaultStagingConfiguration.browsex(DefaultStagingConfiguration.java:603) [nexus-staging-plugin-2.8.1-01/:na] at com.sonatype.nexus.staging.internal.persist.DefaultStagingConfiguration.browse(DefaultStagingConfiguration.java:588) [nexus-staging-plugin-2.8.1-01/:na] at com.sonatype.nexus.staging.rest.repository.RepositoryListResource.get(RepositoryListResource.java:79) [nexus-staging-plugin-2.8.1-01/:na] at com.sonatype.nexus.staging.rest.repository.RepositoryListResource.get(RepositoryListResource.java:69) [nexus-staging-plugin-2.8.1-01/:na] at org.sonatype.plexus.rest.resource.RestletResource.represent(RestletResource.java:233) [nexus-restlet1x-plugin-2.8.1-01/:na] at org.sonatype.nexus.rest.NexusRestletResource.represent(NexusRestletResource.java:39) [nexus-restlet1x-plugin-2.8.1-01/:na] {quote} ",0.5 +"NEXUS-6680","07/07/2014 19:12:49","Add ""full rebuild"" option to generate yum scheduled task","The generate yum metadata task caches information in two places: # A checksum cache in $TMPDIR/nexus-yum-repository-plugin/.cache-releases/releases # A list of rpm's to be processed in $TMPDIR/tmp/nexus-yum-repository-plugin/.cache-releases/.packageFiles/.txt If either of these has invalid data it can prevent the metadata from regenerating properly. We should provide an option to the generate yum metadata task (""clear caches"") which clears these before running createrepo. This would give end users a way to recover from situations where a previous run had malfunctioned. ",1 +"NEXUS-6687","07/10/2014 19:53:19","Analytics EventData.timestamp field not really timestamp","A field ""timestamp"" is set in analytics data. This is set using System.nanoTIme(), which is useless as a timestamp field. We need to see the year/month/day/hour/minute/second that something happened. Can we please change this from System.nanoTime() to System.currentTimeInMillis() ? ",1 +"NEXUS-6692","07/12/2014 11:13:50","add more robust proxy repository URL validation","The core does validate the remoteUrl of a proxy repository, but the current validation is too lax. HttpClient but also some other components uses URIs, but validation is done using URL. This causes various problems, like endless loops in remoteState discovery for example (as HC4 IAExes on bad URL). If NX validation fixed, it will not allow for a proxy to have a ""bad"" remote URL, either by refusing to boot, or on proxy addition/modification to refuse to save the configuration.",1 +"NEXUS-6702","07/17/2014 17:05:15","Yum metadata for proxy repositories should refer to the URL of the source Nexus instance","As a result of the fix for NEXUS-5829 yum proxy repositories are no longer directly usable, the proxied metadata contains the URL's of the originating repository, so yum request to download artifacts end up bypassing Nexus, and go to the originating repository. This is inconsistent with all other types of proxy repositories in Nexus. The URL's in the proxied metadata should be rewritten to use the URL of the proxy repository.",5 +"NEXUS-6745","08/07/2014 16:34:10","icon column is missing text in column selection dropdown","icon column is missing text in drop down, so I don't know what the checkbox does",1 +"NEXUS-6746","08/07/2014 16:37:06","RHC analyze popup goes away too quickly","I can't finish reading it before it goes away automatically. And sometimes mousing over it is hard.",0.5 +"NEXUS-6747","08/07/2014 16:42:58","repository path does not display ( sometimes? )","Repository path column values are missing for me. I was running Nexus on port 3000 if that matters. Tried Chrome and Firefox. Using Nexus OSS nexus-3.0.0-20140806.235753-371-bundle ",1 +"NEXUS-6749","08/07/2014 17:15:47","LDAP configuration dialog sized incorrectly in IE10","The fields in the LDAP configuration dialog extend past the edge of the dialog in IE10. ",1 +"NEXUS-6883","08/07/2014 21:31:36","Support indirection URLs","As per registry spec, version descriptor objects are not mandatory, and a URL where to find them is allowed too (see registry root description or Package Root Object's version field). NX should aggregate these into one document (either before storing or on serving, it depends). Currently, this feature is not used by registry.npmjs.org, but it might be used in future (or dropped, as the ""spec"" is much more a ""draft"" really). Links: http://wiki.commonjs.org/wiki/Packages/Registry#registry_root_url http://wiki.commonjs.org/wiki/Packages/Registry#Package_Root_Object https://github.com/georgy/nexus-npm-repository-plugin/issues/13",8 +"NEXUS-6773","08/21/2014 17:04:33","correct inconsistencies of tmp dir usage between Nexus and Yum related forked processes","Summary: - TMPDIR environment variable should be set to java.io.tmpdir absolute value when YUM command line is forked* - Yum plugin should make better assumptions about where the tmp directory is ---- The assumption is the correct way to specify the temp dir for all nexus activity is the java.io.tmpdir system property. Yum related tasks currently fork processes which inherit the Nexus java process *environment*. Yum createrepo and mergerepo tools seem to respect the TMPDIR environment variable. Launch Nexus with TMPDIR environment variable not set but java.io.tmpdir system property set in wrapper.conf java.additional property. When a YUM metadata task is forked, the forked yum tooling can potentially choose a different tmp dir than what java.io.tmpdir is set as. In one case this caused a no space left on device error when metadata was being generated for a large yum repo because /var/tmp was filling up. Additionally, our YUM code makes assumptions about the tmp dir being used by YUM, which could conflict with the tmp dir specified by TMPDIR env variable. https://github.com/sonatype/nexus-oss/blob/nexus-2.9.x/plugins/yum/nexus-yum-repository-plugin/src/main/java/org/sonatype/nexus/yum/internal/task/MergeMetadataTask.java#L159-159 ",3 +"NEXUS-6774","08/21/2014 17:10:12","Yum plugin can clobber temp files not belonging to the current process","https://github.com/sonatype/nexus-oss/blob/nexus-2.9.x/plugins/yum/nexus-yum-repository-plugin/src/main/java/org/sonatype/nexus/yum/internal/task/MergeMetadataTask.java#L89-89 This call seems to blindly try to delete all /var/tmp/yum-* files. If two Nexuses on the same host share the same tmp dir, it is possible one Nexus will clobber the files from another Nexus.",1 +"NEXUS-6786","08/26/2014 16:18:08","provide method to exclude specific User-Agent values from browser detection ","https://support.sonatype.com/entries/98305496-How-do-I-enable-WWW-Authenticate-headers-for-content-401-responses NEXUS-6189 introduced not returning WWW-Authenticate headers for 401 web browser content responses. This is non-standard behaviour. A customer wants to upgrade to latest Nexus, and when they did, this broke some internal tooling that relied on WWW-Authenticate. Disabling the browser detector is not a good long term solution for them because their internal tool is already deployed to production. The request is to add some way to specify a user agent string that can always be treated as a non-browser, and therefore return the default authenticate headers.",1 +"NEXUS-6790","08/29/2014 17:42:03","Child group repository with only one yum enabled member breaks yum metadata merge","Create a set of yum enabled repositories: {code} {noformat} GroupA --> GroupB | | | |--> Repo1 | |--> Repo2 |--> Repo3 |--> Repo4 {noformat} Because ""GroupB"" only has one member mergerepo is never run against it. Consequentially it contains no yum metadata. This breaks running mergerepo against ""GroupA"", it will fail every time with error: {quote} Could not merge repos: Could not setup merge repo pkgsack: Cannot retrieve repository metadata (repomd.xml) for repository: repo1. Please verify its path and try again {quote} I think the simplest fix for this would be: # Implement NEXUS-6801 (prevent generation of sqlite metadata) # If a group only contains one member copy that member's metadata and rewrite the URL in the primary.xml.gz file",3 +"NEXUS-6795","09/01/2014 23:24:20","Avoid proliferation of artifacts checked into scm for testing","ATM there are a non-trivial number of places where we have test artifacts in scm, such as: {noformat} testsuite/modern-testsuite/src/test/it-resources/com/sonatype/nexus/testsuite/ssl/proxy-repo/aopalliance testsuite/modern-testsuite/src/test/it-resources/com/sonatype/nexus/testsuite/ssl/proxy-repo/aopalliance/aopalliance testsuite/modern-testsuite/src/test/it-resources/com/sonatype/nexus/testsuite/ssl/proxy-repo/aopalliance/aopalliance/1.0/aopalliance-1.0.jar testsuite/modern-testsuite/src/test/it-resources/com/sonatype/nexus/testsuite/ssl/proxy-repo/aopalliance/aopalliance/1.0/aopalliance-1.0.pom testsuite/modern-testsuite/src/test/it-resources/org/sonatype/nexus/testsuite/analytics/artifacts/aopalliance testsuite/modern-testsuite/src/test/it-resources/org/sonatype/nexus/testsuite/analytics/artifacts/aopalliance/aopalliance testsuite/modern-testsuite/src/test/it-resources/org/sonatype/nexus/testsuite/analytics/artifacts/aopalliance/aopalliance/1.0/aopalliance-1.0.pom testsuite/modern-testsuite/src/test/it-resources/org/sonatype/nexus/testsuite/client/artifacts/aopalliance testsuite/modern-testsuite/src/test/it-resources/org/sonatype/nexus/testsuite/client/artifacts/aopalliance/aopalliance testsuite/modern-testsuite/src/test/it-resources/org/sonatype/nexus/testsuite/client/artifacts/aopalliance/aopalliance/1.0/aopalliance-1.0.jar testsuite/modern-testsuite/src/test/it-resources/org/sonatype/nexus/testsuite/client/artifacts/aopalliance/aopalliance/1.0/aopalliance-1.0.pom {noformat} We should look into alternative means to have artifacts available for testing. Not suggesting we go to maven to download these though, but perhaps a module that has all of these test resources and the testsuite can simply extract that archive if it needs them or something along those lines.",2 +"NEXUS-6797","09/02/2014 19:24:17","LDAP verify connection button is disabled until all configuration is filled in","In Nexus 3.0 it is no longer possible to verify your LDAP connection settings right after filling them in, you have to go to the ""user & group"" tab and fill in all of that information first. ",1 +"NEXUS-6801","09/03/2014 02:55:03","prevent createrepo/mergerepo from creating sqlite rpm metadata","According to all accounts I could find, the sqllite databases created using the --database ( defaults to true since 2010, createrepo-0.9.9) option to createrepo/mergerepo is an **client optimization only**. Where access to Nexus is highly concurrent, and all yum clients seem to support the basic mode without sqlite files on the server just fine, we should therefore stop asking createrepo.mergerepo to create the sqllite databases. This in theory should improve metadata creation performance(TBD), increase locking throughput and avoid the possibility of having xml based metadata out of sync from sqllite data. Since 2010, createrepo and mergerepo have added the --no-database option to prevent creation of the sqlite metadata. Before 0.9.9 version, no sqlite data was being created unless specifically asked. These commits changed the default createrepo/mergerepo behavior from not creating sqlite databases to creating them. http://createrepo.baseurl.org/gitweb?p=createrepo.git;a=commit;h=1891306b9f4dc98567bcd9507708d8e089e2c69c http://createrepo.baseurl.org/gitweb?p=createrepo.git;a=commit;h=bc3df9bece50098d9dc1c82f0addac36cc1db67a Further, YUM documentation ( and code if you look hard enough) clarifies that if sqlite files are not found, YUM falls back to getting the XML files instead. http://yum.baseurl.org/gitweb?p=yum.git;a=blob;f=docs/yum.conf.5;h=97acbe43eb63660a86beb4c1ea5b322bdf1303ad;hb=HEAD#l676 ---- Our code uses --database option, thereby always creating sqlite databases on the server. [GenerateMetadataTask --database option|https://github.com/sonatype/nexus-oss/blob/master/plugins/yum/nexus-yum-repository-plugin/src/main/java/org/sonatype/nexus/yum/internal/task/GenerateMetadataTask.java#L344-344] [MergeMetadataTask -d option|https://github.com/sonatype/nexus-oss/blob/master/plugins/yum/nexus-yum-repository-plugin/src/main/java/org/sonatype/nexus/yum/internal/task/MergeMetadataTask.java#L227-227] In summary: - our commands should remove -d, --database and add --no-database - we should clearly specify we require createrepo 0.9.9 or greater to be used OR provide some override to not pass the --no-database option to createrepo/mergerepo in case the local version does not recognize this option - if implemented, YUM clients can call [yum clean dbcache|http://yum.baseurl.org/wiki/YumCommands] locally to clean up any previously ""downloaded from Nexus"" sqlite databases and from then on generate their own sqlite files from the xml data only - YUM clients could configure 'mddownloadpolicy' in yum.conf to be xml, as a very slight optimization when known to be talking to Nexus, but not required - on upgrade after this change, delete any sqlite files in Nexus repos to avoid clients from downloading them in the future and getting even more confused, or something more slightly confusing, always responding 404 even if they exist ",2 +"NEXUS-6805","09/03/2014 15:51:55","ldap server view certificate button is enabled before valid values are entered","Login as admin. Open http://localhost:8081/nexus/#admin/security/ldap Click New. Change protocol to ldaps. Click View Certificate. A bunch of strange exception messages get thrown in the message console. I do not see these messages logged in the nexus log file. ",0.5 +"NEXUS-6807","09/03/2014 17:52:24","adding a new user is allowed despite form validation failures","Login as admin. #/admin/security/users Click New. Add a new user by pasting in an email address of "" @foo.com"" ( content inside quotes) and Save. A message is displayed about Invalid Email Address Press Save again n times. Looks like nothing is happening. No error messages or red messages. Click X on top right of dialog to close it. Refresh User list. Your user is created with a bad email address. ",0.5 +"NEXUS-6808","09/03/2014 17:56:58","creating a user with id that already exists fails without any reason why","Create a user with id ""fake"". Create another user with id ""fake"" Clicking Add for the second user leaves the dialog and provides no feedback about why the user could not be created.",0.5 +"NEXUS-6809","09/03/2014 18:50:54","sourcing ldap users in the UI does not scale","Configure ldap config to a valid server with 5000 users. Open users management. Change the source to LDAP. Nexus now makes 5000+ group member queries and tries to load 5000 records into the Nexus UI. More than likely Nexus UI will timeout and not render anything - meanwhile the queries are happily proceeding as requested in the backend. This will either crash LDAP, crash Nexus or crash the browser. ",3 +"NEXUS-6822","09/04/2014 18:46:11","Improve sorting of NuGet results when no order is specified","Unlike the Nuget Package Explorer, Visual Studio's NuGet plugin doesn't seem to specify a sort order with its queries by default Nexus defaults to alphabetical by package name, which generally means the results are not very useful for VS users, who are likely the majority. Using Download Count as a default sort order would make the results much more useful. (Which may or may not be what nuget.org is doing - apparently result ordering is under active development.)",2 +"NEXUS-6824","09/04/2014 20:09:59","Increase default heap size for oss, keep in sync with pro","2.9, 2.10 and master branches have been updated A note that we are justifying this change because the NuGet features have moved into OSS recently We expect the host resources available to OSS users to be similar to pro users now as well. Specifically the heap sizes are changed as follows in wrapper.conf: wrapper.java.initmemory=256 wrapper.java.maxmemory=768 ",0.5 +"NEXUS-6829","09/06/2014 00:17:14","Testsuite executes tests with previous session","Testsuite execution seems to be polluting tests with previous test state, need to resolve how to get each test isolated for its own session.",3 +"NEXUS-6831","09/06/2014 20:36:23","Update extjs-maven-plugin use of omit flags","ATM our maven-plugin and // is inverted in configuration from standard sencha cmd. Ie. you flip on a flag to cause the section to be omitted, instead of flipping on the flag to have the section be *not* omitted. Should clean this up so that its consistent for sanity.",2 +"NEXUS-6836","09/09/2014 12:14:15","maven staging plugin ArrayIndexOutOfBoundsException: -1 on release using Java 8","I am using 1.6.3 and get this exception when calling ""mvn nexus-staging:release -e"" {noformat} [INFO] --- nexus-staging-maven-plugin:1.6.3:release (default-cli) @ open --- [INFO] + Using server credentials ""sonatype-nexus-staging"" from Maven settings. [INFO] * Connected to Nexus at https://oss.sonatype.org:443/, is version 2.9.1-01 and edition ""Professional"" [INFO] Releasing staging repository with IDs=[comcedarsoft-1039] [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.949 s [INFO] Finished at: 2014-09-06T14:39:22+02:00 [INFO] Final Memory: 16M/93M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.3:release (default-cli) on project open: Execution default-cli of goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.3:release failed: -1 -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.3:release (default-cli) on project open: Execution default-cli of goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.3:release failed: -1 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:224) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:347) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:154) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:582) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214) at org.apache.maven.cli.MavenCli.main(MavenCli.java:158) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.3:release failed: -1 at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:143) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) ... 19 more Caused by: java.lang.ArrayIndexOutOfBoundsException: -1 at com.thoughtworks.xstream.core.util.OrderRetainingMap.entrySet(OrderRetainingMap.java:77) at java.util.HashMap.putMapEntries(HashMap.java:511) at java.util.HashMap.putAll(HashMap.java:784) at com.thoughtworks.xstream.core.util.OrderRetainingMap.(OrderRetainingMap.java:36) at com.thoughtworks.xstream.converters.reflection.FieldDictionary.buildMap(FieldDictionary.java:135) at com.thoughtworks.xstream.converters.reflection.FieldDictionary.fieldsFor(FieldDictionary.java:76) at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:127) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doMarshal(AbstractReflectionConverter.java:83) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:73) at com.thoughtworks.xstream.core.TreeMarshaller.convert(TreeMarshaller.java:70) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshallField(AbstractReflectionConverter.java:240) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.writeField(AbstractReflectionConverter.java:216) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.(AbstractReflectionConverter.java:179) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doMarshal(AbstractReflectionConverter.java:125) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:73) at com.thoughtworks.xstream.core.TreeMarshaller.convert(TreeMarshaller.java:70) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshallField(AbstractReflectionConverter.java:240) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.writeField(AbstractReflectionConverter.java:216) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.(AbstractReflectionConverter.java:179) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doMarshal(AbstractReflectionConverter.java:125) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:73) at com.thoughtworks.xstream.core.TreeMarshaller.convert(TreeMarshaller.java:70) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43) at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:82) at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37) at com.thoughtworks.xstream.XStream.marshal(XStream.java:993) at com.thoughtworks.xstream.XStream.marshal(XStream.java:982) at org.sonatype.nexus.client.internal.rest.XStreamXmlProvider.getSize(XStreamXmlProvider.java:101) at com.sun.jersey.api.client.RequestWriter$RequestEntityWriterImpl.(RequestWriter.java:202) at com.sun.jersey.api.client.RequestWriter.getRequestEntityWriter(RequestWriter.java:248) at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.getHttpEntity(ApacheHttpClient4Handler.java:241) at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.getUriHttpRequest(ApacheHttpClient4Handler.java:197) at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:153) at org.sonatype.sisu.siesta.client.filters.RequestFilters.handle(RequestFilters.java:48) at com.sun.jersey.api.client.Client.handle(Client.java:648) at com.sun.jersey.api.client.WebResource.voidHandle(WebResource.java:704) at com.sun.jersey.api.client.WebResource.access$400(WebResource.java:74) at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:553) at com.sonatype.nexus.staging.client.internal.StagingWorkflowV2ServiceImpl$10.perform(StagingWorkflowV2ServiceImpl.java:280) at com.sonatype.nexus.staging.client.internal.StagingWorkflowV2ServiceImpl$10.perform(StagingWorkflowV2ServiceImpl.java:277) at com.sonatype.nexus.staging.client.internal.ExceptionConverter.runAndReturn(ExceptionConverter.java:39) at com.sonatype.nexus.staging.client.internal.StagingWorkflowV2ServiceImpl.releaseStagingRepositories(StagingWorkflowV2ServiceImpl.java:276) at com.sonatype.nexus.staging.client.internal.StagingWorkflowV3ServiceImpl.releaseStagingRepositories(StagingWorkflowV3ServiceImpl.java:92) at org.sonatype.nexus.maven.staging.workflow.ReleaseStageRepositoryMojo.doExecute(ReleaseStageRepositoryMojo.java:56) at org.sonatype.nexus.maven.staging.workflow.AbstractStagingActionMojo.execute(AbstractStagingActionMojo.java:56) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132) ... 20 more {noformat} Migrated from https://github.com/sonatype/nexus-maven-plugins/issues/71",1 +"NEXUS-6852","09/10/2014 01:16:17","Querying NuGet proxy with no $top parameter causes excessive caching","I noticed this when manually testing NuGet with curl. The code that runs the new pass-through queries against the NuGet proxy will automatically page through all results that match the query rather than stop at the first page. This means that if you get the ""Packages"" feed using curl with no query parameters it will attempt to page through the entire NuGet proxy feed and not come back for several minutes. This could explain the longer query times occasionally observed in the field, because we'll be fetching all matching entries rather than stopping at the first page of results. However, the next time the query is run it would be faster because we've pre-fetched all subsequent pages. If possible we should take exactly what's returned from the NuGet upstream feed and not follow ""next page"" references. This should just be a matter of tweaking the feed scraper.",3 +"NEXUS-6844","09/10/2014 19:54:03","make a durable Server Name Indication SNI fix that does not rely on specific sun classes","Current fix for Server Name Indication (SNI), while works, is fragile as it uses {{sun.*}} classes: https://github.com/sonatype/nexus-oss/commit/b581a1be6ab5b289f44eb7575570589d66bc40c1 The related HttpClient issue contains comments explaining how to properly implement this (and the code is in place since 4.3.2), so on the long term that is where we should go. Still, it would require some rework of the NexusSSLConnectionSocketFactory we implemented and use with HC4. https://issues.apache.org/jira/browse/HTTPCLIENT-1119",2 +"NEXUS-6846","09/11/2014 16:41:48","mergerepo should run via asynchronous event handler","Currently if mergerepo needs to run it runs synchronously during processing of GET requests for group level repodata/repomd.xml files. The mergerepo command can take a while to run if large data sets are involved, this can lead to client side timeouts. It would be better if it ran on an asynchronous event handler. This should include a configurable delayed start similar to the current generate yum metadata's delete delay. ",3 +"NEXUS-6848","09/11/2014 18:42:16","Exception deleting user when User-token feature is not enabled","Unpack and start Nexus * Create an internal user * Delete the internal user * Exception will appear in log: {code} 2014-09-11 18:32:55,611+0100 ERROR [qtp357251045-230] admin com.google.common.eventbus.EventBus.default - Could not dispatch event: com.sonatype.nexus.usertoken.plugin.internal.UserTokenEventInspector@41df9bb6 to public void com.sonatype.nexus.usertoken.plugin.internal.UserTokenEventInspector.inspect(org.sonatype.security.events.UserPrincipalsExpired) java.lang.IllegalStateException: User-token feature is not enabled at com.google.common.base.Preconditions.checkState(Preconditions.java:176) [com.google.guava:16.0.1] at com.sonatype.nexus.usertoken.plugin.internal.UserTokenServiceImpl.ensureEnabled(UserTokenServiceImpl.java:172) [na:na] at com.sonatype.nexus.usertoken.plugin.internal.UserTokenServiceImpl.remove(UserTokenServiceImpl.java:362) [na:na] at com.sonatype.nexus.usertoken.plugin.internal.UserTokenEventInspector.handle(UserTokenEventInspector.java:52) [na:na] at com.sonatype.nexus.usertoken.plugin.internal.UserTokenEventInspector.inspect(UserTokenEventInspector.java:46) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.7.0_51] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [na:1.7.0_51] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.7.0_51] at java.lang.reflect.Method.invoke(Method.java:606) [na:1.7.0_51] at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) [com.google.guava:16.0.1] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) [com.google.guava:16.0.1] at com.google.common.eventbus.DefaultGuavaEventBus.dispatch(DefaultGuavaEventBus.java:41) [com.google.guava:16.0.1] at com.google.common.eventbus.ReentrantGuavaEventBus.dispatchQueuedEvents(ReentrantGuavaEventBus.java:56) [com.google.guava:16.0.1] at com.google.common.eventbus.EventBus.post(EventBus.java:275) [com.google.guava:16.0.1] at org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus.post(DefaultEventBus.java:73) [com.google.guava:16.0.1] at org.sonatype.security.DefaultSecuritySystem.deleteUser(DefaultSecuritySystem.java:418) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at org.sonatype.security.SecuritySystem$deleteUser.call(Unknown Source) [3.0.0-SNAPSHOT:3.0.0-SNAPSHOT] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) [groovy-all:2.1.5] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) [groovy-all:2.1.5] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) [groovy-all:2.1.5] at org.sonatype.nexus.coreui.UserComponent.delete_(UserComponent.groovy:292) [org.sonatype.nexus.plugins.nexus-coreui-plugin:3.0.0.SNAPSHOT] {code} ",0.5 +"NEXUS-6849","09/12/2014 16:24:59","Some NuGet UI elements are missing in the OSS distribution","When I use the latest nexus-3.0.0-SNAPSHOT-bundle.zip OSS distribution I can create NuGet repositories, but their configuration only shows a single tab: ""Settings"", the token tab is not visible. Similarly the new NuGet upload option never appears even after a NuGet hosted repository is created. Using the nexus-professional-3.0.0-SNAPSHOT-bundle.zip from the same build (with exactly the same NuGet plugin) all NuGet UI elements appear as expected.",0.5 +"NEXUS-6850","09/12/2014 16:35:05","Deleting a repository in the UI doesn't fully delete it on the server","Using Nexus 3.0-SNAPSHOT: * Create a new repository (any type) with id of Test * Delete the Test repository * Attempt to create a new repository (any type) with id of Test * UI will not allow this and reports Test already exists Refreshing the UI and logging out and back in have no affect, but restarting Nexus makes the Test repository re-appear in the UI. Similarly deleting the Test repository and then restarting Nexus appears to resurrect it.",0.5 +"NEXUS-6853","09/14/2014 17:42:17","NuGet $count queries can lead to excessive caching","The new passthrough code maps a $count query to a remote Packages query and pre-fetches all matching feed entries. IIRC this is to ensure a stable count with local hosted packages in the case of duplicates. For queries that match a lot of packages this can lead to excessive caching whereas we only really need to combine the remote count with local counts. (This assumes no duplication between remote and hosted feeds, if there is duplication then this could lead to over-counting.)",2 +"NEXUS-6857","09/16/2014 12:19:24","Support for npm scoped packages","Add support for scoped packages. This is new feature of npm 2.0.0 release, and targets users using ""private registries"", by adding a ""scope"" to package namespace, basically solving the problem of name clashes between public and private packages. More info https://github.com/npm/npm/issues/5239 http://blog.nodejitsu.com/a-summary-of-scoped-modules-in-npm/",5 +"NEXUS-6858","09/16/2014 20:28:10","Investigate feasibility of ""expected"" NPM JSON error messages for better user experience","Investigate feasibility of ""expected"" NPM JSON error messages for better user experience. Currently, npm does the right job (behaves based on HTTP response code), but spits the raw HTML error page on console.",2 +"NEXUS-6860","09/17/2014 20:01:45","disable Smart Proxy support for npm repositories","- hide the Smart Proxy tab for each npm repository - prevent Smart Proxy subscription and publisher capabilities for npm repos Initial release should not support Smart Proxy ",0.5 +"NEXUS-6861","09/17/2014 20:04:23","disable Browse Storage tab for npm repositories","- hide the Browse Storage tab - park the code to enable Browse Storage in case we revisit the scalability issues We already have Browse Storage working in latest SNAPSHOT. However we are concerned given the flat structure of npm repositories, that the 2.x UI will not scale well in some situations viewing Browse Storage. ",0.5 +"NEXUS-6862","09/17/2014 20:37:05","add complete default NPM repository roles","Using 935774f6d36757f677dd4cb48008af81f6cf84ab of the npm plugin, I noticed only the following Roles installed: Repo: All NPM repositories (View) It seems Full Control and Read are missing for starters. ",1 +"NEXUS-6863","09/17/2014 21:20:22","npm search fails with JsonParseException: Unexpected end-of-input","Configure a group repo in Nexus with npmhosted and npmproxy. Execute {{npm search}} on the cli. After a long wait, Nexus prints: {noformat} jvm 1 | 2014-09-17 17:15:17,650-0300 INFO [qtp929820170-153] anonymous com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl - Initial NPM Registry root update for npmproxy jvm 1 | 2014-09-17 17:15:17,937-0300 INFO [qtp929820170-153] anonymous remote.storage.outbound - npmproxy - NPM GET https://registry.npmjs.org/-/all - HTTP/1.1 200 OK jvm 1 | 2014-09-17 17:16:08,271-0300 WARN [qtp929820170-153] anonymous com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl - NPM Registry root update failed for npmproxy jvm 1 | java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unexpected end-of-input: expected close marker for OBJECT (from [Source: org.sonatype.nexus.proxy.item.FileContentLocator$DeleteOnCloseFileInputStream@5d0abb55; line: 1, column: 0]) jvm 1 | at [Source: org.sonatype.nexus.proxy.item.FileContentLocator$DeleteOnCloseFileInputStream@5d0abb55; line: 1, column: 15778727] jvm 1 | at com.google.common.base.Throwables.propagate(Throwables.java:160) ~[guava-16.0.1.jar:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser$ParsingPackageRootIterator.getNext(MetadataParser.java:291) ~[nexus-npm-repository-plugin-2.10.0-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser$ParsingPackageRootIterator.next(MetadataParser.java:272) ~[nexus-npm-repository-plugin-2.10.0-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser$ParsingPackageRootIterator.next(MetadataParser.java:235) ~[nexus-npm-repository-plugin-2.10.0-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.service.internal.orient.OrientMetadataStore.updatePackages(OrientMetadataStore.java:219) ~[nexus-npm-repository-plugin-2.10.0-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl.doGenerateRegistryRoot(ProxyMetadataServiceImpl.java:143) ~[nexus-npm-repository-plugin-2.10.0-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.generateRegistryRoot(GeneratorSupport.java:86) [nexus-npm-repository-plugin-2.10.0-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.service.internal.GroupMetadataServiceImpl.doGenerateRegistryRoot(GroupMetadataServiceImpl.java:45) [nexus-npm-repository-plugin-2.10.0-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.generateRegistryRoot(GeneratorSupport.java:86) [nexus-npm-repository-plugin-2.10.0-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.produceRegistryRoot(GeneratorSupport.java:59) [nexus-npm-repository-plugin-2.10.0-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.group.DefaultNpmGroupRepository.doRetrieveLocalItem(DefaultNpmGroupRepository.java:138) [nexus-npm-repository-plugin-2.10.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractRepository.doRetrieveItem(AbstractRepository.java:1230) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.doRetrieveItem(AbstractGroupRepository.java:237) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:758) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:590) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:155) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.content.internal.ContentServlet.doGet(ContentServlet.java:387) [nexus-content-plugin-2.10.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.content.internal.ContentServlet.service(ContentServlet.java:353) [nexus-content-plugin-2.10.0-SNAPSHOT/:na] jvm 1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) [javax.servlet-3.0.0.v201112011016.jar:na] jvm 1 | at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:288) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:278) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.sonatype.nexus.web.internal.SecurityFilter.executeChain(SecurityFilter.java:73) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [shiro-core-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:135) [nexus-licensing-plugin-2.10.0-SNAPSHOT/:na] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.yammer.metrics.web.WebappMetricsFilter.doFilter(WebappMetricsFilter.java:76) [metrics-web-2.2.0.jar:na] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.CommonHeadersFilter.doFilter(CommonHeadersFilter.java:69) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.ErrorPageFilter.doFilter(ErrorPageFilter.java:71) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:70) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterPipeline.dispatch(NexusGuiceFilter.java:56) [nexus-core-2.10.0-SNAPSHOT.jar:2.10.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:132) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:129) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:206) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:129) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) [jetty-security-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at com.yammer.metrics.jetty.InstrumentedHandler.handle(InstrumentedHandler.java:200) [metrics-jetty-2.2.0.jar:na] jvm 1 | at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.Server.handle(Server.java:370) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) [jetty-http-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) [jetty-http-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) [jetty-io-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) [jetty-io-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at java.lang.Thread.run(Thread.java:745) [na:1.8.0_11] jvm 1 | Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected end-of-input: expected close marker for OBJECT (from [Source: org.sonatype.nexus.proxy.item.FileContentLocator$DeleteOnCloseFileInputStream@5d0abb55; line: 1, column: 0]) jvm 1 | at [Source: org.sonatype.nexus.proxy.item.FileContentLocator$DeleteOnCloseFileInputStream@5d0abb55; line: 1, column: 15778727] jvm 1 | at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1524) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:557) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.base.ParserMinimalBase._reportInvalidEOF(ParserMinimalBase.java:487) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.base.ParserBase._handleEOF(ParserBase.java:487) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._skipWSOrEnd(UTF8StreamJsonParser.java:2589) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:650) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser$ParsingPackageRootIterator.getNext(MetadataParser.java:278) ~[nexus-npm-repository-plugin-2.10.0-SNAPSHOT/:na] jvm 1 | ... 104 common frames omitted {noformat} However the cmd seems to display a reasonable list of packages without error. ",2 +"NEXUS-6865","09/18/2014 19:10:25","do not add enabled secure central capability by default on installations without legacy secure central url","There is no need to add this capability, enabled at least, anymore. The default URLs of central have changed to the free URL, so this capability does a needless authtoken fetch on boot and periodically checks every few minutes if it fails. When it does fail, it usually always fails. It is common for this to fail all the time in corporate env due to firewalls. If someone is upgrading with secure.central.sonatype.com already configured, then yeah, enabling it makes sense. ",0.5 +"NEXUS-6872","09/19/2014 18:03:37","trial bundle does not have central repo in public group","https://github.com/sonatype/nexus-bundles/blob/nexus-2.9.x/assemblies/nexus-trial/src/main/content/trial-config/conf/nexus.xml#L231 This means all the trial examples which require download of remote artifacts fail. ",0.5 +"NEXUS-6873","09/19/2014 18:07:10","trial bundle config includes procurement.xml","procurement features are no longer trialed in the trial eval guide https://github.com/sonatype/nexus-bundles/blob/nexus-2.9.x/assemblies/nexus-trial/src/main/content/trial-config/conf/procurement.xml Including procurement.xml causes scary WARN logging on startup: {noformat} 2014-09-19 08:48:15,359+0100 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.configuration.application.DefaultNexusConfiguration - Applying Nexus Configuration due to changes in [Scheduled Tasks]... 2014-09-19 08:48:15,390+0100 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.NxApplication - Nexus Work Directory : C:\Users\f114612\AppData\Local\nexus-pro-trial 2014-09-19 08:48:15,390+0100 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.NxApplication - Started Sonatype Nexus Professional 2.9.1-02 2014-09-19 08:48:15,702+0100 WARN [jetty-main-1] *SYSTEM com.sonatype.nexus.procurement.ProcurementAutoroutingEventHandler - Problem during gathering procurement repositories targeting at repository M2Repository(id=central) org.sonatype.configuration.validation.InvalidConfigurationException: The procured repository procured-central points to a nonexistent target ID: central at com.sonatype.nexus.procurement.DefaultProcurementManager.getProcurementRepositoriesForTargetRepository(DefaultProcurementManager.java:226) ~[nexus-procurement-plugin-2.9.1-02/:na] at com.sonatype.nexus.procurement.ProcurementAutoroutingEventHandler.inspect(ProcurementAutoroutingEventHandler.java:80) [nexus-procurement-plugin-2.9.1-02/:na] at com.sonatype.nexus.procurement.ProcurementAutoroutingEventHandler.on(ProcurementAutoroutingEventHandler.java:64) [nexus-procurement-plugin-2.9.1-02/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_60] at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.7.0_60] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventHandler.handleEvent(EventHandler.java:80) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.dispatch(EventBus.java:329) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.DefaultGuavaEventBus.dispatch(DefaultGuavaEventBus.java:34) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.ReentrantGuavaEventBus.dispatchQueuedEvents(ReentrantGuavaEventBus.java:57) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.post(EventBus.java:281) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus.post(DefaultEventBus.java:78) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.nexus.proxy.maven.routing.internal.ManagerImpl.startup(ManagerImpl.java:199) [nexus-core-2.9.1-02.jar:2.9.1-02] at org.sonatype.nexus.proxy.maven.routing.internal.ManagerImpl.onNexusStartedEvent(ManagerImpl.java:994) [nexus-core-2.9.1-02.jar:2.9.1-02] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_60] at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.7.0_60] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventHandler.handleEvent(EventHandler.java:80) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.guava.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:49) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.dispatch(EventBus.java:329) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.DefaultGuavaEventBus.dispatch(DefaultGuavaEventBus.java:34) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.ReentrantGuavaEventBus.dispatchQueuedEvents(ReentrantGuavaEventBus.java:57) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.post(EventBus.java:281) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus.post(DefaultEventBus.java:78) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.nexus.NxApplication.doStart(NxApplication.java:172) [nexus-core-2.9.1-02.jar:2.9.1-02] at org.sonatype.sisu.goodies.lifecycle.LifecycleSupport$Handler.doStart(LifecycleSupport.java:70) [goodies-lifecycle-1.9.jar:1.9] at org.sonatype.sisu.goodies.lifecycle.LifecycleHandlerContext$MainMap_Starting.started(LifecycleHandlerContext.java:255) [goodies-lifecycle-1.9.jar:1.9] at org.sonatype.sisu.goodies.lifecycle.LifecycleHandlerContext.started(LifecycleHandlerContext.java:57) [goodies-lifecycle-1.9.jar:1.9] at org.sonatype.sisu.goodies.lifecycle.LifecycleSupport.start(LifecycleSupport.java:129) [goodies-lifecycle-1.9.jar:1.9] at org.sonatype.nexus.webapp.WebappBootstrap.contextInitialized(WebappBootstrap.java:168) [classes/:na] at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:775) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:424) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:767) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:249) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1252) [jetty-webapp-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:710) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494) [jetty-webapp-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.Server.doStart(Server.java:282) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.sonatype.nexus.bootstrap.jetty.JettyServer$JettyMainThread.run(JettyServer.java:247) [nexus-bootstrap-2.9.1-02.jar:2.9.1-02] Caused by: org.sonatype.nexus.proxy.NoSuchRepositoryException: Repository with ID=""procured-central"" not found at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getRepository(DefaultRepositoryRegistry.java:124) ~[nexus-core-2.9.1-02.jar:2.9.1-02] at com.sonatype.nexus.procurement.DefaultProcurementManager.getProcurementRepositoriesForTargetRepository(DefaultProcurementManager.java:221) ~[nexus-procurement-plugin-2.9.1-02/:na] ... 47 common frames omitted {noformat} ",0.5 +"NEXUS-6874","09/19/2014 18:29:43","trial bundle uses wrong default temp dir","nexus.vmoptions contains {noformat} -Xmx768m -Xms256m -XX:MaxPermSize=192m -Djava.net.preferIPv4Stack=true -Dcom.sun.jndi.ldap.connect.pool.protocol=plain ssl #-Dcom.sun.management.jmxremote.port=8086 #-Dcom.sun.management.jmxremote.ssl=false #-Dcom.sun.management.jmxremote.authenticate=false #-Xdebug #-Xnoagent #-Djava.compiler=NONE #-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 #-XX:+HeapDumpOnOutOfMemoryError {noformat} This should include setting the java tmp dir Noticed this in one customer's trial bundle log: {noformat} 1) Error in custom provider, java.lang.RuntimeException: Cannot delete nexus-p2-bridge temporary directory C:\Windows\Temp\nexus-p2-bridge-plugin\runtime while locating org.sonatype.nexus.plugins.p2bridge.internal.HttpProxyProvider {noformat} That is a very bad temporary directory location...if two nexuses are running on the same host especially. https://issues.sonatype.org/browse/NEXUS-6352 ",1 +"NEXUS-6875","09/19/2014 18:44:13","Add link to participate/mailing-list/whatever to help menu","Folks seem to not be able to find http://www.sonatype.org/nexus/participate lets put this into the Help menu for NX 3.",0.5 +"NEXUS-6881","09/22/2014 20:53:52","comma in group membership attribute value breaks static LDAP group mapping","If you have an LDAP group mapping where the user's CN has a comma in it then static group mapping in Nexus will not work. So if your user's common names are entered as ""Lastname,Firstname"" and distinguished names are used in the group membership attribute you end up with a query like this one being issued by Nexus: {code} '(&(objectClass=group)(&(cn=*)(member=CN=Lastname\,Firstname,CN=Users,DC=some,DC=corp,DC=com)))' {code} This doesn't work because the backslash needs to be escaped: {code} '(&(objectClass=group)(&(cn=*)(member=CN=Lastname\\,Firstname,CN=Users,DC=some,DC=corp,DC=com)))' {code} The following code change seems to resolve this issue: {code} --- a/components/nexus-ldap-common/src/main/java/org/sonatype/security/ldap/dao/DefaultLdapGroupDAO.java +++ b/components/nexus-ldap-common/src/main/java/org/sonatype/security/ldap/dao/DefaultLdapGroupDAO.java @@ -225,9 +225,11 @@ public class DefaultLdapGroupDAO member = StringUtils.replace(member, ""${dn}"", user.getDn()); } + member = StringUtils.replace(member, ""\\"", ""\\\\""); filter += groupMemberAttribute + ""="" + member + "")))""; } else { + username = StringUtils.replace(username, ""\\"", ""\\\\""); filter += groupMemberAttribute + ""="" + username + "")))""; } {code} ",1 +"NEXUS-6887","09/24/2014 23:17:49","If all user tokens are cleared this should be logged at INFO","Currently, we only log at DEBUG if all user tokens are cleared. This should be logged at INFO: {quote} 2014-09-24 17:12:29 DEBUG [qtp680480074-130] admin com.sonatype.nexus.usertoken.plugin.internal.UserTokenServiceImpl - Removing all records {quote}",0.5 +"NEXUS-6898","09/30/2014 10:47:00","npm hosted repository should maintain ""time"" field on deploys","NPM hosted repository should maintain ""time"" field on deploys. Basically this algorithm (from npm couchdb server) needs to be ""ported"" to hosted repositories: https://github.com/npm/npm-registry-couchapp/blob/master/registry/updates.js#L79 Due to lack of this, the only known downside (or ""bug"" if you like) is that commands listing package metadata (like {{npm search}} is) will mark the package as ""prehistoric"". Example {{npm search}} output (packages deployed by user ""deployment"" user are locally published ones): {noformat} [cstamas@zaphod npm]$ npm search testpro NAME DESCRIPTION AUTHOR DATE VERSION KEYWORDS mtfe_testproxy 2014-03-19 tcptestproxy Proxy to another tcp based server =lights-of-apollo 2013-12-22 0.0.1 testproject This is a Test =xlma 2014-04-18 0.0.1 Test testproject1 Test Project 1 =deployment prehistoric 0.0.1 testproject2 Test Project 2 =deployment prehistoric 0.0.1 [cstamas@zaphod npm]$ {noformat}",1 +"NEXUS-6899","09/30/2014 17:24:34","The yum versions REST resource is only updated at startup","As documented [here|https://github.com/sonatype/nexus-oss/tree/master/plugins/yum/nexus-yum-repository-plugin] the yum plugin supports versioned views of repositories, as in: http://your.nexus/nexus/service/local/yum/repos/releases/1.2.3/ Unfortunately, the internal cache of version numbers is only populated at at startup time, it is not updated when new artifacts are deployed. This makes the feature non-functional for most use cases. ",1 +"NEXUS-6900","09/30/2014 19:19:20","Nexus OSS support bundle does not include ldap.xml file","A support zip generated from Nexus OSS does not include the ldap.xml file.",1 +"NEXUS-7486","10/07/2014 18:51:34","configuring staging profile to release to npm hosted repo should not be allowed","Create an npm hosted repo. Create a staging profile. You can select the npm hosted repo as the Release Repository. Stage an artifact. Try to release the staging repo. Release fails with 500 error. {noformat} jvm 1 | 2014-10-07 14:45:40,146-0300 INFO [qtp273957304-92] admin com.sonatype.nexus.staging.internal.DefaultStagingManager - Releasing staging repositories [stage-1000] jvm 1 | 2014-10-07 14:45:40,154-0300 WARN [qtp273957304-92] admin com.sonatype.nexus.staging.internal.DefaultStagingManager - Abort background; task preparations failed jvm 1 | java.lang.IllegalStateException: Repository: M2Repository(id=stage-1000) is not compatible with target repository: DefaultNpmHostedRepository(id=npm) jvm 1 | at com.google.common.base.Preconditions.checkState(Preconditions.java:200) ~[guava-16.0.1.jar:na] jvm 1 | at com.sonatype.nexus.staging.internal.task.RepositoryReleaseTask$ReleaseItem.(RepositoryReleaseTask.java:136) ~[nexus-staging-plugin-2.10.0-02/:na] jvm 1 | at com.sonatype.nexus.staging.internal.task.RepositoryReleaseTask$ReleaseItem.(RepositoryReleaseTask.java:125) ~[nexus-staging-plugin-2.10.0-02/:na] jvm 1 | at com.sonatype.nexus.staging.internal.task.RepositoryReleaseTask.createItem(RepositoryReleaseTask.java:203) ~[nexus-staging-plugin-2.10.0-02/:na] jvm 1 | at com.sonatype.nexus.staging.internal.task.RepositoryReleaseTask.createItem(RepositoryReleaseTask.java:1) ~[nexus-staging-plugin-2.10.0-02/:na] jvm 1 | at com.sonatype.nexus.staging.internal.task.OperationTaskSupport$1.doApply(OperationTaskSupport.java:125) ~[nexus-staging-plugin-2.10.0-02/:na] jvm 1 | at com.sonatype.nexus.staging.internal.task.OperationTaskSupport$1.doApply(OperationTaskSupport.java:1) ~[nexus-staging-plugin-2.10.0-02/:n {noformat} Expected: - do not allow npm hosted repos to be a release repository for a staging profile",1 +"NEXUS-7561","10/08/2014 14:11:53","Show ""Browse Storage"", ""Browse Remote"", ""Mirrors"", in ""Summary"" tab based on repository type","h3. Browse Remote Browse Remote parses remote HTML directory lists. Unless the remote publishes a parseable HTML directory listing, Browse Remote cannot work. Browse Remote should only be visible for Maven 1, Maven 2, P2, OBR repository types. ( although as stated, if remote is not publishing something parseable, still may not work ) h3. Browse Storage Show ""Browse Storage"" only for 'maven1', 'maven2', 'nugett', 'obr', 'p2', 'site' In the case of P2 proxy repo, the UI may timeout requesting the local storage contents, as the local storage triggers generating of a large content.xml which can take greater than the 60 second default UI timeout to render. h3. Mirror Show for hosted repos only for maven1 and maven2. h3. Summary Tab maven1, maven2, site ",1 +"NEXUS-7586","10/14/2014 12:25:57","No DEBUG log from staging plugin","When executing maven build using {{-X}} parameter that includes nexus-staging-maven-plugin, there is no DEBUG output (coming from relevant components, not from the Mojo itself)., while the components does log important things at DEBUG level. This makes nearly impossible (or just overly hard) to properly diagnose what happens during staging...",1 +"NEXUS-7594","10/17/2014 16:53:58","allow configuring https.protocols and https.cipherSuites on Nexus outbound HTTP client connections","In NEXUS-5526, a change was made to allow javax.net.* system properties to be set on the HTTP Client embedded within Nexus. https://github.com/sonatype/nexus-oss/commit/a7eb959b98b769cdfef190348f61e94b385ed32a#diff-35540aaccce768f70470408e7d8a0470 We have since regressed back to not allowing this: https://github.com/sonatype/nexus-oss/commit/6c6507c8daf1cf6110d5f1d63c4d28a25b62c563#diff-35540aaccce768f70470408e7d8a0470 And the attempt to backout changes did not restore use of the System connection factory method: https://github.com/sonatype/nexus-oss/commit/0ab135701ad42b169d8283fb8bddb110a3bd3bf7#diff-35540aaccce768f70470408e7d8a0470 In Nexus 2.8.0-05 we started including httpclient 4.3.x into Nexus. [httpclient 4.3.x system SSLSocketFactory started honouring https.protocols and https.ciphersuites|https://issues.apache.org/jira/browse/HTTPCLIENT-1343] - however in 2.8 our regression prevents setting protocols and ciphers on outbound connections from being an option for end users. So two problems: - it seems [we have regressed|https://github.com/sonatype/nexus-oss/commit/0ab135701ad42b169d8283fb8bddb110a3bd3bf7#diff-35540aaccce768f70470408e7d8a0470] honouring system properties that influence the outbound http connections - we don't expose a way to set https protocols and ciphers preferences on Nexus outbound connections ( https.protocols / https.ciphersuites ) Expected - make Nexus use the system socket factories provided by http client, so that standard javax.net system properties can influence outbound connections http://hc.apache.org/httpcomponents-client-4.3.x/httpclient/xref/org/apache/http/conn/ssl/SSLConnectionSocketFactory.html#162 ",2 +"NEXUS-7595","10/17/2014 20:35:42","disable insecure SSL protocols by default in jetty HTTPS sample configuration","As a best practice and in response to poodle.io, Nexus jetty-https.xml config files should disableinsecure protocols by default going forward. This effectively means disabling SSLv* protocols at present. Jetty 9.3 proper is doing this going forward. https://bugs.eclipse.org/bugs/show_bug.cgi?id=447381 ",0.5 +"NEXUS-7596","10/18/2014 00:52:53","programatically enforce minimum requirements for yum configuration including debug messages","Currently it is possible to enable YUM support (and in fact it is enabled by default in pro) even if no createrepo command is found. This can lead you down the track of configuring stuff for yum support and filling up the logs with exceptions that no createrepo command was found. It would be better to simply disable the capability if no command is found and not allow enabling it either, and instead presenting a useful error message in the UI that says you need to have createrepo and mergerepo on the path (and probably therefore run on Linux..) It should probably look for the mergerepo command as well. ",1 +"NEXUS-7603","10/22/2014 13:46:32","file content validation fails for application/x-msdownload jar files","Create a Maven 2 release proxy repo to https://maven.atlassian.com/content/groups/public/ Set file content validation to true. Request http://localhost:8081/nexus/content/repositories/atlassian/com/atlassian/support/healthcheck/support-healthcheck-plugin/1.0.3/support-healthcheck-plugin-1.0.3.jar This returns 404. The reason is content validation fails. {noformat} jvm 1 | 2014-10-22 09:26:43,113-0300 DEBUG [qtp1935993203-108] admin remote.storage.outbound - [atlassian] GET https://maven.atlassian.com/content/groups/public/com/atlassian/support/healthcheck/support-healthcheck-plugin/1.0.3/support-healthcheck-plugin-1.0.3.jar - 245.3 ms jvm 1 | 2014-10-22 09:26:43,192-0300 INFO [qtp1935993203-108] admin org.sonatype.nexus.proxy.maven.MavenFileTypeValidator - StorageFileItem atlassian:/com/atlassian/support/healthcheck/support-healthcheck-plugin/1.0.3/support-healthcheck-plugin-1.0.3.jar MIME-magic validation failed: expected MIME types: [application/java-archive], detected MIME types: [application/x-msdownload, application/x-msdownload, application/octet-stream] jvm 1 | 2014-10-22 09:26:43,192-0300 INFO [qtp1935993203-108] admin org.sonatype.nexus.proxy.repository.validator.DefaultFileTypeValidatorHub - File item atlassian:/com/atlassian/support/healthcheck/support-healthcheck-plugin/1.0.3/support-healthcheck-plugin-1.0.3.jar evaluated as INVALID during file type validation (validator=maven) jvm 1 | 2014-10-22 09:26:43,193-0300 INFO [qtp1935993203-108] admin org.sonatype.nexus.proxy.maven.maven2.M2Repository - Proxied item atlassian:/com/atlassian/support/healthcheck/support-healthcheck-plugin/1.0.3/support-healthcheck-plugin-1.0.3.jar evaluated as INVALID during content validation (validator=filetypevalidator, sourceUrl=https://maven.atlassian.com/content/groups/public/com/atlassian/support/healthcheck/support-healthcheck-plugin/1.0.3/support-healthcheck-plugin-1.0.3.jar) {noformat} Turns out this jar is correctly parsed by Apache Tika ( MIME lib Nexus uses ) as application/x-msdownload. https://github.com/apache/tika/blob/trunk/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml#L3039 Nexus thinks this should be application/java-archive Expected: - Nexus should treat this jar as the proper expected type and not fail content validation. Perhaps similar fix as we did in NEXUS-6271 for empty zip ",2 +"NEXUS-7609","10/22/2014 22:30:05","npm attribute storage corruption can lead to http 500 responses","Configure proxy to http://registry.npmjs.org Configure proxy server in nexus. Make these requests: curl -s -v -4 http://localhost:8081/nexus/content/repositories/npmjs/bower/-/bower-1.3.12.tgz gets 404 curl -s -v -4 http://localhost:8081/nexus/content/repositories/npmjs/bower gets 200 but nexus sends TWO requests to remote - see NEXUS-7616 ( this creates a file at nexus/storage/npmjs/.nexus/attributes/bower ) {noformat:title=bower contents} > cat bower {""storageItem-created"":""1414012676202"",""storageItem-checkedRemotely"":""9223372036854775807"",""storageItem-generation"":""2"",""proxyRepository-invalidationToken"":""1414012362178478000"",""storageItem-lastRequested"":""1414012676203"",""storageItem-modified"":""1414012676202"",""storageItem-readable"":""true"",""storageItem-expired"":""true"",""storageItem-repositoryId"":""npmjs"",""storageItem-writable"":""true"",""storageItem-path"":""/bower""} {noformat} Then request: curl -s -v -4 http://localhost:8081/nexus/content/repositories/npmjs/bower/-/bower-1.3.12.tgz Nexus returns 500 response. {quote} jvm 1 | 2014-10-22 18:08:44,370-0300 INFO [qtp991699868-92] admin org.sonatype.nexus.configuration.application.DefaultNexusConfiguration - Applying Nexus Configuration due to changes in [npmjs] made by admin... jvm 1 | 2014-10-22 18:08:44,390-0300 INFO [esh-1-thread-7] admin org.sonatype.nexus.events.RepositoryConfigurationUpdatedEventInspector - The Remote URL of repository ""npmjs"" (id=npmjs) has been changed, expiring its caches. jvm 1 | 2014-10-22 18:08:44,897-0300 INFO [pxpool-1-thread-1] admin org.sonatype.nexus.tasks.ExpireCacheTask - Scheduled task (ExpireCacheTask) started :: Expiring caches for repository npmjs from path null and below. jvm 1 | 2014-10-22 18:08:44,922-0300 INFO [pxpool-1-thread-1] admin org.sonatype.nexus.tasks.ExpireCacheTask - Scheduled task (ExpireCacheTask) finished :: Expiring caches for repository npmjs from path null and below. (started 2014-10-22T18:08:44-03:00, runtime 0:00:00.023) jvm 1 | 2014-10-22 18:08:44,930-0300 INFO [pxpool-1-thread-1] admin org.sonatype.nexus.configuration.application.DefaultNexusConfiguration - Applying Nexus Configuration due to changes in [Scheduled Tasks] made by *TASK... jvm 1 | 2014-10-22 18:09:29,872-0300 INFO [qtp991699868-89] admin org.sonatype.nexus.configuration.ModelUtils - Loading model /Users/plynch/Documents/qe-support/zen-6621/nexus-professional-2.10.0-02-bundle/sonatype-work/nexus/conf/pgp.xml jvm 1 | 2014-10-22 18:12:41,661-0300 INFO [qtp991699868-88] admin org.sonatype.nexus.configuration.application.DefaultNexusConfiguration - Applying Nexus Configuration due to changes in [npmjs] made by admin... jvm 1 | 2014-10-22 18:12:41,667-0300 INFO [esh-1-thread-10] admin org.sonatype.nexus.events.RepositoryConfigurationUpdatedEventInspector - The Remote URL of repository ""npmjs"" (id=npmjs) has been changed, expiring its caches. jvm 1 | 2014-10-22 18:12:42,171-0300 INFO [pxpool-1-thread-1] admin org.sonatype.nexus.tasks.ExpireCacheTask - Scheduled task (ExpireCacheTask) started :: Expiring caches for repository npmjs from path null and below. jvm 1 | 2014-10-22 18:12:42,180-0300 INFO [pxpool-1-thread-1] admin org.sonatype.nexus.tasks.ExpireCacheTask - Scheduled task (ExpireCacheTask) finished :: Expiring caches for repository npmjs from path null and below. (started 2014-10-22T18:12:42-03:00, runtime 0:00:00.009) jvm 1 | 2014-10-22 18:12:42,246-0300 INFO [pxpool-1-thread-1] admin org.sonatype.nexus.configuration.application.DefaultNexusConfiguration - Applying Nexus Configuration due to changes in [Scheduled Tasks] made by *TASK... jvm 1 | 2014-10-22 18:12:54,305-0300 INFO [qtp991699868-88] admin org.sonatype.nexus.configuration.application.DefaultNexusConfiguration - Applying Nexus Configuration due to changes in [SMTP Client, Notification Manager, Global Remote Connection Settings, Global Rest Api Settings, Global HTTP Proxy] made by admin... jvm 1 | 2014-10-22 18:12:54,412-0300 INFO [qtp991699868-92] admin org.sonatype.nexus.configuration.ModelUtils - Saving model /Users/plynch/Documents/qe-support/zen-6621/nexus-professional-2.10.0-02-bundle/sonatype-work/nexus/conf/pgp.xml jvm 1 | 2014-10-22 18:12:54,431-0300 INFO [qtp991699868-89] admin org.sonatype.nexus.configuration.ModelUtils - Saving model /Users/plynch/Documents/qe-support/zen-6621/nexus-professional-2.10.0-02-bundle/sonatype-work/nexus/conf/lvo-plugin.xml jvm 1 | 2014-10-22 18:17:55,776-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.client.protocol.RequestAddCookies - CookieSpec selected: ignoreCookies jvm 1 | 2014-10-22 18:17:55,777-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.client.protocol.RequestAuthCache - Auth cache not set in the context jvm 1 | 2014-10-22 18:17:55,778-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.impl.execchain.MainClientExec - Opening connection {}->http://localhost:8888->http://registry.npmjs.org:80 jvm 1 | 2014-10-22 18:17:55,779-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.impl.conn.HttpClientConnectionOperator - Connecting to localhost/127.0.0.1:8888 jvm 1 | 2014-10-22 18:17:55,780-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.impl.conn.HttpClientConnectionOperator - Connection established 127.0.0.1:51843<->127.0.0.1:8888 jvm 1 | 2014-10-22 18:17:55,780-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.impl.execchain.MainClientExec - Executing request GET http://registry.npmjs.org/bower HTTP/1.1 jvm 1 | 2014-10-22 18:17:55,780-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.impl.execchain.MainClientExec - Target auth state: UNCHALLENGED jvm 1 | 2014-10-22 18:17:55,780-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.impl.execchain.MainClientExec - Proxy auth state: UNCHALLENGED jvm 1 | 2014-10-22 18:17:55,781-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 >> GET http://registry.npmjs.org/bower HTTP/1.1 jvm 1 | 2014-10-22 18:17:55,781-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 >> accept: application/json jvm 1 | 2014-10-22 18:17:55,781-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 >> Host: registry.npmjs.org jvm 1 | 2014-10-22 18:17:55,781-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 >> Proxy-Connection: Keep-Alive jvm 1 | 2014-10-22 18:17:55,781-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 >> User-Agent: Nexus/2.10.0-02 (PRO; Mac OS X; 10.10; x86_64; 1.7.0_71) apacheHttpClient4x/2.10.0-02 jvm 1 | 2014-10-22 18:17:55,781-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 >> Accept-Encoding: gzip,deflate jvm 1 | 2014-10-22 18:17:55,909-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << HTTP/1.1 200 OK jvm 1 | 2014-10-22 18:17:55,909-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Server: CouchDB/1.5.0 (Erlang OTP/R16B03) jvm 1 | 2014-10-22 18:17:55,909-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Etag: ""5IH3YVKIZ3VMGKRZP2FHQWVQM"" jvm 1 | 2014-10-22 18:17:55,909-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Content-Type: application/json jvm 1 | 2014-10-22 18:17:55,909-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Cache-Control: max-age=60 jvm 1 | 2014-10-22 18:17:55,909-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Content-Length: 105338 jvm 1 | 2014-10-22 18:17:55,909-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Accept-Ranges: bytes jvm 1 | 2014-10-22 18:17:55,909-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Date: Wed, 22 Oct 2014 21:17:55 GMT jvm 1 | 2014-10-22 18:17:55,909-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Via: 1.1 varnish jvm 1 | 2014-10-22 18:17:55,909-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Age: 18 jvm 1 | 2014-10-22 18:17:55,909-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << X-Served-By: cache-jfk1025-JFK jvm 1 | 2014-10-22 18:17:55,909-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << X-Cache: HIT jvm 1 | 2014-10-22 18:17:55,909-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << X-Cache-Hits: 1 jvm 1 | 2014-10-22 18:17:55,909-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << X-Timer: S1414012675.831864,VS0,VE0 jvm 1 | 2014-10-22 18:17:55,910-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Vary: Accept jvm 1 | 2014-10-22 18:17:55,910-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Proxy-Connection: Keep-alive jvm 1 | 2014-10-22 18:17:55,910-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.impl.execchain.MainClientExec - Connection can be kept alive for 30000 MILLISECONDS jvm 1 | 2014-10-22 18:17:56,130-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.client.protocol.RequestAddCookies - CookieSpec selected: ignoreCookies jvm 1 | 2014-10-22 18:17:56,130-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.client.protocol.RequestAuthCache - Auth cache not set in the context jvm 1 | 2014-10-22 18:17:56,130-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.impl.execchain.MainClientExec - Executing request GET http://registry.npmjs.org/bower HTTP/1.1 jvm 1 | 2014-10-22 18:17:56,130-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.impl.execchain.MainClientExec - Target auth state: UNCHALLENGED jvm 1 | 2014-10-22 18:17:56,130-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.impl.execchain.MainClientExec - Proxy auth state: UNCHALLENGED jvm 1 | 2014-10-22 18:17:56,131-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 >> GET http://registry.npmjs.org/bower HTTP/1.1 jvm 1 | 2014-10-22 18:17:56,131-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 >> accept: application/json jvm 1 | 2014-10-22 18:17:56,131-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 >> if-none-match: ""5IH3YVKIZ3VMGKRZP2FHQWVQM"" jvm 1 | 2014-10-22 18:17:56,131-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 >> Host: registry.npmjs.org jvm 1 | 2014-10-22 18:17:56,131-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 >> Proxy-Connection: Keep-Alive jvm 1 | 2014-10-22 18:17:56,131-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 >> User-Agent: Nexus/2.10.0-02 (PRO; Mac OS X; 10.10; x86_64; 1.7.0_71) apacheHttpClient4x/2.10.0-02 jvm 1 | 2014-10-22 18:17:56,131-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 >> Accept-Encoding: gzip,deflate jvm 1 | 2014-10-22 18:17:56,161-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << HTTP/1.1 304 Not Modified jvm 1 | 2014-10-22 18:17:56,161-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Date: Wed, 22 Oct 2014 21:17:56 GMT jvm 1 | 2014-10-22 18:17:56,161-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Via: 1.1 varnish jvm 1 | 2014-10-22 18:17:56,161-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Last-Modified: Wed, 22 Oct 2014 21:17:55 GMT jvm 1 | 2014-10-22 18:17:56,161-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Cache-Control: max-age=60 jvm 1 | 2014-10-22 18:17:56,161-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << ETag: ""5IH3YVKIZ3VMGKRZP2FHQWVQM"" jvm 1 | 2014-10-22 18:17:56,162-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Age: 18 jvm 1 | 2014-10-22 18:17:56,162-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << X-Served-By: cache-jfk1025-JFK jvm 1 | 2014-10-22 18:17:56,162-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << X-Cache: HIT jvm 1 | 2014-10-22 18:17:56,162-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << X-Cache-Hits: 2 jvm 1 | 2014-10-22 18:17:56,162-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << X-Timer: S1414012676.085727,VS0,VE0 jvm 1 | 2014-10-22 18:17:56,162-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Vary: Accept jvm 1 | 2014-10-22 18:17:56,162-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.headers - http-outgoing-12 << Proxy-Connection: Keep-alive jvm 1 | 2014-10-22 18:17:56,162-0300 DEBUG [qtp991699868-91] anonymous org.apache.http.impl.execchain.MainClientExec - Connection can be kept alive for 30000 MILLISECONDS jvm 1 | 2014-10-22 18:18:27,769-0300 DEBUG [HC4x-EvictingThread] *SYSTEM org.apache.http.impl.conn.CPool - Connection [id:12][route:{}->http://localhost:8888->http://registry.npmjs.org:80][state:null] expired @ Wed Oct 22 18:18:26 ADT 2014 jvm 1 | 2014-10-22 18:18:27,769-0300 DEBUG [HC4x-EvictingThread] *SYSTEM org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-12: Close connection jvm 1 | 2014-10-22 18:23:33,581-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.client.protocol.RequestAddCookies - CookieSpec selected: ignoreCookies jvm 1 | 2014-10-22 18:23:33,581-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.client.protocol.RequestAuthCache - Auth cache not set in the context jvm 1 | 2014-10-22 18:23:33,581-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.impl.execchain.MainClientExec - Opening connection {}->http://localhost:8888->http://registry.npmjs.org:80 jvm 1 | 2014-10-22 18:23:33,582-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.impl.conn.HttpClientConnectionOperator - Connecting to localhost/127.0.0.1:8888 jvm 1 | 2014-10-22 18:23:33,582-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.impl.conn.HttpClientConnectionOperator - Connection established 127.0.0.1:51884<->127.0.0.1:8888 jvm 1 | 2014-10-22 18:23:33,582-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.impl.execchain.MainClientExec - Executing request GET http://registry.npmjs.org/bower/-/bower-1.3.12.tgz HTTP/1.1 jvm 1 | 2014-10-22 18:23:33,582-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.impl.execchain.MainClientExec - Target auth state: UNCHALLENGED jvm 1 | 2014-10-22 18:23:33,583-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.impl.execchain.MainClientExec - Proxy auth state: UNCHALLENGED jvm 1 | 2014-10-22 18:23:33,583-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 >> GET http://registry.npmjs.org/bower/-/bower-1.3.12.tgz HTTP/1.1 jvm 1 | 2014-10-22 18:23:33,583-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 >> Accept: application/x-gzip jvm 1 | 2014-10-22 18:23:33,583-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 >> Host: registry.npmjs.org jvm 1 | 2014-10-22 18:23:33,583-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 >> Proxy-Connection: Keep-Alive jvm 1 | 2014-10-22 18:23:33,583-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 >> User-Agent: Nexus/2.10.0-02 (PRO; Mac OS X; 10.10; x86_64; 1.7.0_71) jvm 1 | 2014-10-22 18:23:33,583-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 >> Accept-Encoding: gzip,deflate jvm 1 | 2014-10-22 18:23:33,725-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << HTTP/1.1 200 OK jvm 1 | 2014-10-22 18:23:33,725-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << Server: nginx/1.4.6 (Ubuntu) jvm 1 | 2014-10-22 18:23:33,725-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << Content-Type: application/octet-stream jvm 1 | 2014-10-22 18:23:33,725-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << Last-Modified: Sun, 28 Sep 2014 16:41:33 GMT jvm 1 | 2014-10-22 18:23:33,725-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << ETag: ""54283a3d-1ca45"" jvm 1 | 2014-10-22 18:23:33,725-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << Expires: Thu, 23 Oct 2014 00:11:37 GMT jvm 1 | 2014-10-22 18:23:33,725-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << Access-Control-Allow-Origin: * jvm 1 | 2014-10-22 18:23:33,725-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << Access-Control-Allow-Methods: GET jvm 1 | 2014-10-22 18:23:33,725-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << Cache-Control: max-age=21600 jvm 1 | 2014-10-22 18:23:33,725-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << Content-Length: 117317 jvm 1 | 2014-10-22 18:23:33,726-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << Accept-Ranges: bytes jvm 1 | 2014-10-22 18:23:33,726-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << Date: Wed, 22 Oct 2014 21:23:33 GMT jvm 1 | 2014-10-22 18:23:33,726-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << Via: 1.1 varnish jvm 1 | 2014-10-22 18:23:33,726-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << Age: 11665 jvm 1 | 2014-10-22 18:23:33,726-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << X-Served-By: cache-atl6227-ATL jvm 1 | 2014-10-22 18:23:33,726-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << X-Cache: HIT jvm 1 | 2014-10-22 18:23:33,726-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << X-Cache-Hits: 1 jvm 1 | 2014-10-22 18:23:33,726-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << X-Timer: S1414013013.621243,VS0,VE17 jvm 1 | 2014-10-22 18:23:33,726-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.headers - http-outgoing-13 << Proxy-Connection: Keep-alive jvm 1 | 2014-10-22 18:23:33,726-0300 DEBUG [qtp991699868-89] anonymous org.apache.http.impl.execchain.MainClientExec - Connection can be kept alive for 30000 MILLISECONDS jvm 1 | 2014-10-22 18:23:33,912-0300 INFO [qtp991699868-89] anonymous org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage - Updating remote transport for proxy repository ""npmjs"" [id=npmjs]... jvm 1 | 2014-10-22 18:23:33,913-0300 WARN [qtp991699868-89] anonymous com.bolyuba.nexus.plugin.npm.proxy.DefaultNpmProxyRepository - Remote peer of proxy repository ""npmjs"" [id=npmjs] threw a org.sonatype.nexus.proxy.RemoteStorageException exception. Connection/transport problems occured while connecting to remote peer of the 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): NPM service error > Cannot store attributes! > Could not create the directory hierarchy in repository ""npmjs"" [id=npmjs] to write ""/Users/plynch/Documents/qe-support/zen-6621/nexus-professional-2.10.0-02-bundle/sonatype-work/nexus/storage/npmjs/.nexus/attributes/bower/-"" > /Users/plynch/Documents/qe-support/zen-6621/nexus-professional-2.10.0-02-bundle/sonatype-work/nexus/storage/npmjs/.nexus/attributes/bower/-: Not a directory jvm 1 | 2014-10-22 18:23:33,914-0300 INFO [RepositoryStatusChecker-npmjs] admin com.bolyuba.nexus.plugin.npm.proxy.DefaultNpmProxyRepository-npmjs - Next attempt to auto-unblock the ""npmjs"" (id=npmjs) repository by checking its remote peer health will occur in 40 seconds. jvm 1 | 2014-10-22 18:23:33,921-0300 WARN [qtp991699868-89] anonymous org.sonatype.nexus.content.internal.ContentServlet - org.sonatype.nexus.proxy.LocalStorageException: Exception during reading up an item from FS storage!, caused by: org.sonatype.nexus.proxy.LocalStorageException: Could not create the directory hierarchy in repository ""npmjs"" [id=npmjs] to write ""/Users/plynch/Documents/qe-support/zen-6621/nexus-professional-2.10.0-02-bundle/sonatype-work/nexus/storage/npmjs/.nexus/attributes/bower/-"", caused by: java.nio.file.FileSystemException: /Users/plynch/Documents/qe-support/zen-6621/nexus-professional-2.10.0-02-bundle/sonatype-work/nexus/storage/npmjs/.nexus/attributes/bower/-: Not a directory [client=127.0.0.1,ua=curl/7.37.0,req=GET http://localhost:8081/nexus/content/repositories/npmjs/bower/-/bower-1.3.12.tgz] jvm 1 | 2014-10-22 18:24:08,002-0300 DEBUG [HC4x-EvictingThread] *SYSTEM org.apache.http.impl.conn.CPool - Connection [id:13][route:{}->http://localhost:8888->http://registry.npmjs.org:80][state:null] expired @ Wed Oct 22 18:24:03 ADT 2014 jvm 1 | 2014-10-22 18:24:08,003-0300 DEBUG [HC4x-EvictingThread] *SYSTEM org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-13: Close connection jvm 1 | 2014-10-22 18:24:13,918-0300 INFO [RepositoryStatusChecker-npmjs] admin com.bolyuba.nexus.plugin.npm.proxy.DefaultNpmProxyRepository-npmjs - Next attempt to auto-unblock the ""npmjs"" (id=npmjs) repository by checking its remote peer health will occur in 1 minute 20 seconds. jvm 1 | 2014-10-22 18:24:13,919-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.client.protocol.RequestAddCookies - CookieSpec selected: ignoreCookies jvm 1 | 2014-10-22 18:24:13,919-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.client.protocol.RequestAuthCache - Auth cache not set in the context jvm 1 | 2014-10-22 18:24:13,920-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.impl.execchain.MainClientExec - Opening connection {}->http://localhost:8888->http://registry.npmjs.org:80 jvm 1 | 2014-10-22 18:24:13,921-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.impl.conn.HttpClientConnectionOperator - Connecting to localhost/127.0.0.1:8888 jvm 1 | 2014-10-22 18:24:13,921-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.impl.conn.HttpClientConnectionOperator - Connection established 127.0.0.1:51896<->127.0.0.1:8888 jvm 1 | 2014-10-22 18:24:13,921-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.impl.execchain.MainClientExec - Executing request HEAD http://registry.npmjs.org/ HTTP/1.1 jvm 1 | 2014-10-22 18:24:13,921-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.impl.execchain.MainClientExec - Target auth state: UNCHALLENGED jvm 1 | 2014-10-22 18:24:13,921-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.impl.execchain.MainClientExec - Proxy auth state: UNCHALLENGED jvm 1 | 2014-10-22 18:24:13,922-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 >> HEAD http://registry.npmjs.org/ HTTP/1.1 jvm 1 | 2014-10-22 18:24:13,922-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 >> Accept: */* jvm 1 | 2014-10-22 18:24:13,922-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 >> Accept-Language: en-us jvm 1 | 2014-10-22 18:24:13,922-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 >> Accept-Encoding: gzip,deflate,identity jvm 1 | 2014-10-22 18:24:13,922-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 >> Cache-Control: no-cache jvm 1 | 2014-10-22 18:24:13,922-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 >> Host: registry.npmjs.org jvm 1 | 2014-10-22 18:24:13,922-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 >> Proxy-Connection: Keep-Alive jvm 1 | 2014-10-22 18:24:13,922-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 >> User-Agent: Nexus/2.10.0-02 (PRO; Mac OS X; 10.10; x86_64; 1.7.0_71) apacheHttpClient4x/2.10.0-02 jvm 1 | 2014-10-22 18:24:14,363-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 << HTTP/1.1 200 OK jvm 1 | 2014-10-22 18:24:14,363-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 << Server: CouchDB/1.5.0 (Erlang OTP/R16B03) jvm 1 | 2014-10-22 18:24:14,363-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 << Content-Type: text/plain; charset=utf-8 jvm 1 | 2014-10-22 18:24:14,363-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 << Cache-Control: max-age=60 jvm 1 | 2014-10-22 18:24:14,363-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 << Content-Length: 259 jvm 1 | 2014-10-22 18:24:14,363-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 << Accept-Ranges: bytes jvm 1 | 2014-10-22 18:24:14,363-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 << Date: Wed, 22 Oct 2014 21:24:14 GMT jvm 1 | 2014-10-22 18:24:14,363-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 << Via: 1.1 varnish jvm 1 | 2014-10-22 18:24:14,363-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 << Age: 0 jvm 1 | 2014-10-22 18:24:14,363-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 << X-Served-By: cache-jfk1024-JFK jvm 1 | 2014-10-22 18:24:14,364-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 << X-Cache: MISS jvm 1 | 2014-10-22 18:24:14,364-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 << X-Cache-Hits: 0 jvm 1 | 2014-10-22 18:24:14,364-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 << X-Timer: S1414013053.934079,VS0,VE349 jvm 1 | 2014-10-22 18:24:14,364-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.headers - http-outgoing-14 << Proxy-Connection: Keep-alive jvm 1 | 2014-10-22 18:24:14,364-0300 DEBUG [proxy-3-thread-8] admin org.apache.http.impl.execchain.MainClientExec - Connection can be kept alive for 30000 MILLISECONDS jvm 1 | 2014-10-22 18:24:14,365-0300 WARN [proxy-3-thread-8] admin com.bolyuba.nexus.plugin.npm.proxy.DefaultNpmProxyRepository - Remote peer of proxy repository ""npmjs"" [id=npmjs] detected as healthy, un-blocking the proxy repository (it was AutoBlocked by Nexus). jvm 1 | 2014-10-22 18:24:48,036-0300 DEBUG [HC4x-EvictingThread] *SYSTEM org.apache.http.impl.conn.CPool - Connection [id:14][route:{}->http://localhost:8888->http://registry.npmjs.org:80][state:null] expired @ Wed Oct 22 18:24:44 ADT 2014 jvm 1 | 2014-10-22 18:24:48,037-0300 DEBUG [HC4x-EvictingThread] *SYSTEM org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-14: Close connection {quote} ",1 +"NEXUS-7614","10/23/2014 01:55:11","npm install cmd can trigger nexus NPE and 500 status when remote returns non-standard fields and stub attachments","Hi guys, After solving problems with the environment (apparently HTTP Proxy), we are now with another behavior: the server returns a NullPointerException while I use ""npm install""... For instance, npm client tried to install an app and here's the output collected in the Nexus logs. Have you seen this before? 2014-10-22 17:51:57 WARN [p933859241-1983] - org.sonatype.nexus.content.internal.ContentServlet - null [client=172.18.51.2,ua=npm/1.4.9 node/v0.10.32 linux x64,req=GET http://pprfirmas302.corp.intuit.net:8081/nexus/content/groups/npm-all/gulp-jshint] java.lang.NullPointerException: null at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parsePackageAttachment(MetadataParser.java:241) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parsePackageAttachments(MetadataParser.java:211) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parsePackageRoot(MetadataParser.java:155) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parsePackageRoot(MetadataParser.java:100) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.proxy.HttpProxyMetadataTransport.fetchPackageRoot(HttpProxyMetadataTransport.java:147) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl.mayUpdatePackageRoot(ProxyMetadataServiceImpl.java:203) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl.doGeneratePackageRoot(ProxyMetadataServiceImpl.java:189) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.generatePackageRoot(GeneratorSupport.java:108) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.GroupMetadataServiceImpl.doGeneratePackageRoot(GroupMetadataServiceImpl.java:68) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.generatePackageRoot(GeneratorSupport.java:108) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.producePackageRoot(GeneratorSupport.java:77) ~[na:na] at com.bolyuba.nexus.plugin.npm.group.DefaultNpmGroupRepository.doRetrieveLocalItem(DefaultNpmGroupRepository.java:136) ~[na:na] at org.sonatype.nexus.proxy.repository.AbstractRepository.doRetrieveItem(AbstractRepository.java:1230) ~[nexus-core-2.10.0-02.jar:2.10.0-02] at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.doRetrieveItem(AbstractGroupRepository.java:237) ~[nexus-core-2.10.0-02.jar:2.10.0-02] at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:758) ~[nexus-core-2.10.0-02.jar:2.10.0-02] at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:590) ~[nexus-core-2.10.0-02.jar:2.10.0-02] at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:155) ~[nexus-core-2.10.0-02.jar:2.10.0-02] at org.sonatype.nexus.content.internal.ContentServlet.doGet(ContentServlet.java:387) [nexus-content-plugin-2.10.0-02/:na] at org.sonatype.nexus.content.internal.ContentServlet.service(ContentServlet.java:353) [nexus-content-plugin-2.10.0-02/:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) [javax.servlet-3.0.0.v201112011016.jar:na] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:288) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:278) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [guice-servlet-3.1.10.jar:3.1.10] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [shiro-web-1.2.2.jar:1.2.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [shiro-web-1.2.2.jar:1.2.2] at org.sonatype.nexus.web.internal.SecurityFilter.executeChain(SecurityFilter.java:73) [nexus-core-2.10.0-02.jar:2.10.0-02] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:135) [nexus-licensing-plugin-2.10.0-02/:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] at com.yammer.metrics.web.WebappMetricsFilter.doFilter(WebappMetricsFilter.java:76) [metrics-web-2.2.0.jar:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.CommonHeadersFilter.doFilter(CommonHeadersFilter.java:69) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.ErrorPageFilter.doFilter(ErrorPageFilter.java:71) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:70) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-02.jar:2.10.0-02] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterPipeline.dispatch(NexusGuiceFilter.java:56) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:132) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:129) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:206) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:129) [guice-servlet-3.1.10.jar:3.1.10] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) [jetty-security-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at com.yammer.metrics.jetty.InstrumentedHandler.handle(InstrumentedHandler.java:200) [metrics-jetty-2.2.0.jar:na] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.Server.handle(Server.java:370) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) [jetty-http-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) [jetty-http-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) [jetty-io-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) [jetty-io-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_72] 2014-10-22 17:51:57 WARN [p933859241-1982] - org.sonatype.nexus.content.internal.ContentServlet - null [client=172.18.51.2,ua=npm/1.4.9 node/v0.10.32 linux x64,req=GET http://pprfirmas302.corp.intuit.net:8081/nexus/content/groups/npm-all/gulp-shell] java.lang.NullPointerException: null at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parsePackageAttachment(MetadataParser.java:241) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parsePackageAttachments(MetadataParser.java:211) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parsePackageRoot(MetadataParser.java:155) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parsePackageRoot(MetadataParser.java:100) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.proxy.HttpProxyMetadataTransport.fetchPackageRoot(HttpProxyMetadataTransport.java:147) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl.mayUpdatePackageRoot(ProxyMetadataServiceImpl.java:203) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl.doGeneratePackageRoot(ProxyMetadataServiceImpl.java:189) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.generatePackageRoot(GeneratorSupport.java:108) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.GroupMetadataServiceImpl.doGeneratePackageRoot(GroupMetadataServiceImpl.java:68) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.generatePackageRoot(GeneratorSupport.java:108) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.producePackageRoot(GeneratorSupport.java:77) ~[na:na] at com.bolyuba.nexus.plugin.npm.group.DefaultNpmGroupRepository.doRetrieveLocalItem(DefaultNpmGroupRepository.java:136) ~[na:na] at org.sonatype.nexus.proxy.repository.AbstractRepository.doRetrieveItem(AbstractRepository.java:1230) ~[nexus-core-2.10.0-02.jar:2.10.0-02] at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.doRetrieveItem(AbstractGroupRepository.java:237) ~[nexus-core-2.10.0-02.jar:2.10.0-02] at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:758) ~[nexus-core-2.10.0-02.jar:2.10.0-02] at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:590) ~[nexus-core-2.10.0-02.jar:2.10.0-02] at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:155) ~[nexus-core-2.10.0-02.jar:2.10.0-02] at org.sonatype.nexus.content.internal.ContentServlet.doGet(ContentServlet.java:387) [nexus-content-plugin-2.10.0-02/:na] at org.sonatype.nexus.content.internal.ContentServlet.service(ContentServlet.java:353) [nexus-content-plugin-2.10.0-02/:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) [javax.servlet-3.0.0.v201112011016.jar:na] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:288) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:278) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [guice-servlet-3.1.10.jar:3.1.10] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [shiro-web-1.2.2.jar:1.2.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [shiro-web-1.2.2.jar:1.2.2] at org.sonatype.nexus.web.internal.SecurityFilter.executeChain(SecurityFilter.java:73) [nexus-core-2.10.0-02.jar:2.10.0-02] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.2.jar:1.2.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:135) [nexus-licensing-plugin-2.10.0-02/:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] at com.yammer.metrics.web.WebappMetricsFilter.doFilter(WebappMetricsFilter.java:76) [metrics-web-2.2.0.jar:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.CommonHeadersFilter.doFilter(CommonHeadersFilter.java:69) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.ErrorPageFilter.doFilter(ErrorPageFilter.java:71) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:70) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.10.0-02.jar:2.10.0-02] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterPipeline.dispatch(NexusGuiceFilter.java:56) [nexus-core-2.10.0-02.jar:2.10.0-02] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:132) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:129) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:206) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:129) [guice-servlet-3.1.10.jar:3.1.10] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) [jetty-security-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at com.yammer.metrics.jetty.InstrumentedHandler.handle(InstrumentedHandler.java:200) [metrics-jetty-2.2.0.jar:na] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.Server.handle(Server.java:370) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) [jetty-http-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) [jetty-http-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) [jetty-io-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) [jetty-io-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_72] ",1 +"NEXUS-7615","10/23/2014 12:05:47","add support for npm deprecate","Acceptance Criteria: - Add and test support for the ability to use the npm deprecate command to deprecate a package - Add and test support for the ability to use the npm deprecate command to UNdeprecate a package - Visually show that the package has been deprecated in Search and Browse This is the alternative for npm unpublish ( NEXUS-6892 )",1 +"NEXUS-7627","10/28/2014 15:53:51","Nexus BUG in ""rubygems-proxy"" ItemNotFoundException during cache","Found in logs during performing test scenarios (see NEXUS-7607). jvm 1 | 2014-10-28 14:21:44,922+0100 WARN [qtp1187179057-85] anonymous org.sonatype.nexus.plugins.ruby.proxy.DefaultProxyRubyRepository - Nexus BUG in ""rubygems-proxy"" [id=rubygems-proxy], ItemNotFoundException during cache! Please report this issue along with the stack trace below! jvm 1 | org.sonatype.nexus.proxy.ItemNotFoundException: Path /api/v1/dependencies?gems=pattern-match, not found in local storage of repository ""rubygems-proxy"" [id=rubygems-proxy] jvm 1 | at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage.retrieveItemFromFile(DefaultFSLocalRepositoryStorage.java:267) ~[nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage.retrieveItem(DefaultFSLocalRepositoryStorage.java:292) ~[nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractRepository.doRetrieveLocalItem(AbstractRepository.java:1238) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doCacheItem(AbstractProxyRepository.java:910) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.plugins.ruby.proxy.DefaultProxyRubyRepository.doCacheItem(DefaultProxyRubyRepository.java:180) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveRemoteItem(AbstractProxyRepository.java:1413) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.plugins.ruby.proxy.DefaultProxyRubyRepository.doRetrieveRemoteItem(DefaultProxyRubyRepository.java:193) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem0(AbstractProxyRepository.java:1147) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem(AbstractProxyRepository.java:1030) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:758) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.plugins.ruby.proxy.DefaultProxyRubyRepository.retrieveDirectItem(DefaultProxyRubyRepository.java:219) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.plugins.ruby.proxy.ProxyNexusStorage.retrieve(ProxyNexusStorage.java:48) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.layout.ProxiedGETLayout.retrieveAll(ProxiedGETLayout.java:59) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.layout.GETLayout.bundlerApiFile(GETLayout.java:114) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.api.ApiV1DependenciesCuba.on(ApiV1DependenciesCuba.java:50) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.State.nested(State.java:55) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.api.ApiV1Cuba.on(ApiV1Cuba.java:46) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.State.nested(State.java:61) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.api.ApiCuba.on(ApiCuba.java:49) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.State.nested(State.java:61) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.RootCuba.on(RootCuba.java:66) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.State.nested(State.java:61) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.RubygemsFileSystem.visit(RubygemsFileSystem.java:84) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.RubygemsFileSystem.get(RubygemsFileSystem.java:60) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.plugins.ruby.NexusRubygemsFacade.get(NexusRubygemsFacade.java:60) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.plugins.ruby.proxy.DefaultProxyRubyRepository.retrieveItem(DefaultProxyRubyRepository.java:241) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.doRetrieveItems(AbstractGroupRepository.java:451) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.plugins.ruby.group.GroupNexusStorage.retrieve(GroupNexusStorage.java:193) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.layout.ProxiedGETLayout.retrieveAll(ProxiedGETLayout.java:59) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.layout.GETLayout.bundlerApiFile(GETLayout.java:114) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.api.ApiV1DependenciesCuba.on(ApiV1DependenciesCuba.java:50) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.State.nested(State.java:55) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.api.ApiV1Cuba.on(ApiV1Cuba.java:46) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.State.nested(State.java:61) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.api.ApiCuba.on(ApiCuba.java:49) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.State.nested(State.java:61) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.RootCuba.on(RootCuba.java:66) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.State.nested(State.java:61) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.RubygemsFileSystem.visit(RubygemsFileSystem.java:84) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.RubygemsFileSystem.get(RubygemsFileSystem.java:60) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.plugins.ruby.NexusRubygemsFacade.get(NexusRubygemsFacade.java:60) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.plugins.ruby.group.DefaultRubyGroupRepository.retrieveItem(DefaultRubyGroupRepository.java:128) [nexus-ruby-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:590) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:155) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.content.internal.ContentServlet.doGet(ContentServlet.java:387) [nexus-content-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.content.internal.ContentServlet.service(ContentServlet.java:353) [nexus-content-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) [javax.servlet-3.0.0.v201112011016.jar:na] jvm 1 | at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:288) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:278) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.sonatype.nexus.web.internal.SecurityFilter.executeChain(SecurityFilter.java:73) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:135) [nexus-licensing-plugin-2.11.0-SNAPSHOT/:na] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.yammer.metrics.web.WebappMetricsFilter.doFilter(WebappMetricsFilter.java:76) [metrics-web-2.2.0.jar:na] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.CommonHeadersFilter.doFilter(CommonHeadersFilter.java:69) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.ErrorPageFilter.doFilter(ErrorPageFilter.java:71) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:70) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterPipeline.dispatch(NexusGuiceFilter.java:56) [nexus-core-2.11.0-SNAPSHOT.jar:2.11.0-SNAPSHOT] jvm 1 | at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:132) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:129) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:206) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:129) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) [jetty-security-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at com.yammer.metrics.jetty.InstrumentedHandler.handle(InstrumentedHandler.java:200) [metrics-jetty-2.2.0.jar:na] jvm 1 | at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.Server.handle(Server.java:370) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) [jetty-http-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) [jetty-http-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) [jetty-io-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) [jetty-io-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] jvm 1 | at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71] jvm 1 | 2014-10-28 14:23:08,834+0100 WARN [qtp1187179057-83] anonymous org.sonatype.nexus.content.internal.ContentServlet - org.eclipse.jetty.io.EofException, caused by: java.io.IOException: Broken pipe [client=127.0.0.1,ua=Ruby, RubyGems/2.1.9 universal-java-1.7 Ruby/1.9.3 (2014-09-25 patchlevel 392) jruby,req=GET http://localhost:8081/nexus/content/repositories/rubygems-group/gems/jruby-jars-1.7.16.gem] ",1 +"NEXUS-7634","10/28/2014 18:39:41","Live style guide","Implement the 8shapes visual index as a tab in the developer console. Reference: https://www.dropbox.com/sh/hh02tj5th6dsh2q/AABNgGt8ZNk41i-ZlzvSZSLsa/visual%20index?dl=0#lh:null-Sonatype%20Nexus%20Visual%20Index.psd Out of scope items: - Icons (we aren’t using all the icons represented in the style guide)",5 +"NEXUS-7638","10/28/2014 20:29:28","Change quick search clear icon to grayscale","The light-blue hover/focus/click states look wrong against that dark gray background. Consider switching to grayscale or a stronger blue.",1 +"NEXUS-7646","10/29/2014 18:26:20","CLM server password is not removed from support tool zip configuration","The clm server password is not removed from the capabilities.xml file in a generated support zip: {code:XML} 1 149589872f8674 clm username nexus properties password {ytt7g/xp2PUHBzzEd+hCgEjDcBtg/VJvBy0ODZD5AAA=} url http://localhost:8070 {code}",1 +"NEXUS-7650","10/31/2014 11:55:58","Upgrade to Apache Tika 1.7 for better mime detection","As proper fix for issue NEXUS-7603 is implemented in it, see https://issues.apache.org/jira/browse/TIKA-1461 Current circumvention is bad, as proper fix requires mime XML database changes (not doable via custom-mimetypes), so we could only do a ""patch release"" to properly fix it. Once 1.7 is out, we should integrate it,",1 +"NEXUS-7652","11/03/2014 18:33:40","SSL certificates added using load from server option only use direct socket connection","Configure Nexus to use proxy server which can write it's own SSL certificate in place of the actual remote certificate. ( ie. Charles proxy ). For example, configure it to SSL proxy https://nvd.nist.gov In Nexus, Go to SSL Certificates and click Add... Load From Server... Enter nvd.nist.gov and click Load Certificate button. Nexus UI sends a request similar to: bq. 'http://localhost:8081/nexus/service/siesta/ssl/certificates?_dc=1415038245066&host=nvd.nist.gov&port=443' Nexus certificates resource tries to make a direct socket connection to the remote instead of https connection. This is by design. Now enter https://nvd.nist.gov and click Load Certificate button. Nexus *still* tries to make a direct socket connection. Notice the url sent to Nexus backend is still: bq. 'http://localhost:8081/nexus/service/siesta/ssl/certificates?_dc=1415038245066&host=nvd.nist.gov&port=443' It seems to be missing the 'protocolHint' parameter. https://github.com/sonatype/nexus-pro/blob/nexus-2.10.x/plugins/security/nexus-ssl-plugin/src/main/java/com/sonatype/nexus/ssl/plugin/internal/rest/CertificatesResource.java#L91-91 Nexus 2.8.0 does the same thing. The problem this creates is it is very common proxy servers overwrite remote certs. Without using https instead of direct socket, it is easy to trust the wrong cert. or not be able to trust the correct cert unless you manually get the pem file externally and upload it. Expected: When http or https is specified, the internal http client with correct proxy settings should be used to get the remote cert and present that to the end user. ",0.5 +"NEXUS-7653","11/04/2014 14:30:26","Karaf status and stop commands depend on the shutdown port","We either need to re-enable the random shutdown port (but disable it for any tests, as it causes issues wrt. port allocation) or preferably enhance the status and stop commands to work with a PID file like in Nx2.",1 +"NEXUS-7659","11/05/2014 16:11:34","disable SSLv3 for outbound requests by default","bq. Oracle recommends that users and developers disable use of the SSLv3 protocol. http://www.oracle.com/technetwork/java/javase/documentation/cve-2014-3566-2342133.html Referenced from release notes: http://www.oracle.com/technetwork/java/javase/7u71-relnotes-2296187.html http://www.oracle.com/technetwork/java/javase/8u25-relnotes-2296185.html At the bottom of the article is a suggested approach in code to use to disable SSLv3 explicitly by default. Nexus should do this as well by default for outbound requests. Only apply this default exclusion in case where https.protocols system property is not set. ( per NEXUS-7594 ) ",2 +"NEXUS-7675","11/11/2014 22:03:25","Convert the metrics frames to the light panel treatment","Current treatment: !Screen Shot 2014-11-11 at 2.01.16 PM.png|thumbnail! Light panels (for reference): !Screen Shot 2014-11-11 at 2.02.53 PM.png|thumbnail!",1 +"NEXUS-7693","11/12/2014 15:42:16","Inconsistency in handling of repository targets for NuGet","If you send a delete request to a NuGet repository the path used to resolve the repository target permissions does not include the leading ""/"". This is inconsistent with other repositories in Nexus. For instance, this command: {quote} NuGet.exe delete SonatypeNexusCSharp 1.0.0 -ApiKey 3fa626ae-e597-3840-96fe-caa35a7f7bed -Source http://192.168.1.50:8081/nexus/service/local/nuget/nnn {quote} Results in a path of ""SonatypeNexusCSharp/1.0.0"" being used: {quote} 2014-11-12 09:33:43 DEBUG [qtp327533081-125] rich org.sonatype.nexus.proxy.targets.DefaultTargetRegistry - Resolving targets for repository='nugroup' for path='SonatypeNexusCSharp/1.0.0' {quote} This means a standard target of ""/SonatypeNexusCSharp/.*"" used in a repository target permission will not match. If you try the same delete through the UI the request will go through ""/service/local/repositories//content"", and the target starting with ""/"" will work. *Workaround* Change the regular expression in the target to indicate the leading ""/"" is optional. For example: {code} /?SonatypeNexusCSharp/.* {code} ",0.5 +"NEXUS-7696","11/12/2014 16:19:14","""Logs (read)"" privilege doesn't give access to /service/siesta/logging/log","The ""Logs (read)"" privilege maps to the ""nexus:logs"" privilege. But access to ""/service/siesta/logging/log"" requires ""nexus:log"". This means that granting access to ""logs (read)"" doesn't let a user see the log in the UI.",0.5 +"NEXUS-7699","11/12/2014 21:39:59","downloading specific versions of NuGet packages via Visual Studio package manager console fails","Download of older versions of NuGet packages using the Visual studio NuGet package manager console doesn't work unless the packages are already cached in Nexus. {quote} PM> Install-Package -Id Google.ProtocolBuffers -Version 2.3.0.277 Install-Package : Unable to find version '2.3.0.277' of package 'Google.ProtocolBuffers'. At line:1 char:16 + Install-Package <<<< -Id Google.ProtocolBuffers -Version 2.3.0.277 + CategoryInfo : NotSpecified: (:) [Install-Package], InvalidOperationException + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand {quote} This fails. But then download it directly into Nexus via GET request: {quote} curl http://localhost:8081/nexus/service/local/nuget/nugroup/Google.ProtocolBuffers/2.3.0.277 > /dev/null {quote} After this the download from PM works: {quote} PM> Install-Package -Id Google.ProtocolBuffers -Version 2.3.0.277 Installing 'Google.ProtocolBuffers 2.3.0.277'. Successfully installed 'Google.ProtocolBuffers 2.3.0.277'. Adding 'Google.ProtocolBuffers 2.3.0.277' to SonatypeNexusCSharp. Successfully added 'Google.ProtocolBuffers 2.3.0.277' to SonatypeNexusCSharp. {quote} The query which fails (and then succeeds) is: {quote} http://localhost:8081/nexus/service/local/nuget/nugroup/Packages%28Id=%27Google.ProtocolBuffers%27,Version=%272.3.0.277%27%29 {quote} ",3 +"NEXUS-7713","11/13/2014 19:24:59","Not Found Cache TTL set to any negative value caches not found artifacts for 2 minutes","Set Not Found Cache TTL to 0 - this caches not found request infinitely Set not Found Cache TTL to -1 - this caches NFC for 2 minutes. Expected: Anecdotally -1 has been used in the past to disable the not found cache for a repo. Has something changed? ",1 +"NEXUS-7714","11/13/2014 19:30:35","make multi-valued cache choices explicit","Instead of numeric spinners for cache TTL and max ages, these should be drop down single select options. Possible values for Artifact Max Age are currently -1 / 0 / n where n is some number of minutes. This is represented on the UI with a number spinner. Instead a single drop down list that said something like: Infinite Finite Never When Finite is select, provide a text input or spinner that lets them input a positive integer only. The numeric spinners can also change values unknowingly when you are using a mouse wheel to scroll the settings page before saving. This can result in the wrong values being used. The meaning of -1 is too cryptic - use words for humans. ",3 +"NEXUS-7724","11/14/2014 00:29:31","Artifact upload layout/style refinements","The upload views are bulky and do not scale well when adding more file types. Should refine this design and consider options to make this work better over all.",3 +"NEXUS-7725","11/14/2014 00:31:42","Change password dialog is too wide","This has someting to do with re-using settingsforms bits which have this preset width. Acceptance Criteria: - Bring Change Password Dialog into being a consistent width with Login Dialog",1 +"NEXUS-7726","11/14/2014 00:34:20","Search criteria field layout won't scale has issues with textbox size","The design of the search criteria fields should be improve so this can scale better. ATM these will push off the screen if more are added. Also some fields are simply too small for realistic user input we'd expect.",3 +"NEXUS-7729","11/14/2014 00:50:12","Paging toolbar looks disabled when its not disabled","Should probably adjust to use darker style like used for button glyphs.",0.5 +"NEXUS-7730","11/14/2014 00:54:13","Adjust header size of message notification windows","Should be smaller height and font size, these are not as important as modal dialogs but presently the sizes are the same.",0.5 +"NEXUS-7731","11/14/2014 21:25:00","limit size of analytics event zip files at creation and submission","Large event-zip files can cause timeouts resulting in error recovery kicking in and resulting in the event-zip getting stuck and resending over and over.",3 +"NEXUS-7732","11/14/2014 21:51:13","Expiring item cache in Nuget proxy repositories causes them to auto-block frequently","The default item max age in NuGet proxy repositories is set to 1440 minutes (I'm not sure why, artifacts should be immutable). When it expires for a a path Nexus issues a request to the remote to check for updates. Unfortunately, it uses the full path of the artifact, e.g.: http://localhost:8081/nexus/service/local/nuget/nuget-repo/Extended.Wpf.Toolkit/2.2.0/Extended.Wpf.Toolkit-2.2.0.nupkg This doesn't work for NuGet feeds, it results in a 400 response. This 400 response causes the repository to auto-block. Note that the initial download of an artifact doesn't do this (even if the full path is requested through the proxies /content URL), it uses the right path for NuGet: http://localhost:8081/nexus/service/local/nuget/nuget-repo/Extended.Wpf.Toolkit/2.2.0/ ",2 +"NEXUS-7739","11/15/2014 01:27:00","capture generation time in analytics event-zip header.json as reference","Think we should add a 'created' attribute in the header (or a format property) to be used as a hint as when the file was generated.",1 +"NEXUS-7752","11/20/2014 17:31:10","Enable browse storage for ruby gems repositories","I've checked all issues filed against ruby in both the github project, jira, and support tickets. I found no problems reported with the browse storage tab. I don't see any reason for us to have disabled it, it seems like its been working well enough for most people for years now. If there were widespread issues we would likely have heard of them. ",0.5 +"NEXUS-7765","11/27/2014 17:37:10","RUT Auth Realm does not authenticate in Nexus 3","Add Rut Auth to the top of the active realms list in Nexus 3, above both XML realms. Add the RUT Auth capability with the header value of username. Send the following request: {noformat} > curl -H ""Username: admin"" -H ""Content-Type: application/json"" -d '{""action"": ""coreui_AnonymousSettings"",""method"": ""read"",""data"": null,""type"": ""rpc"",""tid"": 44}' -v -4 ""http://localhost:8081/service/extdirect"" * Hostname was NOT found in DNS cache * Trying 127.0.0.1... * Connected to localhost (127.0.0.1) port 8081 (#0) > POST /service/extdirect HTTP/1.1 > User-Agent: curl/7.38.0 > Host: localhost:8081 > Accept: */* > Username: admin > Content-Type: application/json > Content-Length: 92 > * upload completely sent off: 92 out of 92 bytes < HTTP/1.1 200 OK < Date: Thu, 27 Nov 2014 17:34:12 GMT * Server Nexus/3.0.0-b2014101001 is not blacklisted < Server: Nexus/3.0.0-b2014101001 < X-Frame-Options: SAMEORIGIN < X-Content-Type-Options: nosniff < Content-Type: application/json;charset=UTF-8 < Set-Cookie: JSESSIONID=2216dc80-e71f-419e-b604-6c0ab4594ffc; Path=/; HttpOnly < Set-Cookie: rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Wed, 26-Nov-2014 17:34:12 GMT < Content-Length: 198 < * Connection #0 to host localhost left intact {""tid"":44,""action"":""coreui_AnonymousSettings"",""method"":""read"",""result"":{""message"":""User is not permitted: nexus:settings:read"",""authenticationRequired"":false,""success"":false,""data"":[]},""type"":""rpc""} {noformat} Note the ""User is not permitted"" message. Debug Logs from this request show RUT auth is not even consulted: {noformat} 2014-11-27 13:29:46,632-0400 DEBUG [qtp1529955279-190] org.apache.shiro.session.mgt.DefaultSessionManager - Unable to resolve session ID from SessionKey [org.apache.shiro.web.session.mgt.WebSessionKey@14f7b204]. Returning null to indicate a session could not be found. 2014-11-27 13:29:46,632-0400 DEBUG [qtp1529955279-190] *UNKNOWN com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor - Request data (JSON)=>{""action"": ""coreui_AnonymousSettings"",""method"": ""read"",""data"": null,""type"": ""rpc"",""tid"": 44} 2014-11-27 13:29:46,632-0400 DEBUG [qtp1529955279-190] *UNKNOWN org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Creating instance of action class 'org.sonatype.nexus.coreui.AnonymousSettingsComponent' mapped to 'coreui_AnonymousSettings 2014-11-27 13:29:46,632-0400 DEBUG [qtp1529955279-190] *UNKNOWN org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Invoking action method: coreui_AnonymousSettings.read, java-method: org.sonatype.nexus.coreui.AnonymousSettingsComponent.read 2014-11-27 13:29:46,632-0400 DEBUG [qtp1529955279-190] *UNKNOWN org.apache.shiro.realm.AuthenticatingRealm - Looked up AuthenticationInfo [anonymous] from doGetAuthenticationInfo 2014-11-27 13:29:46,634-0400 DEBUG [qtp1529955279-190] *UNKNOWN org.apache.shiro.authc.AbstractAuthenticator - Authentication successful for token [org.apache.shiro.authc.UsernamePasswordToken - anonymous, rememberMe=false]. Returned account [anonymous] 2014-11-27 13:29:46,634-0400 DEBUG [qtp1529955279-190] *UNKNOWN org.apache.shiro.subject.support.DefaultSubjectContext - No SecurityManager available in subject context map. Falling back to SecurityUtils.getSecurityManager() lookup. 2014-11-27 13:29:46,634-0400 DEBUG [qtp1529955279-190] *UNKNOWN org.apache.shiro.subject.support.DefaultSubjectContext - No SecurityManager available in subject context map. Falling back to SecurityUtils.getSecurityManager() lookup. 2014-11-27 13:29:46,634-0400 DEBUG [qtp1529955279-190] *UNKNOWN org.apache.shiro.session.mgt.DefaultSessionManager - Creating new EIS record for new session instance [org.apache.shiro.session.mgt.SimpleSession,id=null] 2014-11-27 13:29:46,634-0400 DEBUG [qtp1529955279-190] *UNKNOWN net.sf.ehcache.store.disk.Segment - put added 0 on heap 2014-11-27 13:29:46,634-0400 DEBUG [qtp1529955279-190] *UNKNOWN net.sf.ehcache.store.disk.Segment - put added 0 on heap 2014-11-27 13:29:46,634-0400 DEBUG [qtp1529955279-190] *UNKNOWN net.sf.ehcache.store.disk.Segment - put updated, deleted 0 on heap 2014-11-27 13:29:46,634-0400 DEBUG [qtp1529955279-190] *UNKNOWN org.apache.shiro.web.servlet.SimpleCookie - Added HttpServletResponse Cookie [JSESSIONID=c9127c75-5986-4eef-a6d4-53eddf6edd14; Path=/; HttpOnly] 2014-11-27 13:29:46,634-0400 DEBUG [shiro-activeSessionCache.data] *SYSTEM net.sf.ehcache.store.disk.Segment - fault removed 0 from heap 2014-11-27 13:29:46,634-0400 DEBUG [qtp1529955279-190] *UNKNOWN net.sf.ehcache.store.disk.Segment - put added 0 on heap 2014-11-27 13:29:46,634-0400 DEBUG [shiro-activeSessionCache.data] *SYSTEM net.sf.ehcache.store.disk.Segment - fault added 0 on disk 2014-11-27 13:29:46,634-0400 DEBUG [shiro-activeSessionCache.data] *SYSTEM net.sf.ehcache.store.disk.Segment - fault installation failed, deleted 0 from heap 2014-11-27 13:29:46,634-0400 DEBUG [shiro-activeSessionCache.data] *SYSTEM net.sf.ehcache.store.disk.Segment - fault installation failed deleted 0 from disk 2014-11-27 13:29:46,634-0400 DEBUG [qtp1529955279-190] *UNKNOWN net.sf.ehcache.store.disk.Segment - put updated, deleted 0 on heap 2014-11-27 13:29:46,634-0400 DEBUG [qtp1529955279-190] *UNKNOWN net.sf.ehcache.store.disk.Segment - put added 0 on heap 2014-11-27 13:29:46,634-0400 DEBUG [qtp1529955279-190] *UNKNOWN net.sf.ehcache.store.disk.Segment - put updated, deleted 0 on heap 2014-11-27 13:29:46,635-0400 DEBUG [qtp1529955279-190] *UNKNOWN org.apache.shiro.web.servlet.SimpleCookie - Added HttpServletResponse Cookie [rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Wed, 26-Nov-2014 17:29:46 GMT] 2014-11-27 13:29:46,635-0400 DEBUG [qtp1529955279-190] *UNKNOWN org.apache.shiro.mgt.AbstractRememberMeManager - AuthenticationToken did not indicate RememberMe is requested. RememberMe functionality will not be executed for corresponding account. 2014-11-27 13:29:46,635-0400 DEBUG [shiro-activeSessionCache.data] *SYSTEM net.sf.ehcache.store.disk.Segment - fault removed 0 from heap 2014-11-27 13:29:46,635-0400 DEBUG [shiro-activeSessionCache.data] *SYSTEM net.sf.ehcache.store.disk.Segment - fault added 0 on disk 2014-11-27 13:29:46,635-0400 DEBUG [shiro-activeSessionCache.data] *SYSTEM net.sf.ehcache.store.disk.Segment - fault installation failed, deleted 0 from heap 2014-11-27 13:29:46,635-0400 DEBUG [shiro-activeSessionCache.data] *SYSTEM net.sf.ehcache.store.disk.Segment - fault installation failed deleted 0 from disk 2014-11-27 13:29:46,635-0400 DEBUG [shiro-activeSessionCache.data] *SYSTEM net.sf.ehcache.store.disk.Segment - fault removed 0 from heap 2014-11-27 13:29:46,635-0400 DEBUG [shiro-activeSessionCache.data] *SYSTEM net.sf.ehcache.store.disk.Segment - fault added 0 on disk 2014-11-27 13:29:46,635-0400 DEBUG [shiro-activeSessionCache.data] *SYSTEM net.sf.ehcache.store.disk.Segment - fault installation failed, deleted 0 from heap 2014-11-27 13:29:46,635-0400 DEBUG [shiro-activeSessionCache.data] *SYSTEM net.sf.ehcache.store.disk.Segment - fault installation failed deleted 0 from disk 2014-11-27 13:29:46,635-0400 DEBUG [shiro-activeSessionCache.data] *SYSTEM net.sf.ehcache.store.disk.Segment - fault removed 0 from heap 2014-11-27 13:29:46,635-0400 DEBUG [shiro-activeSessionCache.data] *SYSTEM net.sf.ehcache.store.disk.Segment - fault added 0 on disk 2014-11-27 13:29:46,638-0400 DEBUG [qtp1529955279-190] anonymous org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_AnonymousSettings.read, java-method: org.sonatype.nexus.coreui.AnonymousSettingsComponent.read org.apache.shiro.authz.AuthorizationException: User is not permitted: nexus:settings:read at org.sonatype.security.authorization.ExceptionCatchingModularRealmAuthorizer.checkPermission(ExceptionCatchingModularRealmAuthorizer.java:68) [na:na] at org.apache.shiro.mgt.AuthorizingSecurityManager.checkPermission(AuthorizingSecurityManager.java:137) [na:na] at org.apache.shiro.subject.support.DelegatingSubject.checkPermission(DelegatingSubject.java:205) [org.apache.shiro.core:1.2.3] at org.apache.shiro.authz.aop.PermissionAnnotationHandler.assertAuthorized(PermissionAnnotationHandler.java:74) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:84) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:67) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_25] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_25] at java.lang.reflect.Method.invoke(Method.java:483) [na:1.8.0_25] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2014101001] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2014101001] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:225) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2014101001] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2014101001] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2014101001] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2014101001] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2014101001] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2014101001] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2014101001] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2014101001] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2014101001] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2014101001] at javax.servlet.http.HttpServlet.service(HttpServlet.java:755) [javax.servlet:3.0.0.v201112011016] at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) [javax.servlet:3.0.0.v201112011016] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:300) [org.sonatype.sisu.guice:3.2.2] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:284) [org.sonatype.sisu.guice:3.2.2] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:187) [org.sonatype.sisu.guice:3.2.2] at com.google.inject.servlet.AbstractServletPipeline.service(AbstractServletPipeline.java:61) [org.sonatype.sisu.guice:3.2.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [org.sonatype.sisu.guice:3.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.web.SecurityFilter.executeChain(SecurityFilter.java:71) [org.sonatype.nexus.core:3.0.0.b2014101001] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.2] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.2] at org.sonatype.nexus.web.internal.CommonHeadersFilter.doFilter(CommonHeadersFilter.java:67) [org.sonatype.nexus.core:3.0.0.b2014101001] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.2] at org.sonatype.nexus.web.internal.ErrorPageFilter.doFilter(ErrorPageFilter.java:66) [org.sonatype.nexus.core:3.0.0.b2014101001] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.2] at org.sonatype.nexus.web.internal.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:68) [org.sonatype.nexus.core:3.0.0.b2014101001] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.2] at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:95) [org.sonatype.sisu.guice:3.2.2] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [org.sonatype.sisu.guice:3.2.2] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [org.sonatype.sisu.guice:3.2.2] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [org.sonatype.sisu.guice:3.2.2] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [org.sonatype.sisu.guice:3.2.2] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.b2014101001] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at com.codahale.metrics.jetty8.InstrumentedHandler.handle(InstrumentedHandler.java:192) [com.codahale.metrics.jetty8:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.Server.handle(Server.java:370) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25] Caused by: org.apache.shiro.authz.AuthorizationException: Not authorized to invoke method: public org.sonatype.nexus.coreui.AnonymousSettingsXO org.sonatype.nexus.coreui.AnonymousSettingsComponent.read() at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:90) [na:na] ... 76 common frames omitted 2014-11-27 13:29:46,640-0400 DEBUG [qtp1529955279-190] anonymous com.softwarementors.extjs.djn.Timer - - Java method dispatch time (AnonymousSettingsComponent.read): 7.93 ms. 2014-11-27 13:29:46,641-0400 DEBUG [qtp1529955279-190] anonymous com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor - ResponseData data (JSON)=>{""tid"":44,""action"":""coreui_AnonymousSettings"",""method"":""read"",""result"":{""message"":""User is not permitted: nexus:settings:read"",""authenticationRequired"":false,""success"":false,""data"":[]},""type"":""rpc""} 2014-11-27 13:29:46,641-0400 DEBUG [qtp1529955279-190] anonymous com.softwarementors.extjs.djn.Timer - Total servlet processing time: 8.86 ms. {noformat} ",3 +"NEXUS-7767","11/27/2014 21:40:01","Gems repositories show Smart Proxy tab","The proxy and hosted Gem repositories show the Smart Proxy tab even though there is no related functionality. Found in 2.11.0-01",0.5 +"NEXUS-7768","11/28/2014 08:07:12","Replace Kenai configuration","Replace modello based Kenai configuration with a capability",1 +"NEXUS-7769","11/28/2014 08:09:29","Replace LDAP configuration","Replace modello based LDAP configuration with orient db Acceptance Criteria: - Make LDAP plugin stop use Modello (and have dropped use of it alltogether), and have it tied into ""config"" OrientDB instance. (/) - Module tests related changes as needed (as many of those ""stuff"" ldap.xml under tests), true for nexus-ldap-plugin module UTs as for nexus-ldap-plugin module ITs (/) - Remove use of Plexus from module UTs and ITs (as current tests were unmaintable, this was a desperate step of mine -- cstamas) (/) - Update nexus-ldap-testsupport, remove Plexus (as use of the ldap testsupport module implied use of Plexus in dependant module, which is unwanted) (/) - Introduce nexus-ldap-client (needed to be able to manipulate LDAP configuration from ""real"" ITs, as copying ldap.xml does not work anymore) (/) - Update OSS legacy and modern ITs as needed (replace copied ldap.xml's with LDAP Rest Client use) (/) - Update Pro legacy and modern ITs as needed (replace copied ldap.xml's with LDAP Rest Client use) (/)",1 +"NEXUS-7770","11/28/2014 08:27:41","Remove legacy Crowd modello configuration","Crowd configuration has already been moved to a capability but old modello based config classes are still in place and used to upgrade from crowd-plugin.xml. Lets remove the modello classes and take care of upgrade during NX2->NX3 migration",0.5 +"NEXUS-7771","11/28/2014 08:34:58","Remove legacy PGP modello configuration","PGP configuration has already been moved to a capability but old modello based config classes are still in place and used to upgrade from pgp.xml. Lets remove the modello classes and take care of upgrade during NX2->NX3 migration Note: Removing modello will mean that a bunch of staging/pgp legacy ITs will have to be rewritten as they are copying over a pgp.xml",2 +"NEXUS-7772","11/28/2014 08:38:40","Remove legacy Staging modello configuration","Staging has already been moved to orient db but old modello based config classes are still in place and used to upgrade from staging.xml. Lets remove the modello classes and take care of upgrade during NX2->NX3 migration. Note: Removing modello will mean that quite a bunch of staging legacy ITs will have to be rewritten as they are copying over a staging.xml",5 +"NEXUS-7774","11/28/2014 15:12:24","deadlock trying to read .meta/obr.xml after running task to merge metadata","It is possible more than one thread can attempt to merge obr group metadata at the same time. This causes a virtual deadlock situation and prevents other threads trying to read the metadata. Example thread stacks that can be seen on dumps when in this situation: {noformat} 2014-07-18 02:27:17 WARN [esh-1-thread-35509] org.sonatype.nexus.obr.shadow.ObrShadowRepository - Could not sync shadow ObrShadowRepository(id=obr-dev-tmp-releases) for event RepositoryItemEventCacheUpdate(sender=""Dev Temporary Release"" [id=dev-tmp-release-proxy], dev-tmp-release-proxy:/com/com/service/obligor-common/1.0.0.0/obligor-common-1.0.0.0.jar) org.sonatype.nexus.proxy.StorageException: A storage exception occured! at org.sonatype.nexus.obr.util.ObrUtils.updateObr(ObrUtils.java:337) ~[na:na] at org.sonatype.nexus.obr.shadow.ObrShadowRepository.updateLink(ObrShadowRepository.java:146) ~[na:na] at org.sonatype.nexus.obr.shadow.ObrShadowRepository.createLink(ObrShadowRepository.java:125) ~[na:na] at org.sonatype.nexus.proxy.repository.AbstractShadowRepository.onRepositoryItemEvent(AbstractShadowRepository.java:146) ~[nexus-core-2.7.0-06.jar:2.7.0-06] at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_45] at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_45] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventHandler.handleEvent(EventHandler.java:80) [goodies-eventbus-1.7.4.jar:1.7.4] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.dispatch(EventBus.java:329) [goodies-eventbus-1.7.4.jar:1.7.4] at org.sonatype.sisu.goodies.eventbus.internal.DefaultGuavaEventBus.dispatch(DefaultGuavaEventBus.java:34) [goodies-eventbus-1.7.4.jar:1.7.4] at org.sonatype.sisu.goodies.eventbus.internal.ReentrantGuavaEventBus.dispatchQueuedEvents(ReentrantGuavaEventBus.java:57) [goodies-eventbus-1.7.4.jar:1.7.4] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.post(EventBus.java:281) [goodies-eventbus-1.7.4.jar:1.7.4] at org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus.post(DefaultEventBus.java:78) [goodies-eventbus-1.7.4.jar:1.7.4] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doCacheItem(AbstractProxyRepository.java:867) [nexus-core-2.7.0-06.jar:2.7.0-06] at org.sonatype.nexus.proxy.maven.maven2.M2Repository.doCacheItem(M2Repository.java:232) [nexus-core-2.7.0-06.jar:2.7.0-06] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveRemoteItem(AbstractProxyRepository.java:1346) [nexus-core-2.7.0-06.jar:2.7.0-06] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem0(AbstractProxyRepository.java:1091) [nexus-core-2.7.0-06.jar:2.7.0-06] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem(AbstractProxyRepository.java:974) [nexus-core-2.7.0-06.jar:2.7.0-06] at org.sonatype.nexus.proxy.maven.AbstractMavenRepository.doRetrieveArtifactItem(AbstractMavenRepository.java:426) [nexus-core-2.7.0-06.jar:2.7.0-06] at org.sonatype.nexus.proxy.maven.AbstractMavenRepository.doRetrieveItem(AbstractMavenRepository.java:405) [nexus-core-2.7.0-06.jar:2.7.0-06] at org.sonatype.nexus.proxy.maven.maven2.M2Repository.doRetrieveItem(M2Repository.java:396) [nexus-core-2.7.0-06.jar:2.7.0-06] at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:749) [nexus-core-2.7.0-06.jar:2.7.0-06] at com.sonatype.nexus.plugins.smartproxy.event.internal.handler.ItemHandlerSupport.fetchItem(ItemHandlerSupport.java:191) [nexus-smartproxy-plugin-2.7.0-06.jar:2.7.0-06] at com.sonatype.nexus.plugins.smartproxy.event.internal.handler.ItemHandlerSupport.doFetchItem(ItemHandlerSupport.java:206) [nexus-smartproxy-plugin-2.7.0-06.jar:2.7.0-06] at com.sonatype.nexus.plugins.smartproxy.event.internal.handler.ItemHandlerSupport.access$000(ItemHandlerSupport.java:49) [nexus-smartproxy-plugin-2.7.0-06.jar:2.7.0-06] at com.sonatype.nexus.plugins.smartproxy.event.internal.handler.ItemHandlerSupport$PreemptiveFetchItemEvent.perform(ItemHandlerSupport.java:255) [nexus-smartproxy-plugin-2.7.0-06.jar:2.7.0-06] at com.sonatype.nexus.plugins.smartproxy.event.internal.handler.ItemHandlerSupport$PreemptiveFetchItemEventInspector.inspect(ItemHandlerSupport.java:275) [nexus-smartproxy-plugin-2.7.0-06.jar:2.7.0-06] at org.sonatype.nexus.events.EventSubscriberHost$AsynchronousEventInspectorAdapter$1.run(EventSubscriberHost.java:253) [nexus-core-2.7.0-06.jar:2.7.0-06] at org.sonatype.nexus.threads.MDCAwareRunnable.run(MDCAwareRunnable.java:42) [nexus-core-2.7.0-06.jar:2.7.0-06] at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [shiro-core-1.2.2.jar:1.2.2] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_45] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_45] at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45] Caused by: org.sonatype.nexus.proxy.StorageException: A storage exception occured! at org.sonatype.nexus.obr.util.ObrUtils.retrieveObrItem(ObrUtils.java:192) ~[na:na] at org.sonatype.nexus.obr.util.ObrUtils.updateObr(ObrUtils.java:315) ~[na:na] ... 33 common frames omitted Caused by: org.sonatype.nexus.proxy.AccessDeniedException: Access denied on repository ID='obr-dev-tmp-releases', path='/.meta/obr.xml', action='read'! at org.sonatype.nexus.proxy.access.DefaultAccessManager.decide(DefaultAccessManager.java:49) ~[nexus-core-2.7.0-06.jar:2.7.0-06] at org.sonatype.nexus.proxy.repository.AbstractRepository.checkConditions(AbstractRepository.java:1171) [nexus-core-2.7.0-06.jar:2.7.0-06] at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:590) [nexus-core-2.7.0-06.jar:2.7.0-06] at org.sonatype.nexus.obr.util.ObrUtils.retrieveObrItem(ObrUtils.java:180) ~[na:na] ... 34 common frames omitted {noformat} ---- Example blocked thread: {noformat} qtp373859501-284195 id=284195 state=WAITING - waiting on <0x245d3463> (a java.util.concurrent.Semaphore$FairSync) - locked <0x245d3463> (a java.util.concurrent.Semaphore$FairSync) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:964) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1282) at java.util.concurrent.Semaphore.acquireUninterruptibly(Semaphore.java:500) at org.sonatype.sisu.locks.LocalResourceLock.acquire(LocalResourceLockFactory.java:83) at org.sonatype.sisu.locks.AbstractSemaphoreResourceLock.lockExclusive(AbstractSemaphoreResourceLock.java:60) at org.sonatype.nexus.proxy.item.SisuLockResource.lockExclusively(SisuLockResource.java:45) at org.sonatype.nexus.proxy.item.DefaultRepositoryItemUidLock.lock(DefaultRepositoryItemUidLock.java:39) at org.sonatype.nexus.proxy.repository.AbstractRepository.storeItem(AbstractRepository.java:980) at org.sonatype.nexus.obr.metadata.DefaultObrResourceWriter.close(DefaultObrResourceWriter.java:140) at org.sonatype.nexus.obr.util.ObrUtils.close(ObrUtils.java:396) at org.sonatype.nexus.obr.group.ObrGroupRepository.mergeObrMetadata(ObrGroupRepository.java:240) at org.sonatype.nexus.obr.group.ObrGroupRepository.doRetrieveItem(ObrGroupRepository.java:129) at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:749) at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:592) at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:155) at org.sonatype.nexus.web.content.NexusContentServlet.doGet(NexusContentServlet.java:359) at org.sonatype.nexus.web.content.NexusContentServlet.service(NexusContentServlet.java:331) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) {noformat} ---- Competing threads: {noformat} at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:964) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1282) at java.util.concurrent.Semaphore.acquireUninterruptibly(Semaphore.java:500) at org.sonatype.sisu.locks.LocalResourceLock.acquire(LocalResourceLockFactory.java:83) at org.sonatype.sisu.locks.AbstractSemaphoreResourceLock.lockExclusive(AbstractSemaphoreResourceLock.java:69) at org.sonatype.nexus.proxy.item.SisuLockResource.lockExclusively(SisuLockResource.java:45) at org.sonatype.nexus.proxy.item.DefaultRepositoryItemUidLock.lock(DefaultRepositoryItemUidLock.java:39) at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSPeer.storeItem(DefaultFSPeer.java:157) at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage.storeItem(DefaultFSLocalRepositoryStorage.java:331) at org.sonatype.nexus.proxy.repository.AbstractRepository.storeItem(AbstractRepository.java:996) at org.sonatype.nexus.obr.metadata.DefaultObrResourceWriter.close(DefaultObrResourceWriter.java:140) at org.sonatype.nexus.obr.util.ObrUtils.close(ObrUtils.java:396) at org.sonatype.nexus.obr.group.ObrGroupRepository.mergeObrMetadata(ObrGroupRepository.java:240) at org.sonatype.nexus.obr.group.ObrGroupRepository.doRetrieveItem(ObrGroupRepository.java:129) at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:749) at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:592) at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:155) at org.sonatype.nexus.web.content.NexusContentServlet.doGet(NexusContentServlet.java:359) at org.sonatype.nexus.web.content.NexusContentServlet.service(NexusContentServlet.java:331) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) {noformat} {noformat} at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:964) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1282) at java.util.concurrent.Semaphore.acquireUninterruptibly(Semaphore.java:500) at org.sonatype.sisu.locks.LocalResourceLock.acquire(LocalResourceLockFactory.java:83) at org.sonatype.sisu.locks.AbstractSemaphoreResourceLock.lockExclusive(AbstractSemaphoreResourceLock.java:60) at org.sonatype.nexus.proxy.item.SisuLockResource.lockExclusively(SisuLockResource.java:45) at org.sonatype.nexus.proxy.item.DefaultRepositoryItemUidLock.lock(DefaultRepositoryItemUidLock.java:39) at org.sonatype.nexus.proxy.repository.AbstractRepository.storeItem(AbstractRepository.java:980) at org.sonatype.nexus.obr.metadata.DefaultObrResourceWriter.close(DefaultObrResourceWriter.java:140) at org.sonatype.nexus.obr.util.ObrUtils.close(ObrUtils.java:396) at org.sonatype.nexus.obr.group.ObrGroupRepository.mergeObrMetadata(ObrGroupRepository.java:240) at org.sonatype.nexus.obr.group.ObrGroupRepository.doRetrieveItem(ObrGroupRepository.java:129) at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:749) at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:592) at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:155) at org.sonatype.nexus.web.content.NexusContentServlet.doGet(NexusContentServlet.java:359) at org.sonatype.nexus.web.content.NexusContentServlet.service(NexusContentServlet.java:331) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) {noformat} Waiting threads: {noformat} at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:964) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1282) at java.util.concurrent.Semaphore.acquireUninterruptibly(Semaphore.java:500) at org.sonatype.sisu.locks.LocalResourceLock.acquire(LocalResourceLockFactory.java:83) at org.sonatype.sisu.locks.AbstractSemaphoreResourceLock.lockShared(AbstractSemaphoreResourceLock.java:50) at org.sonatype.nexus.proxy.item.SisuLockResource.lockShared(SisuLockResource.java:39) at org.sonatype.nexus.proxy.item.DefaultRepositoryItemUidLock.lock(DefaultRepositoryItemUidLock.java:36) at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:746) at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:592) at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:155) at org.sonatype.nexus.web.content.NexusContentServlet.doGet(NexusContentServlet.java:359) at org.sonatype.nexus.web.content.NexusContentServlet.service(NexusContentServlet.java:331) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) {noformat} ",0 +"NEXUS-7779","12/01/2014 21:26:40","NullPointerException in pom validator staging rule","The updates to the POM validation rule are lacking some sanity checks for nulls. {quote} 2014-12-01 10:53:47,412-0600 INFO [qtp1153766106-75721] jorlina com.sonatype.nexus.staging.internal.DefaultStagingManager - Closing staging repositories [comgithubthe-alchemist-1001] 2014-12-01 10:53:47,916-0600 INFO [pxpool-1-thread-16] jorlina com.sonatype.nexus.staging.internal.task.StagingBackgroundTask - STARTED Closing staging repositories: [comgithubthe-alchemist-1001] 2014-12-01 10:53:48,166-0600 INFO [pxpool-1-thread-16] jorlina org.sonatype.nexus.configuration.ModelUtils - Saving model /data/nexus/sonatype-work/nexus/conf/staging.xml 2014-12-01 10:53:48,614-0600 INFO [pxpool-1-thread-16] jorlina org.sonatype.nexus.configuration.ModelUtils - Saving model /data/nexus/sonatype-work/nexus/conf/staging.xml 2014-12-01 10:53:48,997-0600 INFO [pxpool-1-thread-16] jorlina org.sonatype.nexus.configuration.ModelUtils - Saving model /data/nexus/sonatype-work/nexus/conf/staging.xml 2014-12-01 10:53:49,438-0600 WARN [pxpool-1-thread-16] jorlina org.sonatype.nexus.proxy.walker.DefaultWalker - Aborted walking on repository ""comgithubthe-alchemist-1001 (staging: open)"" [id=comgithubthe-alchemist-1001] from path ""/"", cause: null java.lang.NullPointerException: null at com.sonatype.nexus.staging.internal.rules.POMStagingRuleEvaluator$POMStagingRuleWalkerProcessor.validateDependency(POMStagingRuleEvaluator.java:140) ~[nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.rules.POMStagingRuleEvaluator$POMStagingRuleWalkerProcessor.validateDependencies(POMStagingRuleEvaluator.java:123) ~[nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.rules.POMStagingRuleEvaluator$POMStagingRuleWalkerProcessor.validatePOM(POMStagingRuleEvaluator.java:95) ~[nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.rules.POMStagingRuleEvaluator$POMStagingRuleWalkerProcessor.processFileItem(POMStagingRuleEvaluator.java:64) ~[nexus-staging-plugin-2.11.0-01/:na] at org.sonatype.nexus.proxy.walker.AbstractFileWalkerProcessor.processItem(AbstractFileWalkerProcessor.java:26) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.processItem(DefaultWalker.java:292) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkItem(DefaultWalker.java:244) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:200) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:89) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at com.sonatype.nexus.staging.rule.AbstractStagingRuleEvaluator.evaluate(AbstractStagingRuleEvaluator.java:46) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.rule.StagingRule.evaluate(StagingRule.java:63) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.StagingRulesHelper.evaluateRules(StagingRulesHelper.java:271) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.StagingRulesHelper.evaluateRuleSet(StagingRulesHelper.java:238) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.StagingRulesHelper.evaluateProfileRuleSets(StagingRulesHelper.java:131) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.StagingRulesHelper.evaluate(StagingRulesHelper.java:102) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.RepositoryCloseTask$CloseOperation.verifyItem(RepositoryCloseTask.java:89) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.RepositoryCloseTask$CloseOperation.verifyItem(RepositoryCloseTask.java:1) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.OperationTaskSupport$OperationSupport.verify(OperationTaskSupport.java:294) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.OperationTaskSupport.executeOperations(OperationTaskSupport.java:425) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.OperationTaskSupport.doCall(OperationTaskSupport.java:415) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.TaskSupport.call(TaskSupport.java:37) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.StagingTaskSupport.call(StagingTaskSupport.java:133) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.StagingBackgroundTask.execute(StagingBackgroundTask.java:67) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.NexusTaskSupport.doRun(NexusTaskSupport.java:52) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.NexusTaskSupport.doRun(NexusTaskSupport.java:1) [nexus-staging-plugin-2.11.0-01/:na] at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:151) [nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) [nexus-scheduler-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.11.0-01.jar:2.11.0-01] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [na:1.7.0_21] at java.util.concurrent.FutureTask.run(FutureTask.java:166) [na:1.7.0_21] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_21] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) [na:1.7.0_21] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_21] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_21] at java.lang.Thread.run(Thread.java:722) [na:1.7.0_21] 2014-12-01 10:53:49,439-0600 WARN [pxpool-1-thread-16] jorlina com.sonatype.nexus.staging.internal.StagingRulesHelper - Rule 'pom-staging' evaluation unexpectedly failed org.sonatype.nexus.proxy.walker.WalkerException: Aborted walking on repository ID='comgithubthe-alchemist-1001' from path='/'. at org.sonatype.nexus.proxy.walker.DefaultWalker.reportWalkEnd(DefaultWalker.java:152) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:118) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at com.sonatype.nexus.staging.rule.AbstractStagingRuleEvaluator.evaluate(AbstractStagingRuleEvaluator.java:46) ~[nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.rule.StagingRule.evaluate(StagingRule.java:63) ~[nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.StagingRulesHelper.evaluateRules(StagingRulesHelper.java:271) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.StagingRulesHelper.evaluateRuleSet(StagingRulesHelper.java:238) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.StagingRulesHelper.evaluateProfileRuleSets(StagingRulesHelper.java:131) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.StagingRulesHelper.evaluate(StagingRulesHelper.java:102) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.RepositoryCloseTask$CloseOperation.verifyItem(RepositoryCloseTask.java:89) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.RepositoryCloseTask$CloseOperation.verifyItem(RepositoryCloseTask.java:1) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.OperationTaskSupport$OperationSupport.verify(OperationTaskSupport.java:294) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.OperationTaskSupport.executeOperations(OperationTaskSupport.java:425) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.OperationTaskSupport.doCall(OperationTaskSupport.java:415) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.TaskSupport.call(TaskSupport.java:37) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.StagingTaskSupport.call(StagingTaskSupport.java:133) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.StagingBackgroundTask.execute(StagingBackgroundTask.java:67) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.NexusTaskSupport.doRun(NexusTaskSupport.java:52) [nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.task.NexusTaskSupport.doRun(NexusTaskSupport.java:1) [nexus-staging-plugin-2.11.0-01/:na] at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:151) [nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) [nexus-scheduler-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.11.0-01.jar:2.11.0-01] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [na:1.7.0_21] at java.util.concurrent.FutureTask.run(FutureTask.java:166) [na:1.7.0_21] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_21] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) [na:1.7.0_21] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_21] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_21] at java.lang.Thread.run(Thread.java:722) [na:1.7.0_21] Caused by: java.lang.NullPointerException: null at com.sonatype.nexus.staging.internal.rules.POMStagingRuleEvaluator$POMStagingRuleWalkerProcessor.validateDependency(POMStagingRuleEvaluator.java:140) ~[nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.rules.POMStagingRuleEvaluator$POMStagingRuleWalkerProcessor.validateDependencies(POMStagingRuleEvaluator.java:123) ~[nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.rules.POMStagingRuleEvaluator$POMStagingRuleWalkerProcessor.validatePOM(POMStagingRuleEvaluator.java:95) ~[nexus-staging-plugin-2.11.0-01/:na] at com.sonatype.nexus.staging.internal.rules.POMStagingRuleEvaluator$POMStagingRuleWalkerProcessor.processFileItem(POMStagingRuleEvaluator.java:64) ~[nexus-staging-plugin-2.11.0-01/:na] at org.sonatype.nexus.proxy.walker.AbstractFileWalkerProcessor.processItem(AbstractFileWalkerProcessor.java:26) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.processItem(DefaultWalker.java:292) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkItem(DefaultWalker.java:244) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:200) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) ~[nexus-core-2.11.0-01.jar:2.11.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:89) ~[nexus-core-2.11.0-01.jar:2.11.0-01] ... 28 common frames omitted {quote}",0.5 +"NEXUS-7785","12/03/2014 20:57:24","request.log should be able to print the Nexus authenticated userid","You can configure %u in the request log via logback access layout pattern. However this always prints ""-"" despite requests being authenticated by Nexus. Nexus should implement a way to print the authenticated user id in the request.log This is a useful diagnostic tool and helps avoid requiring 2 log lines in nexus.log proper as described in this article: https://support.sonatype.com/entries/24056287",1 +"NEXUS-7802","12/10/2014 20:41:34","Revisit tasks logging","Before NX3 Scheduler (legacy scheduler) there was a lot (was maybe even noisy) logging about tasks started, stoppped ,etc... With new scheduler we got to the ""opposite end of the horse"", silence. Scheduler uses INFO logging very sparingly. Tinker about, do we need at least some INFO logs about tasks, and if yes what? State transition? Note: This is about logging only, as feeds are preserved and should be available with full content as before.",0.5 +"NEXUS-7806","12/11/2014 16:03:28","npm groups should merge versions of the same package in different members","Start with this repository setup: {noformat} npm-group --- npm-hosted1 --- npm-hosted2 {noformat} Configure your registry for **gets** to point at npm-group with proper permissions. Using {{npm publish}} and a proper publishConfig url in package.json deploy package X version 0.0.1 to npm-hosted1 deploy package X version 0.0.2 to npm-hosted2 Execute {{npm view X versions}} This returns one version {{0.0.1}}. Reorder the group members: {noformat} npm-group --- npm-hosted2 --- npm-hosted1 {noformat} Execute {{npm view X versions}} This returns one version ( {{0.0.2}} ). Expected - {{npm view X versions}} should list all versions of the same package in all group members Notes: - NPM groups do not exactly match up with Maven groups -- NPM packages are flat, there is no hierarchy Because of this, should we treat NPM groups like Maven groups? We have a concern that we could merge packages together due to the flat nature of NPM that weren't meant to be merged Scoped packages was invented to circumvent this problem Potentially do: - Allow for capability for specific groups to do merge, and instruct the users on how to add hosted/proxy repos to the group",0.5 +"NEXUS-7808","12/12/2014 02:09:50","non-snapshot versions containing SNAPSHOT can bypass a release repository Deployment Policy","We have a nexus server: Sonatype Nexus™ Open Source Edition, Version: 2.0.6 (sure - kinda old) But we are able to redeploy a version of an artifact with a version string of: 1.0.0-SNAPSHOT-FOO-999 We have our ""release"" repo set up to deny redeploy, but we were able to redeploy this to this release repo over and over.",2 +"NEXUS-7810","12/12/2014 10:51:06","Kenai Settings UI","Implement settings UI for Kenai (similar to Crowd UI)",1 +"NEXUS-7811","12/12/2014 23:37:27","Refine button text for server disconnected dialog","As a user, I do not want error/warnings I cannot get rid of (however useful). --- While testing NX3 SNAPSHOT I shutdown my server but forgot to close NX in my browser. I noticed NX3 has a cool warning now that tells you there is a disconnect. However, following this warning if you try and do anything you get a message popout on the screen ""There is a problem communicating with server."" This is similar to the NX2 message which I believe says timeout, however, the NX3 message will not go away on close (OK) - instead it reopens the popout and adds another warning window on the right side. I don't feel this is good usability but if intentional, there's no point I see to having the OK button as is. It might as well be a close tab button. This is not an issue in NX2, tho I do believe NX3 performance is better besides this aspect. I believe I noticed this in the milestone build as well but wanted to check the snapshot. I did not see this in my notes however nor did I (re)recheck at this time. I can if you like and it helps.",0.5 +"NEXUS-7812","12/12/2014 23:58:14","Add straight forward (console/log) start notification","As a tester/administrator, it'd be good to have a clean indicator that the server is started in the console. --- In training, it is mentioned that you can see Nexus has started by looking at ""Started InstrumentedSelectChannelConnector@0.0.0.0:8081”. Usability suggestion, add a line after the system processes are done “Nexus has started.” or something akin. This is not unlike the “Initializing” message currently present (and I personally feel would be more useful). This is just for nexus console. Nexus start has a clean(ish) message. This affects both NX3 m2 and SNAPSHOT. I had seen this a while ago but had not checked SNAPSHOT til today, thus the delay in filing.",1 +"NEXUS-7817","12/15/2014 17:55:06","Second frame on welcome screen sometimes appears repeating milestone resources","While discussing NEXUS-7811, Jason noticed the screen I took had a second frame repeating the milestone resources available for admin on the welcome page. I was able to reproduce this but not consistently by logging in and out of the system as admin (deployment and anonymous do not have these resources at this time). Since I was able to repro several times despite not every time I am filing. If I see further tidbits about this I will add. I am making this minor because once this frame shows up, it remains even on logout, exposing these resources to a non-admin. I also have noticed less frequently while testing this that the resources sometimes stay on the page on logout (but on the non-second framed screen). I mulled filing a second ticket but was unable to repro this behavior in FF or Chrome, so I'm holding off for now, semi-hopeful this ticket fix may cleanup that as well. I did not specifically check NX2 for this at this time, however, I've never seen this there before.",3 +"NEXUS-7819","12/15/2014 19:53:08","Unselecting icon does nothing?","Demonstration of the bug: http://monosnap.com/file/s3Dm8abWmAmgUdm4R3xp4ZERUwhorv Currently in NX when you have the box icon at the top of the screen selected (or the gear if logged in as admin), if you click to unselect it, it removes the blue indicating that the item is selected but nothing else changes. This was confusing to me as a new NX3 user. For example, if logged in as an admin with the gear selected, if you unselect the gear you remain on the administration section. The only thing that changes is the fact the gear icon is no longer blue. When I posed this to the team, it was requested I file a ticket. My expectation was that there be some behavior when the icons are not selected or suggest that they not be able to be unselected if no behavior is going to occur. Going with bug for now; please change to improvement if you believe it's better. Buttons not present in NX2.",2 +"NEXUS-7820","12/16/2014 18:57:18","Show persistent message on idle time out","As a user, it'd be nice to have a persistent message when I come back to a session and am logged out. --- Two times today, I've been idling on NX3 and on return to the screen have had a pause then realized I am logged out presumably due to idling. One benefit of NEXUS-7755 was that there was a history including that you were logged out. Right now, you can potentially just click anonymously before realizing what happened. Suggesting a message on the screen relaying you have been logged out that persists until the user clicks it off (or otherwise notes it as being seen). If NEXUS-7755 or like history is restored, then this could likely be OBE. Acceptance Criteria: - When a user is logged out due to timeout, show the user a dialog that indicates to them they have been logged out",1 +"NEXUS-7834","12/17/2014 21:36:00","Nexus allows direct access to trash directory through content URL's.","Nexus allows direct access to trash directory contents through /content URL's. Directory browsing does not work: https://oss.sonatype.org/content/repositories/releases/.nexus/trash But direct access does (note, this file might not be there anymore at some point, but right now the download works). https://oss.sonatype.org/content/repositories/releases/.nexus/trash/br/com/address/archetypes/strtus2-archetype/maven-metadata.xml This is a security concern, some of our customers have artifacts which are are only accessible to a small set of developers, and are protected via repository target privileges. Access through /.nexus/trash will likely bypass these restrictions.",1 +"NEXUS-7835","12/18/2014 15:10:16","provide a scheduled task to rebuild the npm metadata from storage data for hosted repositories","As a Nexus administrator I want a supported procedure to rebuild the npm metadata from existing npm repository storage, particularly from hosted repositories. This is useful for rebuilding metadata from rsynced npm storage in a failover instance and as a database corruption recovery tool. Notes: - Look into OrientDB backup, export as potential options if we can't rebuild ",1 +"NEXUS-7848","12/23/2014 20:14:19","Solicit graph data model feedback from OrientDB team","Compose and send a proposed OrientDB graph data model for Nexus 3 to the OrientDB folks. Purpose: Get expert advice on the direction we're pursuing for persistence of Component/Asset information, to inform the design.",1 +"NEXUS-7849","12/23/2014 20:20:09","Flesh out first StorageFacet interface and impl","To support the initial raw content format, take an initial hack at the StorageFacet interface as roughly described here: https://docs.sonatype.com/display/Nexus/Nexus+3+Storage+Facet#Nexus3StorageFacet-Facet ...and provide an initial implementation This is expected to be reworked at some point. In order to provide something that basically works, the interface will provide direct access to OrientDB primitives (e.g. Vertices, Edges, and possibly the Graph) rather than trying to hide them behind other objects, where practical.",1 +"NEXUS-7850","12/24/2014 03:12:16","Ban content which could be interpreted as a ""link"" to be uploaded or downloaded","To prevent malicious abuse of the NX2 framework, we should inspect content which is uploaded (deployed to hosted) or downloaded (fetched from remote) to ensure that the NX2 framework would not interpret the content as a ""link"". This should be separate from ""content-validation"" checking and always checked. Only direct use of the NX2 framework api to store a [Default]StorageLinkItem should be allowed to make content that is to be interpreted as a ""link"".",1 +"NEXUS-7854","12/24/2014 19:35:14","Capability About section blank on new","Jason noticed that the About section when creating a new Capability was blank. I subsequently noticed that this is filled in once you create the capability in the About tab of the subsequent screen; believe this is a bug with the creation section since the text is defined. I only checked NX3 (SNAPSHOT) at this time.",0.5 +"NEXUS-7856","12/25/2014 00:53:23","Shell quoting is interfering with orient comment quoting","I'd expect this to work: {noformat} karaf@root()> insert into repository_configuration SET repository_name='test', recipe_name='simple-hosted' Error: com.orientechnologies.orient.core.exception.OCommandExecutionException: Error on execution of command: sql.insert into repository_configuration SET repository_name=test, recipe_name=simple-hosted Error: com.orientechnologies.orient.core.exception.OValidationException: The field 'repository_configuration.recipe_name' cannot be null, record: repository_configuration{repository_name:null,recipe_name:null} {noformat} ... but it does not. This however does work: {noformat} karaf@root()> insert into repository_configuration SET repository_name=\'test\', recipe_name=\'simple-hosted\' Inserted record 'repository_configuration#11:0{repository_name:test,recipe_name:simple-hosted} v1' in 0.002000 sec(s). {noformat} ",1 +"NEXUS-7860","12/30/2014 17:43:09","request.log does not include authenticated userid for certain requests","Configure repos: nuget-group -- nuget-proxy ( https://www.nuget.org/api/v2/ ) Delete the Nexus anonymous user. Do not configure Nuget API key realm. Make the following request with Nexus 2.11.1 wget --debug --http-user admin --http-password=admin123 -S http://localhost:8081/nexus/service/local/nuget/nuget-group/Microsoft.AspNet.WebApi.Client/5.2.2 by design, wget does not use pre-emptive auth and makes two requests, the first responds with 401 and WWW-Authenticate headers and the second sends your credentials in response. request.log does not print the authenticated user on the second request. 127.0.0.1 - - [30/Dec/2014:12:40:37 -0400] ""GET /nexus/service/local/nuget/nuget-group/Microsoft.AspNet.WebApi.Client/5.2.2 HTTP/1.1"" 401 0 127.0.0.1 - - [30/Dec/2014:12:40:45 -0400] ""GET /nexus/service/local/nuget/nuget-group/Microsoft.AspNet.WebApi.Client/5.2.2 HTTP/1.1"" 404 388 Note: the 404 in this case was because I had an http proxy server configured in Nexus returning 404 for the outbound request. This should normally return 200 and not related to this problem. Seems like the security filter change in NEXUS-7785 where the logging was added is not being picked up for some reason.",1 +"NEXUS-8371","01/02/2015 23:45:38","Port LDAP docs","Added/updated subsections to LDAP connection and auth, user/group mapping & a link to external role mapping",2 +"NEXUS-7873","01/05/2015 20:42:59","org.jacoco:org.jacoco.report:0.6.2.201302030002 produces OBR metadata which cannot be parsed by felix 4.4.1","Create a virtual OBR repository against the default central proxy repository in Nexus. Request this artifact through the central proxy: http://localhost:8081/nexus/content/repositories/central/org/jacoco/org.jacoco.report/0.6.2.201302030002/org.jacoco.report-0.6.2.201302030002.jar Now fire up felix 4.4.1 and add the virtual obr repository to it. This fails due to a missing trailing parenthesis in this declaration: {code} (mandatory:<*bundle-version)): (&(package=org.jacoco.core)(bundle-version=[0.6.2,0.6.3))(mandatory:<*bundle-version)) {code} I don't know if this is because the artifact has invalid metadata, or if there is a bug in the obr.xml file generation. {noformat} ____________________________ Welcome to Apache Felix Gogo g! obr:repos add http://localhost:8081/nexus/content/shadows/obr-central/.meta/obr.xml java.lang.Exception: Error while parsing resource org.jacoco.report/0.6.2.201302030002 at line 30 and column 198 at org.apache.felix.bundlerepository.impl.PullParser.parseResource(PullParser.java:263) at org.apache.felix.bundlerepository.impl.PullParser.parse(PullParser.java:160) at org.apache.felix.bundlerepository.impl.PullParser.parseRepository(PullParser.java:60) at org.apache.felix.bundlerepository.impl.DataModelHelperImpl.repository(DataModelHelperImpl.java:147) at org.apache.felix.bundlerepository.impl.DataModelHelperImpl.repository(DataModelHelperImpl.java:118) at org.apache.felix.bundlerepository.impl.RepositoryAdminImpl$1.run(RepositoryAdminImpl.java:115) at java.security.AccessController.doPrivileged(Native Method) at org.apache.felix.bundlerepository.impl.RepositoryAdminImpl.addRepository(RepositoryAdminImpl.java:111) at org.apache.felix.bundlerepository.impl.RepositoryAdminImpl.addRepository(RepositoryAdminImpl.java:99) at org.apache.felix.bundlerepository.impl.RepositoryAdminImpl.addRepository(RepositoryAdminImpl.java:94) at org.apache.felix.gogo.command.OBR.repos(OBR.java:102) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.felix.gogo.runtime.Reflective.invoke(Reflective.java:137) at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82) at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477) at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403) at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183) at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120) at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:92) at org.apache.felix.gogo.shell.Console.run(Console.java:62) at org.apache.felix.gogo.shell.Shell.console(Shell.java:203) at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:128) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.felix.gogo.runtime.Reflective.invoke(Reflective.java:137) at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82) at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477) at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403) at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183) at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120) at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:92) at org.apache.felix.gogo.shell.Activator.run(Activator.java:75) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.IllegalArgumentException at org.apache.felix.bundlerepository.impl.RequirementImpl.setFilter(RequirementImpl.java:101) at org.apache.felix.bundlerepository.impl.PullParser.parseRequire(PullParser.java:351) at org.apache.felix.bundlerepository.impl.PullParser.parseResource(PullParser.java:226) ... 39 more Caused by: org.osgi.framework.InvalidSyntaxException: Extraneous trailing characters: (mandatory:<*bundle-version)): (&(package=org.jacoco.core)(bundle-version=[0.6.2,0.6.3))(mandatory:<*bundle-version)) at org.apache.felix.utils.filter.FilterImpl$Parser.parse(FilterImpl.java:1180) at org.apache.felix.utils.filter.FilterImpl.newInstance(FilterImpl.java:87) at org.apache.felix.bundlerepository.impl.RequirementImpl.setFilter(RequirementImpl.java:97) ... 41 more {noformat}",0.5 +"NEXUS-7874","01/05/2015 22:48:00","NuGet Package upload strings missing or so","Seems like there are some missing or broken strings related to NuGet package upload. ",0.5 +"NEXUS-7878","01/06/2015 18:42:58","prevent restlet resources from sending duplicate Date and Server headers","When a Nexus Restlet resource is requested ( service/local/* ), restlet sends back duplicate Date and Server headers. There should be only one Date header, and Jetty provides this for all responses: http://download.eclipse.org/jetty/stable-8/xref/org/eclipse/jetty/http/HttpGenerator.html#482 There should only be one Server header, with each product/version joined in the header value by a single space. http://pretty-rfc.herokuapp.com/RFC2616#header.server http://pretty-rfc.herokuapp.com/RFC2616#product.tokens < HTTP/1.1 200 OK < Date: Sat, 03 Jan 2015 16:16:33 GMT < Server: Nexus/2.11.1-01 < X-Frame-Options: SAMEORIGIN < X-Content-Type-Options: nosniff < Set-Cookie: JSESSIONID=2f781ca7-d955-45c7-99e4-a84cdcfa6d4a; Path=/nexus; HttpOnly < Set-Cookie: rememberMe=deleteMe; Path=/nexus; Max-Age=0; Expires=Fri, 02-Jan-2015 16:16:33 GMT < Content-Type: application/xml; charset=UTF-8 < Date: Sat, 03 Jan 2015 16:16:33 GMT < Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept < Server: Noelios-Restlet-Engine/1.1.6-SONATYPE-5348-V8 < Content-Length: 10320 ",1 +"NEXUS-7879","01/06/2015 18:47:12","generate dynamic Secure parameterized cookies based on HttpServletRequest.isSecure()","Secure flag should be set on Set-Cookie values dynamically based on if the inbound request is reported as secure by the container hosting Nexus, instead of using the configurable option provided by NEXUS-7800 ",2 +"NEXUS-7880","01/06/2015 18:53:26","change the default Nexus session cookie name","The Nexus Session cookie name is currently JSESSIONID. This is a default Java webapp default session cookie name. When Nexus is running on a host where another java webapp is located, sometimes conflicts can occur with this cookie name where one webapp overwrites the cookie of the other. To help avoid such conflicts, we should given the Nexus session cookie a non-default name. In case this presents unforeseen problems in some environments, make the cookie name configurable by a Nexus administrator. ",1 +"NEXUS-7881","01/06/2015 18:54:54","allow nexus 2.x to load outreach content by version,edition and user","NX3 loads outreach iframe with version/edition/user parameters to allow the outreach bundle to template. NX2 should get this. Example in NX3 of the params: https://github.com/sonatype/nexus-oss/blob/master/plugins/rapture/nexus-coreui-plugin/src/main/resources/static/rapture/NX/coreui/controller/Outreach.js#L85",2 +"NEXUS-7882","01/06/2015 19:14:09","/service/local/authentication/logout should ask the user-agent to delete the session cookie","Currently a request to logout with a valid session cookie, will delete the server side session in Nexus, so that the originally sent session cookie value is no longer valid in the browser. However the response that comes back should ( but does not ) ask the user-agent to delete/expire the existing session cookie, so that it does not bother trying to send it again. We should make logout return a Set-Cookie header as expected that forces delete/expiry of the session cookie. ",1 +"NEXUS-7883","01/06/2015 22:08:44","Role ordering now case sensitive","As a user, I do not want to worry about using case to have my values show. --- Adding a role, I created ""test"" and thought it was not appearing. After evaluating, I found that it sorted below the default ones provided in Nexus. I changed it to ""Test"" and found it sorted in. This is a bug rather than an improvement type because in NX2, the sort is case insensitive. I did not see any tickets indicating this was intentional or a known issue.",0.5 +"NEXUS-7889","01/08/2015 15:09:20","RUT Auth does not work for /content URL's","Disable anonymous access in Nexus, and configure RUT auth. This works for /service/local URL's: {noformat} $ curl -I -H ""X-Forwarded-User: admin"" http://localhost:8081/nexus/service/local/status HTTP/1.1 200 OK Date: Thu, 08 Jan 2015 15:07:24 GMT Server: Nexus/2.11.1-01 X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Set-Cookie: JSESSIONID=a84d2426-6dd9-4d32-a9e3-ad969ebf1ece; Path=/nexus; HttpOnly Set-Cookie: rememberMe=deleteMe; Path=/nexus; Max-Age=0; Expires=Wed, 07-Jan-2015 15:07:24 GMT Content-Type: application/xml; charset=UTF-8 Date: Thu, 08 Jan 2015 15:07:24 GMT Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept Server: Noelios-Restlet-Engine/1.1.6-SONATYPE-5348-V8 Content-Length: 1144 {noformat} It does not work for /content URLs: {noformat} $ curl -I -H ""X-Forwarded-User: admin"" http://localhost:8081/nexus/content/repositories/releases/.meta/repository-metadata.xml HTTP/1.1 401 Unauthorized Date: Thu, 08 Jan 2015 15:08:10 GMT Server: Nexus/2.11.1-01 X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff WWW-Authenticate: BASIC realm=""Sonatype Nexus Repository Manager"" Content-Length: 0 {noformat} ",3 +"NEXUS-7891","01/08/2015 18:32:07","No Kenai Capability About causing warning in log","While testing NEXUS-7768 I noticed that when I clicked on the Capabilities left nav item I was getting this in the log: {quote} 2015-01-08 12:15:51,353-0500 WARN [pool-7-thread-7] joedragons org.sonatype.sisu.goodies.template.internal.VelocityTemplateEngine - Missing resource for template: kenai-about.vm; for owner: org.sonatype.security.realms.kenai.internal.capability.KenaiCapabilityDescriptor {quote} I suspect this is because no About is defined for the Kenai capability. I checked all the other capabilities that are default added and all have an About defined even if just basically a repetition the name. I did not check all the capabilties in the list however. I did not notice this error before I added the capbility so I am guessing it only checks the ones listed. I did notice when I went to create though and selected the dropdown (before picking a capability) I got the same error. This became a capability in NX3 so not surprisingly no error in NX2. Unsure epic or component, so guidance appreciated.",0.5 +"NEXUS-7893","01/08/2015 22:40:00","Text clarify timeout field","While scanning text after NEXUS-7705 was closed, I noticed that on Administration>HTTP the Timeout field had no descriptor. Recommend adding one telling what the # indicates (seconds, minutes, hours). I do not know which it is, so cannot recommend text at this time. Did not see this page in NX2, so only checked NX3 at this time.",0.5 +"NEXUS-7895","01/08/2015 23:07:03","Empty Trash Task helper grammar is off","While reviewing https://issues.sonatype.org/browse/NEXUS-7705, I noticed that on an Empty Trash tasks the repository field had the helper text ""Select the repository to empty the trash."". This read grammatically weird to me so I checked with [~jwayman] and [~simpligility] and they suggested: * Select the repository whose trash will be emptied * Select the repository trash to be emptied * The trash for the selected repository (below) will be emptied Note, they had periods at the ends of some of their suggestions (as does the original text) but I removed them per the Design principles document attached with NEXUS-7705. This is an NX3 issue only; NX2 does not have any helper text (which could be another solution).",0.5 +"NEXUS-7896","01/09/2015 15:14:50","Tasks: Replace removed Cron helper text","While testing NEXUS-7705, I noticed that when creating a new task when scheduling Advanced (Cron) the long guidance text describing Cron examples was gone. I asked in email if this was intentional and it was decided that rather than having long examples, there would be an entry in the help content that we could link our helper text to. I waffled between making this a task or a bug, but since the text is removed, I went with bug. This is NX3 only as the text is present in NX2. I believe this cannot be done until the link is added so added dependancy. Acceptance Criteria: - Have minimal helper text listing the columns and meaning of * and ? for cron syntax easily accessible via the UI. (Does not need to be shown constantly) - Have a cron link to the Nexus Book documentation/search for more elaborate explanation and examples which is expected to be needed infrequently.",0.5 +"NEXUS-7901","01/10/2015 23:47:15","Upgrade Groovy version","Update to more recent Groovy version. Groovy 2.3.7 appears to be the latest available version with a corresponding groovy-eclipse compiler, with 2.3.9 being the last release published at this time. Java 8 interoperability is only ""official"" since 2.3.x so hopefully this will head off any compatibility issues Acceptance Criteria: - Nexus 3 OSS and Pro will use Groovy 2.3.7",1 +"NEXUS-7903","01/12/2015 04:06:22","resuming downloads for unsatisfiable Range should respond with 416 or 200 instead of 206","Hi there, we noticed when using wget with the --continue flag set that it will hang indefinitely when trying to download a file which we've already downloaded. Looking closer we can see: {code} ubuntu@agent-00-00:/vagrant$ wget -S -c -d https://maven.atlassian.com/public/com/atlassian/bamboo/atlassian-bamboo-agent-elastic-installer/5.7.2/atlassian-bamboo-agent-elastic-installer-5.7.2-jar-with-dependencies.jar DEBUG output created by Wget 1.13.4 on linux-gnu. URI encoding = `UTF-8' --2015-01-12 04:00:03-- https://maven.atlassian.com/public/com/atlassian/bamboo/atlassian-bamboo-agent-elastic-installer/5.7.2/atlassian-bamboo-agent-elastic-installer-5.7.2-jar-with-dependencies.jar Resolving maven.atlassian.com (maven.atlassian.com)... 172.24.36.3 Caching maven.atlassian.com => 172.24.36.3 Connecting to maven.atlassian.com (maven.atlassian.com)|172.24.36.3|:443... connected. Created socket 3. Releasing 0x000000000176ad40 (new refcount 1). Initiating SSL handshake. Handshake successful; connected socket 3 to SSL handle 0x000000000176b350 certificate: subject: /C=AU/ST=New South Wales/L=Sydney/O=Atlassian Pty Ltd/CN=*.atlassian.com issuer: /C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA X509 certificate successfully verified and matches host maven.atlassian.com ---request begin--- GET /public/com/atlassian/bamboo/atlassian-bamboo-agent-elastic-installer/5.7.2/atlassian-bamboo-agent-elastic-installer-5.7.2-jar-with-dependencies.jar HTTP/1.1 Range: bytes=22299663- User-Agent: Wget/1.13.4 (linux-gnu) Accept: */* Host: maven.atlassian.com Connection: Keep-Alive ---request end--- HTTP request sent, awaiting response... ---response begin--- HTTP/1.1 206 Partial Content Server: nginx Date: Mon, 12 Jan 2015 04:00:03 GMT Content-Type: application/java-archive Content-Length: 0 Connection: keep-alive X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Accept-Ranges: bytes ETag: ""{SHA1{642389d24532277bb5d2b779055c1fc338092a75}}"" Last-Modified: Tue, 02 Dec 2014 08:08:34 GMT Content-Range: 22299663-22299663/22299663 Set-Cookie: rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Sun, 11-Jan-2015 04:00:03 GMT Strict-Transport-Security: max-age=31536000 ---response end--- HTTP/1.1 206 Partial Content Server: nginx Date: Mon, 12 Jan 2015 04:00:03 GMT Content-Type: application/java-archive Content-Length: 0 Connection: keep-alive X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Accept-Ranges: bytes ETag: ""{SHA1{642389d24532277bb5d2b779055c1fc338092a75}}"" Last-Modified: Tue, 02 Dec 2014 08:08:34 GMT Content-Range: 22299663-22299663/22299663 Set-Cookie: rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Sun, 11-Jan-2015 04:00:03 GMT Strict-Transport-Security: max-age=31536000 Registered socket 3 for persistent reuse. Length: 22299664 (21M), 1 remaining [application/java-archive] Saving to: `atlassian-bamboo-agent-elastic-installer-5.7.2-jar-with-dependencies.jar' 99% [++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ] 22,299,663 --.-K/s {code} The request will hang there and ultimately timeout. Looking into the RFC for range: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html We see the interesting point {noformat} If the server receives a request (other than one including an If- Range request-header field) with an unsatisfiable Range request- header field (that is, all of whose byte-range-spec values have a first-byte-pos value greater than the current length of the selected resource), it SHOULD return a response code of 416 (Requested range not satisfiable) (section 10.4.17). Note: clients cannot depend on servers to send a 416 (Requested range not satisfiable) response instead of a 200 (OK) response for an unsatisfiable Range request-header, since not all servers implement this request-header. {noformat} Testing wget against other servers we see the behaviour as described in the RFC (a 416 or 200). However against nexus we get a 206, even when the range really is out of bounds. The content length is set to 0 and the content-range header seems to be adjusted accordingly, but it still seems it's not the correct behaviour given the request. Any chance we can get a hand here?",1 +"NEXUS-7915","01/13/2015 21:00:11","support proxying maven.oracle.com","Oracle has started to publish a Maven repo with weblogic related artifacts. I expect that to become pretty popular with Oracle users since it saves TONS of time in terms of deploying the artifacts to an internal Nexus instance alternatively. We should make sure we know how to configure this so we can show customers and potentially work with Oracle to get any problems removed. https://blogs.oracle.com/WebLogicServer/entry/weblogic_server_and_the_oracle More info: http://docs.oracle.com/middleware/1213/core/MAVEN/config_maven_repo.htm#MAVEN9012 E.g. there might be no index. This could also be done as a blog post related investigation if there is no engineering budget.. ",1 +"NEXUS-7918","01/14/2015 13:45:50","content validation fails for valid rar file","Create a proxy repo to https://repository.jboss.org/nexus/content/groups/public-jboss/ Request the following file: http://localhost:8081/nexus/content/repositories/jboss/org/jboss/genericjms/generic-jms-ra/1.0.7.Final/generic-jms-ra-1.0.7.Final.rar Nexus blocks this apparently valid rar file and should not. {noformat} jvm 1 | 2015-01-14 09:36:21,248-0400 INFO [qtp458034284-62] admin org.sonatype.nexus.proxy.maven.MavenFileTypeValidator - StorageFileItem jboss:/org/jboss/genericjms/generic-jms-ra/1.0.7.Final/generic-jms-ra-1.0.7.Final.rar MIME-magic validation failed: expected MIME types: [application/java-archive], detected MIME types: [application/zip, application/octet-stream] jvm 1 | 2015-01-14 09:36:21,249-0400 INFO [qtp458034284-62] admin org.sonatype.nexus.proxy.repository.validator.DefaultFileTypeValidatorHub - File item jboss:/org/jboss/genericjms/generic-jms-ra/1.0.7.Final/generic-jms-ra-1.0.7.Final.rar evaluated as INVALID during file type validation (validator=maven) jvm 1 | 2015-01-14 09:36:21,249-0400 INFO [qtp458034284-62] admin org.sonatype.nexus.proxy.maven.maven2.M2Repository - Proxied item jboss:/org/jboss/genericjms/generic-jms-ra/1.0.7.Final/generic-jms-ra-1.0.7.Final.rar evaluated as INVALID during content validation (validator=filetypevalidator, sourceUrl=https://repository.jboss.org/nexus/content/groups/public-jboss/org/jboss/genericjms/generic-jms-ra/1.0.7.Final/generic-jms-ra-1.0.7.Final.rar) {noformat}",3 +"NEXUS-7919","01/14/2015 15:36:01","Improve one button management method on sub-UI pages","As a user, I want to get what I want quickly and with as few clicks as possible from the navigation menus. I prefer none of the options to be hidden unless essential to avoid clutter/confusion. --- In NX3 (Cowbell SNAPSHOT), I noticed on the Privileges page there was a ""Create"" button with a dropdown which resulted in just one item. This took me aback because I am not sure the purpose of having a dropdown with just 1 item, seems like extra clicks to me. On internal review, Daniel suggested ""With the new drilldown panels, we can show a list of types when a user clicks “Create privilege” instead of having a bunch of buttons up front. Of course, if there’s only one privilege type, we just won’t show that panel."" And decided to ticket. Areas affected that could be improved (on review yesterday): * Templates * Privileges * Staging profiles * Roles * SSL Certificates (""http://localhost:8081/#admin/security/sslcertificates - has a create button with 2 options in the drop."") * Respository ('(user/non-admin) have 2 drops in their ""More"" (for Standard).') * Capabilities (capability type dropdown should be modeled as a drilldown panel) * Tasks (same as above) I did not check NX2 at this time since we are not planning to improve the UI on that unless pressed. I strongly suspect some of these are there however (some may not be, a result from the move from tabs).",2 +"NEXUS-7922","01/14/2015 16:40:53","Publish storage events","Make sure appropriate events get pushed to the EventHub when changes occur via StorageFacet. This includes creation, updates, and deletes of assets and components, and creation and deletion of blobs. These events should be published only if the graph transaction on which they occurred is successfully committed.",2 +"NEXUS-7929","01/15/2015 09:56:36","maven site deployments with .. in paths fail","Since Nexus 2.11.1 I have a problem deploying sites of maven modules via dav protocol which have a parent and where I do not want the site to deployed at a path below the parent site. Maven site plugin generates links relative to the site of the parent project. Nexus does not accept these relative links anymore. See (the edited) log excerpt below for an example. Do you have an idea what I can do other than requesting / implementing a change in the site plugin, changing my site deployment structure? I'd also rather not change the transport protocol (if that would be a solution) because that probably would be difficult to organize. {quote} [INFO] --- maven-site-plugin:3.4:deploy (default-cli) @ simple-child --- [INFO] Parent project loaded from repository: org.example.nexus.deployment.problem:simple-parent:pom:0.1.0-SNAPSHOT http://localhost:8081/nexus/content/sites/local-maven-sites/simple-parent/0.1.0-SNAPSHOT/ - Session: Opened [INFO] Pushing c:\Users\me\Development\eclipse-workspace\simple-child\target\site [INFO] >>> to http://localhost:8081/nexus/content/sites/local-maven-sites/simple-parent/0.1.0-SNAPSHOT/../../simple-child Uploading: ../../simple-child/css/maven-base.css to http://localhost:8081/nexus/content/sites/local-maven-sites/simple-parent/0.1.0-SNAPSHOT/ #http://localhost/nexus/content/sites/local-maven-sites/simple-parent/0.1.0-SNAPSHOT/../../simple-child/css/maven-base.css - Status code: 400 Transfer error: org.apache.maven.wagon.TransferFailedException: Failed to transfer file: http://localhost:8081/nexus/content/sites/local-maven-sites/simple-parent/0.1.0-SNAPSHOT/../../simple-child/css/maven-base.css. Return code is: 400 http://localhost:8081/nexus/content/sites/local-maven-sites/simple-parent/0.1.0-SNAPSHOT/ - Session: Disconnecting http://localhost:8081/nexus/content/sites/local-maven-sites/simple-parent/0.1.0-SNAPSHOT/ - Session: Disconnected [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ {quote}",1 +"NEXUS-7934","01/15/2015 18:37:39","Cannot delete a logger (easily)","I created a logger with a typo and went to delete it but found that I could not get the ""Delete Logger"" button to enable. I tried clicking away from the logger and back and I tried clicking away from the section and back. I also tried right click. I was able to delete by resetting all to default levels but that also wipes out any other changes you may have made (both loggers added and special configurations). This appears to be an NX3 specific issue; I did not have this issue in NX2. I only tested the SNAPSHOT (Cowbell) at this time, not older versions of NX3.",0.5 +"NEXUS-7935","01/15/2015 18:57:47","In drilldown panels, focus doesn’t automatically move to the current panel.","When I click a drilldown panel, I expect the focus to move to the first field in the new panel. This is not currently the case. Also, it’s possible to tab to a previous or subsequent drilldown panel, which messes up the view. This also needs fixing. Example: http://take.ms/UFZkR",1 +"NEXUS-7939","01/15/2015 22:25:32","Privilege add validates with incorrect message?","While testing https://issues.sonatype.org/browse/NEXUS-7911, I added a privilege with the same (attached below) configuration and now I am getting the validation listed below which I believe is incorrect since there is a value. I asked [~mcculls], and he said this was uncovered by his fix and not caused by it. He speculated it may be a UI issue. Because of that filing separately.",1 +"NEXUS-7954","01/19/2015 19:58:24","(Re)Clarify Analytics text","Last week, I noticed that the text to enable the sending of analytics (Support>Analytics) information to Sonatype had changed in NX3 from: ""Enable automatic analytics event submission"" to ""Send anonymized analytics to Sonatype"" I raised a concern that the latter read like a single function whereas the checkbox was doing more than that. We hashed out better text: ""Enable anonymized analytics submission to Sonatype"" Some concern was raised that some of the words in this suggestion were unnecessary and/or redundant.",0.5 +"NEXUS-7956","01/19/2015 21:51:09","Failed to Load warnings in JS Console","While reviewing NEXUS-7760, I noticed I kept getting the attached warnings in my Safari Web Console once per browser session. I thought it might be search related but noticed that I also got it when I signed in and clicked Feeds and also when I clicked Standard (Repository; clicking Repositories was fine). The messages are the same each time. I do not notice anything errant on the pages but filing for investigation. Note: Do awful things to browser size to replicate this Acceptance Criteria: - Current missing assets will not show up in js console any longer when scrolling tabs",0.5 +"NEXUS-7959","01/19/2015 22:48:54","Grid view is broken (column hide, reorder, and resize)","When you hide a column, the web UI navigates away from the current page: http://take.ms/3Svy5 When you reorder the columns, the data aren’t rendered appropriately: http://take.ms/pbERY When you double-click the resize bar for a column, the grid doesn’t perform any overflow checking: http://take.ms/6T3Sr",3 +"NEXUS-7960","01/19/2015 23:00:03","Single pill shows, should be hidden to avoid confusion","While reviewing NEXUS-7660, I loaded repository which only had one element so I clicked it. I noticed the resultant item had a blue Info button and info below it. I tried clicking the button and nothing happened. After discussion with [~dsauble] he relayed this was part of NEXUS-7709 and that items with a single pill should be hidden to avoid confusion. I reviewed the rest of the site and saw no others, I believe this is the only place with this going on. Ticketing as requested.",0.5 +"NEXUS-7965","01/20/2015 15:09:47","Typos in ""Smart Proxy: File Event Sink"" capability About","While testing NEXUS-7854 yesterday, I noticed 3 typoes in the Smart Proxy: File Event Sink capability's About section. I checked and these exist in NX2 as well. Bug for cleanup. 1) ""in the flush/publih window."" - 'publish' is missing an s. 2) ""blank lines are ingored"" - 'ignored' is missing an n. 3) ""for the event or addional"" - 'additional' misspelled.",0.5 +"NEXUS-7966","01/20/2015 18:37:21","Header mode buttons look like toggles, not navigation links.","To a first-time user, it’s unclear what the mode buttons are supposed to do. They look like toggles. We need to tie them to the page better, make them look like navigation. !Welcome - Sonatype Nexus 2015-01-20 10-35-44.png|thumbnail!",0.5 +"NEXUS-7971","01/21/2015 00:15:42","Finish conversion to NX.I18n string ","A few places still not using NX.I18n. * -Review all usage of NX.Messages API- * -Review all usage of NX.Dialogs API- * -Review all usage of NX.Security API- * -Review all usage of 'waitMsg:' specifications Classes in nexus-rapture-plugin: * -NX.view.AboutWindow- * -NX.view.Authenticate- * -NX.view.ExpireSession- * -NX.view.UnsupportedBrowser- * -NX.view.header.AdminMode- * -NX.view.header.BrowseMode- * -NX.view.header.UserMode- * -NX.view.header.Help- * -NX.view.header.Messages- * -NX.view.feature.NotFound- Classes in nexus-coreui-plugin: * -NX.coreui.controller.Metrics- * -NX.coreui.controller.NuGetRepositorySettings- -Pending further investigation fore coreui and proui modules.-",3 +"NEXUS-7974","01/21/2015 11:26:34","Update NPM plugin to use OrientDB 2.0","Note: databases created by OrientDB 1.7 are compatible with OrientDB 2.0 http://www.orientechnologies.com/docs/last/orientdb.wiki/Migration-from-1.7.x-to-2.0.x.html",0.5 +"NEXUS-7975","01/21/2015 15:32:02","Invalid email now allowed w/ typo & errors","In NX3 on System>Email Server, when Verifying SMTP Connection you can verify with a blank submission (not allowed in NX2). I noticed that the resultant message ""Invalida e-mail address: <>"" has a typo (Invalid). There is also an error in the log, that was not present in NX2, likely because this was not allowed: {quote} 2015-01-21 10:23:40,467-0500 ERROR [qtp414557038-235] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_SmtpSettings.verifyConnection, java-method: org.sonatype.nexus.coreui.SmtpSettingsComponent.verifyConnection java.lang.IllegalArgumentException: Invalida e-mail address: <> at org.sonatype.micromailer.Address.validateAddress(Address.java:115) [na:na] at org.sonatype.micromailer.Address.(Address.java:44) [na:na] at org.sonatype.micromailer.Address.(Address.java:36) [na:na] at org.sonatype.nexus.internal.email.DefaultSmtpSettingsValidator.sendSmtpConfigurationTest(DefaultSmtpSettingsValidator.java:72) [na:na] at org.sonatype.nexus.email.SmtpSettingsValidator$sendSmtpConfigurationTest.call(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) [na:na] at org.sonatype.nexus.coreui.SmtpSettingsComponent.verifyConnection(SmtpSettingsComponent.groovy:132) [na:na] at org.sonatype.nexus.extender.modules.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [na:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.7.0_71] at java.lang.reflect.Method.invoke(Method.java:606) [na:1.7.0_71] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:208) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:128) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:755) [javax.servlet:3.0.0.v201112011016] at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) [javax.servlet:3.0.0.v201112011016] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:298) [org.sonatype.sisu.guice:3.2.4] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:282) [org.sonatype.sisu.guice:3.2.4] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:187) [org.sonatype.sisu.guice:3.2.4] at com.google.inject.servlet.AbstractServletPipeline.service(AbstractServletPipeline.java:59) [org.sonatype.sisu.guice:3.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [org.sonatype.sisu.guice:3.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.web.SecurityFilter.executeChain(SecurityFilter.java:87) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.4] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:136) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.4] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.4] at org.sonatype.nexus.web.internal.StandardHttpResponseHeadersFilter.doFilter(StandardHttpResponseHeadersFilter.java:80) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.4] at org.sonatype.nexus.web.internal.ErrorPageFilter.doFilter(ErrorPageFilter.java:66) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.4] at org.sonatype.nexus.web.internal.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:68) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.4] at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:94) [org.sonatype.sisu.guice:3.2.4] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [org.sonatype.sisu.guice:3.2.4] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [org.sonatype.sisu.guice:3.2.4] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [org.sonatype.sisu.guice:3.2.4] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [org.sonatype.sisu.guice:3.2.4] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at com.codahale.metrics.jetty8.InstrumentedHandler.handle(InstrumentedHandler.java:192) [com.codahale.metrics.jetty8:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.Server.handle(Server.java:370) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [org.eclipse.jetty.aggregate.jetty-all-server:8.1.11.v20130520] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71] Caused by: javax.mail.internet.AddressException: Empty address at javax.mail.internet.InternetAddress.checkAddress(InternetAddress.java:1149) [na:na] at javax.mail.internet.InternetAddress.validate(InternetAddress.java:1129) [na:na] at org.sonatype.micromailer.Address.getInternetAddress(Address.java:61) [na:na] at org.sonatype.micromailer.Address.validateAddress(Address.java:111) [na:na] ... 100 common frames omitted {quote} Interestingly, if you start to actually type an invalid email, it blocks it and validates. I am not sure the gain of allowing this blank mail, so cannot suggest to revert to NX2 not allowing which would presumably fix this or if these need patched.",1 +"NEXUS-7977","01/21/2015 16:31:04","Saving shows a validator briefly when condition is fulfilled (sometimes/some fields)","While reviewing NEXUS-7901, I created a task and edited it and noticed that a validator was appearing despite the fact the field was filled in. This occurs on both save and discard. If this can be prevented, I see no point in having this appear. See attached movie (shows save only).",0.5 +"NEXUS-7978","01/21/2015 17:43:01","User Creation does not transition back to list view after saving","Record is saved as expected, but the UI does not transition back to the list view as other drilldown views do. Leads to failure with present code at https://github.com/sonatype/nexus-bundles/blob/master/testsuite/functional-testsuite/src/test/ft-resources/testsuite/security/310_security_user.t.js#L85",1 +"NEXUS-7979","01/21/2015 17:46:00","Staging repository detail view throws Exception on load","- detail view won't load, hits an undefined method here: https://github.com/sonatype/nexus-pro/blob/master/plugins/internal/nexus-proui-plugin/src/main/resources/static/rapture/NX/proui/controller/StagingRepositories.js#L263-263 - reproduction: -- Add a Staging profile (content is irrelevant) -- Upload an artifact to staging; UI upload is sufficient -- Navigate to the newly created Staging repository and click it in the list view -- Observe error thrown: TypeError: me.getFeature(...).setDescriptionIconName is not a function StagingRepositories.js:263 ",1 +"NEXUS-7980","01/21/2015 18:14:37","Capabilities update failure","Trying to update a Capability results in an exception and failure to transition back to the list view. Appears related to the recent change to drilldown pattern in the UI. ",1 +"NEXUS-7981","01/21/2015 21:37:22","NX3 feeds have the same name unhelpfully","Two feeds in NX3 are named ""New File"" and are distinct items. While this text is cleaner than NX2 (long descriptions) there is a distinction in NX2 beyond just the path. Requesting this be differentiated somehow. Filing as a bug since this was different (""not a bug"") in NX2. I've attached NX3 and NX2 screens. Will also reach out to Jeff/Manfred to see if they have any suggestions. I am too verbose to make suggestions for this one=)",0.5 +"NEXUS-7988","01/22/2015 17:21:24","Tasks: Improve helper text by removing and rebuilding title text","While reviewing NEXUS-7895, I noticed that the helper text for Evict Unused Proxied Items From Repository Caches task for the ""Evict items older than (days)"" was as attached but I felt grammatically wrong. After discussion with [~simpligility] and [~dsauble], we decided to remove that helper text and instead change the title to ""Evict unused proxy items older than (days)"" (so it would encompass the elements of the helper text that were removed). I did not check NX2 at this time as I have been told to expect no UI changes for that. I did not check older versions of NX3 either. Acceptance Criteria: * Remove helper text from Evict Unused Proxy Items task * The title of Evict Unused Proxy Items will be ""Evict unused proxy items older than (days)""",0.5 +"NEXUS-7991","01/22/2015 18:51:10","Remove deprecated Task from NX3","While reviewing https://issues.sonatype.org/browse/NEXUS-7895 I loaded the Download Nuget Feed task and noticed some text weirdness however [~mcculls] pointed out this had been depreciated in NX2 (.9) and should probably be removed from NX3. Creating a task for evaluation/doing. If this is WONTFIXed, the text could use some work (ref: 1/22/2015 email). I did not check older versions of NX3 at this time. Acceptance Criteria: * Remove ""Download Nuget Feed"" task",0.5 +"NEXUS-7995","01/23/2015 08:32:20","Update HttpClient dependencies","Update HttpClient and HttpCore to: * HttpClient 4.3.6, release notes https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310360&version=12327489 * HttpCore 4.3.3, release notes https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310340&version=12326260",1 +"NEXUS-7996","01/23/2015 15:03:04","Users: Changing dropdown does not show list until refresh","In NX3 Cowbell SNAPSHOT, I noticed that on the users page, when I changed from ""Default"" to ""All Configured Users"" the 2nd list was empty. After review, I found that the list would show contents if I refreshed (via the button on the page, not the browser). I checked NX2 and the same behavior seems to occur except that the dropdown defaults to ""All Configured Users"" but shows no contents when switching to ""All Users"" (for example). Attaching screen (of server with all 3 default users; NX3), let me know if unclear, and I can do a movie. Acceptance Criteria: * When changing dropdown, refresh and display all users who are in results of the new dropdown selected.",2 +"NEXUS-8004","01/23/2015 21:27:19","""failed content integrity validation"" message when remote returns 404","https://github.com/sonatype/nexus-oss/blob/nexus-2.11.x/components/nexus-core/src/main/java/org/sonatype/nexus/proxy/repository/AbstractProxyRepository.java#L1510-1510 https://github.com/sonatype/nexus-oss/blob/nexus-2.11.x/components/nexus-core/src/main/java/org/sonatype/nexus/proxy/repository/AbstractProxyRepository.java#L1259-1259 Prints a concerning log message stating ""failed content integrity validation"" when in actual fact, the remote may have responded with 404 or other implied 'not found' status code. Instead, print a log message indicating the status code and more exact reason the file was detected as not valid. To reproduce: # Change logging level of ROOT to DEBUG # Request a file through a Maven proxy repository that the remote will return 404 for. # examine the logs for the message ""failed content integrity validation"" ",1 +"NEXUS-8020","01/26/2015 19:10:58","Clarify Yum Capability helper text","Reviewing Capabilities I noticed that in Yum: Generate Metadata and Yum: Staging Generate Metadata that the Aliases field had helper text ""Format: =[,=]"". I had no idea what this meant and after reviewing the book at [~simpligility]'s prompting, I found that it means that the Aliases field is comma delineated (i.e. production=1.2,testing=2.0). Even knowing this, I feel this is unclear. Suggest we replace with that fact or just put an example (either in helper text or in greytext in the field itself). I did not check older versions of NX3 at this time.",0.5 +"NEXUS-8036","01/27/2015 15:51:18","User Token Protect Content feature should return 401 with message","Enable User Token and the Protect Content feature. When a request is made to a /content path with valid credentials that are not Nexus user token credentials, Nexus responds with 401, but no entity explaining why. Problems: - the end user is confused, because they know they have entered technically valid organization credentials. - the Nexus admin is confused because they either have forgotten about or were not the ones who setup the Protect Content feature, or just assume protecting content is a good idea, so leave the box enabled. - the Protect Content feature is valuable, but it is a rather odd special case that affects all realms in Nexus because of the special Token it creates internally, so an administrator is not reminded it may be in play because it is not near where all the other realms are configured - a Nexus admin must enable DEBUG and TRACE logs to see why there was a 401, assuming they can even understand what loggers to enable and what to look for {noformat} 2015-01-27 09:20:46,735+1100 DEBUG [qtp1087360683-4837 - /nexus/content/repositories/releases-p2/content.jar] *UNKNOWN org.apache.shiro.realm.AuthenticatingRealm - AuthenticationInfo caching is disabled for info [exampleuser]. Submitted token: [ContentRestrictedToken{principal=exampleuser, host='192.168.47.138'}]. 2015-01-27 09:20:46,743+1100 TRACE [qtp1087360683-4837 - /nexus/content/repositories/releases-p2/content.jar] *UNKNOWN org.sonatype.security.authentication.FirstSuccessfulModularRealmAuthenticator - Realm [com.sonatype.nexus.usertoken.plugin.realm.UserTokenRealm@63a24ea4] threw an exception during a multi-realm authentication attempt: org.apache.shiro.authc.IncorrectCredentialsException: Submitted credentials for token [ContentRestrictedToken{principal=exampleuser, host='192.168.47.138'}] did not match the expected credentials. 2015-01-27 09:20:46,744+1100 TRACE [qtp1087360683-4837 - /nexus/content/repositories/releases-p2/content.jar] *UNKNOWN org.sonatype.security.authentication.FirstSuccessfulModularRealmAuthenticator - Realm of type [org.sonatype.security.realms.XmlAuthenticatingRealm@1bd03b75] does not support token [ContentRestrictedToken{principal=exampleuser, host='192.168.47.138'}]. Skipping realm. 2015-01-27 09:20:46,744+1100 TRACE [qtp1087360683-4837 - /nexus/content/repositories/releases-p2/content.jar] *UNKNOWN org.sonatype.security.authentication.FirstSuccessfulModularRealmAuthenticator - Realm of type [org.sonatype.security.realms.XmlAuthorizingRealm@3ef8c97] does not support token [ContentRestrictedToken{principal=exampleuser, host='192.168.47.138'}]. Skipping realm. 2015-01-27 09:20:46,744+1100 TRACE [qtp1087360683-4837 - /nexus/content/repositories/releases-p2/content.jar] *UNKNOWN org.sonatype.security.authentication.FirstSuccessfulModularRealmAuthenticator - Realm of type [com.sonatype.nexus.crowd.internal.CrowdRealm@63f70f85] does not support token [ContentRestrictedToken{principal=exampleuser, host='192.168.47.138'}]. Skipping realm. {noformat} Improvement: Simple continue to respond with 401, but include a simple message body explaining the reasoning - that user token credentials are being enforced in Nexus. In this way a simple test using curl that gets 401 response will help the admin, end user or Sonatype Support in quickly identifying the problem. ",0.5 +"NEXUS-8037","01/27/2015 19:46:48","Improve task helper text by clarifying acronym","Last week I noticed in the ""Remove Releases From Repository"" task there was helper text for the Number to Keep field: ""The number of versions for each GA to keep"". What GA was was unclear to me. [~simpligility] clarified it was the first two portions of GAV - GroupIdArtifactId but suggested it could be clarified to ""The number of versions for each artifact identifier to keep"". I was going to leave this alone and chalk to my newness but other team members thought clarify valuable as well. The message is the same in NX2 (though I expect the change will just be NX3).",0.5 +"NEXUS-8039","01/27/2015 20:43:57","performance advice in logs when querying npm all resource","Create an npm group repo with the following members: npm-hosted ( hosted npm repo ) npm-proxy ( https://registry.npmjs.org ) npm-strongloop ( http://npm.strongloop.com/ ) npm-nodejitsu ( https://registry.nodejitsu.com ) make a query to: {noformat} > curl -4 http://localhost:8081/nexus/content/groups/npm/-/all -o /dev/null % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 66.1M 0 66.1M 0 0 86605 0 --:--:-- 0:13:21 --:--:-- 16.9M {noformat} Some performance related advice prints in logs. Is this advice we need to follow? {noformat} jvm 1 | 2015-01-27 16:21:42,388-0400 INFO [qtp458034284-83] anonymous com.orientechnologies.common.profiler.OProfiler - {db=npm} [TIP] Query 'select from packageroot where repositoryId='npm-hosted' and @rid > ? limit 1000' fetched more than 50000 records: to speed up the execution, create an index or change the query to use an existent index jvm 1 | 2015-01-27 16:21:44,091-0400 INFO [qtp458034284-83] anonymous com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl - Registry root npm-proxy-nodejitsu initial fetch jvm 1 | 2015-01-27 16:31:15,760-0400 INFO [qtp458034284-83] anonymous com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl - Registry root npm-proxy-nodejitsu update successful (127910 packages) jvm 1 | 2015-01-27 16:31:16,107-0400 INFO [qtp458034284-83] anonymous com.orientechnologies.common.profiler.OProfiler - {db=npm} [TIP] Query 'select from packageroot where repositoryId='npm-proxy-nodejitsu' and @rid > ? limit 1000' fetched more than 50000 records: to speed up the execution, create an index or change the query to use an existent index jvm 1 | 2015-01-27 16:31:17,964-0400 INFO [qtp458034284-83] anonymous com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl - Registry root npm-proxy-strongloop initial fetch jvm 1 | 2015-01-27 16:33:56,268-0400 INFO [qtp458034284-83] anonymous com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl - Registry root npm-proxy-strongloop update successful (102683 packages) {noformat}",1 +"NEXUS-8043","01/28/2015 19:39:10","rebuild hosted npm metadata task metadata parsing errors","Tried to run rebuild hosted npm metadata task ( new in 2.11.2 ) against about 500MB of tgz packages from the strongloop registry. https://drive.google.com/file/d/0B2wPMwl-8cOXdmMtYlUyWjJ4STQ/view?usp=sharing Had several messages of concern - unsure as to the overall seriousness of each of these: {noformat} jvm 1 | 2015-01-28 15:21:29,126-0400 INFO [pxpool-1-thread-1] admin com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor - Failed to extract or malformed package.json from npm-hosted:/boxeen/-/boxeen-0.1.0.tgz jvm 1 | com.fasterxml.jackson.core.JsonParseException: Invalid UTF-8 middle byte 0x72 jvm 1 | at [Source: [B@a1b98d; line: 5, column: 16] jvm 1 | at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1524) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:557) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidOther(UTF8StreamJsonParser.java:3117) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidOther(UTF8StreamJsonParser.java:3124) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._decodeUtf8_3fast(UTF8StreamJsonParser.java:2930) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._finishString2(UTF8StreamJsonParser.java:2201) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._finishString(UTF8StreamJsonParser.java:2150) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.getText(UTF8StreamJsonParser.java:282) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:183) ~[jackson-databind-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringMap(MapDeserializer.java:430) ~[jackson-databind-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:312) ~[jackson-databind-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:26) ~[jackson-databind-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2993) ~[jackson-databind-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2184) ~[jackson-databind-2.3.1.jar:2.3.1] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor.extractPackageJson(RecreateMetadataWalkerProcessor.java:195) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor.onCollectionExit(RecreateMetadataWalkerProcessor.java:110) ~[na:na] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.onCollectionExit(DefaultWalker.java:325) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:226) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:89) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.DefaultNpmHostedRepository.recreateNpmMetadata(DefaultNpmHostedRepository.java:106) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmHostedMetadataRebuildTask.doExecute(NpmHostedMetadataRebuildTask.java:50) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmTaskSupport.doRun(NpmTaskSupport.java:55) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmTaskSupport.doRun(NpmTaskSupport.java:37) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:151) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) [nexus-scheduler-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_25] jvm 1 | at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25] jvm 1 | 2015-01-28 15:21:29,230-0400 INFO [pxpool-1-thread-1] admin com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor - Failed to extract or malformed package.json from npm-hosted:/cluster-status/-/cluster-status-0.5.0-SNAPSHOT.1387314512824.tgz jvm 1 | java.lang.NumberFormatException: For input string: ""1387314512824"" jvm 1 | at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_25] jvm 1 | at java.lang.Integer.parseInt(Integer.java:583) ~[na:1.8.0_25] jvm 1 | at java.lang.Integer.parseInt(Integer.java:615) ~[na:1.8.0_25] jvm 1 | at com.bolyuba.nexus.plugin.npm.internal.Version.parseSpecialId(Version.java:207) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.internal.Version.access$300(Version.java:36) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.internal.Version$Special.(Version.java:287) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.internal.Version.parseSpecial(Version.java:84) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.internal.Version.(Version.java:77) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.internal.Version.parse(Version.java:115) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor.onCollectionExit(RecreateMetadataWalkerProcessor.java:117) ~[na:na] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.onCollectionExit(DefaultWalker.java:325) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:226) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:89) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.DefaultNpmHostedRepository.recreateNpmMetadata(DefaultNpmHostedRepository.java:106) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmHostedMetadataRebuildTask.doExecute(NpmHostedMetadataRebuildTask.java:50) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmTaskSupport.doRun(NpmTaskSupport.java:55) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmTaskSupport.doRun(NpmTaskSupport.java:37) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:151) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) [nexus-scheduler-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_25] jvm 1 | at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25] jvm 1 | 2015-01-28 15:21:29,232-0400 INFO [pxpool-1-thread-1] admin com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor - Failed to extract or malformed package.json from npm-hosted:/cluster-status/-/cluster-status-0.5.0-SNAPSHOT.1387826685226.tgz jvm 1 | java.lang.NumberFormatException: For input string: ""1387826685226"" jvm 1 | at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_25] jvm 1 | at java.lang.Integer.parseInt(Integer.java:583) ~[na:1.8.0_25] jvm 1 | at java.lang.Integer.parseInt(Integer.java:615) ~[na:1.8.0_25] jvm 1 | at com.bolyuba.nexus.plugin.npm.internal.Version.parseSpecialId(Version.java:207) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.internal.Version.access$300(Version.java:36) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.internal.Version$Special.(Version.java:287) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.internal.Version.parseSpecial(Version.java:84) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.internal.Version.(Version.java:77) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.internal.Version.parse(Version.java:115) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor.onCollectionExit(RecreateMetadataWalkerProcessor.java:117) ~[na:na] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.onCollectionExit(DefaultWalker.java:325) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:226) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:89) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.DefaultNpmHostedRepository.recreateNpmMetadata(DefaultNpmHostedRepository.java:106) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmHostedMetadataRebuildTask.doExecute(NpmHostedMetadataRebuildTask.java:50) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmTaskSupport.doRun(NpmTaskSupport.java:55) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmTaskSupport.doRun(NpmTaskSupport.java:37) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:151) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) [nexus-scheduler-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_25] jvm 1 | at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25] jvm 1 | 2015-01-28 15:21:29,292-0400 INFO [pxpool-1-thread-1] admin com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor - Failed to extract or malformed package.json from npm-hosted:/couchutil/-/couchutil-0.0.1.tgz jvm 1 | java.lang.NullPointerException: null jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor.extractPackageJson(RecreateMetadataWalkerProcessor.java:183) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor.onCollectionExit(RecreateMetadataWalkerProcessor.java:110) ~[na:na] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.onCollectionExit(DefaultWalker.java:325) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:226) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:89) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.DefaultNpmHostedRepository.recreateNpmMetadata(DefaultNpmHostedRepository.java:106) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmHostedMetadataRebuildTask.doExecute(NpmHostedMetadataRebuildTask.java:50) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmTaskSupport.doRun(NpmTaskSupport.java:55) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmTaskSupport.doRun(NpmTaskSupport.java:37) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:151) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) [nexus-scheduler-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_25] jvm 1 | at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25] jvm 1 | 2015-01-28 15:21:30,150-0400 INFO [pxpool-1-thread-1] admin com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor - Failed to extract or malformed package.json from npm-hosted:/prototype/-/prototype-0.0.1.tgz jvm 1 | java.lang.IllegalArgumentException: does not match format (\d+)\.(\d+)(?:\.)?(\d*)(\.|-|\+)?([0-9A-Za-z-.]*)? jvm 1 | at com.bolyuba.nexus.plugin.npm.internal.Version.parse(Version.java:101) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor.onCollectionExit(RecreateMetadataWalkerProcessor.java:117) ~[na:na] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.onCollectionExit(DefaultWalker.java:325) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:226) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:89) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.DefaultNpmHostedRepository.recreateNpmMetadata(DefaultNpmHostedRepository.java:106) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmHostedMetadataRebuildTask.doExecute(NpmHostedMetadataRebuildTask.java:50) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmTaskSupport.doRun(NpmTaskSupport.java:55) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmTaskSupport.doRun(NpmTaskSupport.java:37) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:151) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) [nexus-scheduler-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_25] jvm 1 | at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25] jvm 1 | 2015-01-28 15:21:30,151-0400 INFO [pxpool-1-thread-1] admin com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor - Failed to extract or malformed package.json from npm-hosted:/prototype/-/prototype-0.0.5.tgz jvm 1 | java.lang.IllegalArgumentException: does not match format (\d+)\.(\d+)(?:\.)?(\d*)(\.|-|\+)?([0-9A-Za-z-.]*)? jvm 1 | at com.bolyuba.nexus.plugin.npm.internal.Version.parse(Version.java:101) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor.onCollectionExit(RecreateMetadataWalkerProcessor.java:117) ~[na:na] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.onCollectionExit(DefaultWalker.java:325) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:226) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:89) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.DefaultNpmHostedRepository.recreateNpmMetadata(DefaultNpmHostedRepository.java:106) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmHostedMetadataRebuildTask.doExecute(NpmHostedMetadataRebuildTask.java:50) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmTaskSupport.doRun(NpmTaskSupport.java:55) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmTaskSupport.doRun(NpmTaskSupport.java:37) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:151) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) [nexus-scheduler-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_25] jvm 1 | at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25] jvm 1 | 2015-01-28 15:21:30,198-0400 INFO [pxpool-1-thread-1] admin com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor - Failed to extract or malformed package.json from npm-hosted:/ristretto/-/ristretto-0.0.2.tgz jvm 1 | com.fasterxml.jackson.core.JsonParseException: Unexpected character ('}' (code 125)): was expecting double-quote to start field name jvm 1 | at [Source: [B@23362872; line: 8, column: 4] jvm 1 | at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1524) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:557) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:475) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleOddName(UTF8StreamJsonParser.java:1784) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._parseName(UTF8StreamJsonParser.java:1481) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:701) ~[jackson-core-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.mapObject(UntypedObjectDeserializer.java:340) ~[jackson-databind-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:168) ~[jackson-databind-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.mapArray(UntypedObjectDeserializer.java:308) ~[jackson-databind-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:176) ~[jackson-databind-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringMap(MapDeserializer.java:430) ~[jackson-databind-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:312) ~[jackson-databind-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:26) ~[jackson-databind-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2993) ~[jackson-databind-2.3.1.jar:2.3.1] jvm 1 | at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2184) ~[jackson-databind-2.3.1.jar:2.3.1] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor.extractPackageJson(RecreateMetadataWalkerProcessor.java:195) ~[na:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor.onCollectionExit(RecreateMetadataWalkerProcessor.java:110) ~[na:na] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.onCollectionExit(DefaultWalker.java:325) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:226) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:89) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at com.bolyuba.nexus.plugin.npm.hosted.DefaultNpmHostedRepository.recreateNpmMetadata(DefaultNpmHostedRepository.java:106) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmHostedMetadataRebuildTask.doExecute(NpmHostedMetadataRebuildTask.java:50) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmTaskSupport.doRun(NpmTaskSupport.java:55) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at com.bolyuba.nexus.plugin.npm.task.NpmTaskSupport.doRun(NpmTaskSupport.java:37) [nexus-npm-repository-plugin-2.11.2-SNAPSHOT/:na] jvm 1 | at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:151) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) [nexus-scheduler-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.11.2-SNAPSHOT.jar:2.11.2-SNAPSHOT] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_25] jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_25] jvm 1 | at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25] jvm 1 | 2015-01-28 15:21:30,518-0400 INFO [pxpool-1-thread-1] admin com.bolyuba.nexus.plugin.npm.hosted.DefaultNpmHostedRepository - Recreated npm metadata on DefaultNpmHostedRepository(id=npm-hosted) (packageRoots=563/packageVersions=1261) jvm 1 | 2015-01-28 15:21:30,518-0400 INFO [pxpool-1-thread-1] admin org.sonatype.nexus.configuration.application.DefaultNexusConfiguration - Applying Nexus Configuration due to changes in [npm-hosted] made by *TASK... jvm 1 | 2015-01-28 15:21:30,534-0400 INFO [pxpool-1-thread-1] admin com.bolyuba.nexus.plugin.npm.task.NpmHostedMetadataRebuildTask - Scheduled task (rebuild hosted npm data) finished :: Rebuild hosted npm metadata of repositories: [npm-hosted] (started 2015-01-28T15:21:28-04:00, runtime 0:00:01.755) {noformat} ",1 +"NEXUS-8056","01/29/2015 22:55:36","Hiding and restoring columns resizes weirdly","While reviewing NEXUS-7959 (#1), from Repositories (Admin>Repository>Repositories) I removed the type column then added it back (having the original columns there) and noticed that many of the columns, including the lengthy name column were super small. I am not sure if this was because of NEXUS-7959 but I definitely think the resizing could be better. On refresh, everything resizes correctly, but on refresh all the hidden columns are restored as well, so that doesn't really mean much. Waffled between Improvement and Bug; feel free to swap it if you want. If unclear/you prefer a movie let me know. I did not check NX2 at this time; I suspect NX3 specific.",2 +"NEXUS-8057","01/29/2015 23:09:03","Double click resize column does not show full column contents sometimes","In NEXUS-7959 it was revealed (#3) that you can double click column headers to expand contents to full width, giving this column ""priority"". I noticed when you do this with columns with shorter content (like Status) part of the words remain cutoff. I suspect this is because the column width includes the filter dropdown but the space for the contents does not (not sure tho, but that is how it appears). I did not check NX2 at this time. Acceptance Criteria: * If I double click to see contents of a column, I want to see full contents, not ellipsed contents.",2 +"NEXUS-8062","01/30/2015 21:56:21","impossible to delete stale hosted npm repository metadata","Create a npm hosted repo with id 'npm-hosted'. Publish one package into it. Hit the /-/all resource for this repo. Verify the published package metadata. Delete the entire npm hosted repo using the repository Delete button. Create another npm hosted repo with the same id. Hit the /-/all resource for this repo again - you still get metadata about the first repo even though the new repo contains nothing. Similar: delete all the content from a hosted npm repo but leave the repo itself. Nexus still serves metadata about packages which do not exist. Expire cache on the hosted repo does not help. ",2 +"NEXUS-8066","02/02/2015 13:58:59","Apache HttpClient 4.4 is out","Apache HttpClient 4.4 is out, is worth to consider updating to it sometime soon.",1 +"NEXUS-8070","02/02/2015 17:07:37","forgot password feature performs badly with external realms","The forgot username/password feature rest resource ( /service/local/users_forgotid ) of Nexus can cause performance issues against an external realm. We should consider options such as: - optimizing the generic queries that the resource performs for external users - provide a configurable way to disable the feature - consider removing the feature entirely if that is easier - removing the Forgot Username and Forgot Password resource privs from the built in anonymous role. Acceptance Criteria: - Remove Forgot Password/Username feature from UI (just remove the js code) ",2 +"NEXUS-8076","02/03/2015 16:56:09","support zip generation fails if system has mounted clearcase volumes","Support zip generation can fail when processing clearcase volumes: {quote} 2015-02-03 16:11:20 ERROR [qtp1900065549-63898] admin org.sonatype.nexus.atlas.internal.SupportZipGeneratorImpl - Failed to create support ZIP java.nio.file.NoSuchFileException: /vobs/tag/pvob_orc at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86) ~[na:1.7.0_07] at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) ~[na:1.7.0_07] at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) ~[na:1.7.0_07] at sun.nio.fs.UnixFileStore.readAttributes(UnixFileStore.java:111) ~[na:1.7.0_07] at sun.nio.fs.UnixFileStore.getTotalSpace(UnixFileStore.java:118) ~[na:1.7.0_07] {quote} We should catch and log this exception, and then keep going.",0.5 +"NEXUS-8077","02/03/2015 17:07:37","OFF log level for Loggers visible as TRACE in the UI","Add a new Logger or change an existing logger level to {{OFF}}. Upon Saving this logger, the level is displayed as TRACE in the UI. In reality the logger is in fact OFF in logback-overrides.xml",1 +"NEXUS-8080","02/03/2015 19:54:23","concurrent request paths cause ItemNotFoundException during population of not found cache","Create a Maven 2 proxy repository to https://download.newrelic.com called `Yum-Newrelic` **While** a request at this path is executing ( and ultimately returns with 302 or 404 ): {noformat} /nexus/content/repositories/Yum-Newrelic/pub/newrelic/el5/x86_64 {noformat} before this request ends, a request at these paths at the same time fail or throw errors: {noformat} /nexus/content/repositories/Yum-Newrelic/pub/newrelic/el5/x86_64/repodata/filelists.xml.gz /nexus/content/repositories/Yum-Newrelic/pub/newrelic/el5/x86_64/repodata/primary.xml.gz {noformat} {noformat} 2015-02-03 09:03:35 DEBUG [qtp1782294418-246235] org.eclipse.jetty.server.Server - REQUEST /nexus/content/repositories/Yum-Newrelic/pub/newrelic/el5/x86_64 on AsyncHttpConnection@17a2b15d,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=-5,l=13,c=0},r=3 2015-02-03 09:03:35 WARN [qtp1782294418-246230] anonymous org.sonatype.nexus.proxy.maven.maven2.M2Repository - Nexus BUG in ""Newrelic"" [id=Yum-Newrelic], ItemNotFoundException during cache! Please report this issue along with the stack trace below! org.sonatype.nexus.proxy.ItemNotFoundException: Path /pub/newrelic/el5/x86_64/repodata/primary.xml.gz not found in local storage of repository ""Newrelic"" [id=Yum-Newrelic] at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage.retrieveItemFromFile(DefaultFSLocalRepositoryStorage.java:283) ~[nexus-core-2.11.1-01.jar:2.11.1-01] at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage.retrieveItem(DefaultFSLocalRepositoryStorage.java:308) ~[nexus-core-2.11.1-01.jar:2.11.1-01] at org.sonatype.nexus.proxy.repository.AbstractRepository.doRetrieveLocalItem(AbstractRepository.java:1240) [nexus-core-2.11.1-01.jar:2.11.1-01] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doCacheItem(AbstractProxyRepository.java:910) [nexus-core-2.11.1-01.jar:2.11.1-01] at org.sonatype.nexus.proxy.maven.AbstractMavenRepository.doCacheItem(AbstractMavenRepository.java:482) [nexus-core-2.11.1-01.jar:2.11.1-01] at org.sonatype.nexus.proxy.maven.maven2.M2Repository.doCacheItem(M2Repository.java:231) [nexus-core-2.11.1-01.jar:2.11.1-01] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveRemoteItem(AbstractProxyRepository.java:1413) [nexus-core-2.11.1-01.jar:2.11.1-01] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem0(AbstractProxyRepository.java:1147) [nexus-core-2.11.1-01.jar:2.11.1-01] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem(AbstractProxyRepository.java:1030) [nexus-core-2.11.1-01.jar:2.11.1-01] at org.sonatype.nexus.proxy.maven.AbstractMavenRepository.doRetrieveItem(AbstractMavenRepository.java:395) [nexus-core-2.11.1-01.jar:2.11.1-01] at org.sonatype.nexus.proxy.maven.maven2.M2Repository.doRetrieveItem(M2Repository.java:395) [nexus-core-2.11.1-01.jar:2.11.1-01] at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:758) [nexus-core-2.11.1-01.jar:2.11.1-01] at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:590) [nexus-core-2.11.1-01.jar:2.11.1-01] at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:155) [nexus-core-2.11.1-01.jar:2.11.1-01] at org.sonatype.nexus.content.internal.ContentServlet.doGet(ContentServlet.java:387) [nexus-content-plugin-2.11.1-01/:na] at org.sonatype.nexus.content.internal.ContentServlet.service(ContentServlet.java:353) [nexus-content-plugin-2.11.1-01/:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) [javax.servlet-3.0.0.v201112011016.jar:na] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:288) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:278) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [guice-servlet-3.1.10.jar:3.1.10] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [shiro-web-1.2.3.jar:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.11.1-01.jar:2.11.1-01] 2015-02-03 09:03:35 INFO [qtp1782294418-246230] anonymous org.sonatype.nexus.proxy.maven.MavenFileTypeValidator - StorageFileItem Yum-Newrelic:/pub/newrelic/el5/x86_64/repodata/primary.xml.gz MIME-magic validation failed: 0 bytes length file, no content to validate 2015-02-03 09:03:35 INFO [qtp1782294418-246230] anonymous org.sonatype.nexus.proxy.repository.validator.DefaultFileTypeValidatorHub - File item Yum-Newrelic:/pub/newrelic/el5/x86_64/repodata/primary.xml.gz evaluated as INVALID during file type validation (validator=maven) 2015-02-03 09:03:35 INFO [qtp1782294418-246230] anonymous org.sonatype.nexus.proxy.maven.maven2.M2Repository - Proxied item Yum-Newrelic:/pub/newrelic/el5/x86_64/repodata/primary.xml.gz evaluated as INVALID during content validation (validator=filetypevalidator, sourceUrl=https://download.newrelic.com/pub/newrelic/el5/x86_64/repodata/primary.xml.gz) 2015-02-03 09:03:35 DEBUG [qtp1782294418-246230] org.eclipse.jetty.server.Server - RESPONSE /nexus/content/repositories/Yum-Newrelic/pub/newrelic/el5/x86_64/repodata/primary.xml.gz 404 handled=true 2015-02-03 09:03:35 DEBUG [qtp1782294418-246235] org.eclipse.jetty.server.Server - RESPONSE /nexus/content/repositories/Yum-Newrelic/pub/newrelic/el5/x86_64 404 handled=true {noformat} ",1 +"NEXUS-8083","02/04/2015 10:22:30"," Connection leak in Browse Remote when content encoding is gzip","There is a connection leak triggered when using the Browse Remote feature. h4. Symptoms Logs contain these types of messages: bq. 2015-02-23 08:57:27 WARN [850148762-12088] - org.sonatype.nexus.plugins.rrb.MavenRepositoryReader - Failed to get directory listing content bq. org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool h4. Cause Under normal circumstances the leak is handled gracefully by GC and HttpClient. Still, in case when remote uses Content-Encoding: gzip and/or chunked transfer encoding, the connections are NOT reused even after longer period, leading to connection pool depletion. h5. Original reporter's description: {quote} When I'm browsing a remote maven repository in 2.11.1-01, after maybe ~20 steps through the remote repository tree, I get an infinitly spinning cirle. Refresh doesn't work either. The only way to continue browsing the repository is to restart Nexus. This seems to impede all communication with the remote repository. Downloading a file that has not yet been cached locally doesn't work either in this state. {quote} h4. Workaround For immediate mitigation a Nexus restart is required to free the leaking connections. For temporary mitigation until you upgrade to a fixed Nexus version, install the version specific patched jars attached to this issue. ",1 +"NEXUS-8111","02/05/2015 21:58:58","On Login, Password appears filled in IE11","While reviewing my Windows 7 VM, on Nexus 3 login, I noticed that the password field already had *s in it. I think they were a lighter grey (same color as the guide text) but I'm not 100% sure. This does not occur in MacOSX or CentOS. I am pretty sure it does not occur in NX2 (W7) either but I did not double check due to it being NX2 UI and us not reviewing that right now. I felt this confusing and worth making the same as others ""Password"" if possible.",0.5 +"NEXUS-8128","02/09/2015 16:08:24","Store state of grid columns and sorting","As a user, if I add columns to a results page, I would like them to remain that way at least for the duration of my session. --- While testing CLM, I searched and then added Security Issues and License Threat columns to see the results. Unsatisfied I did another search and noticed that those added columns were removed. I realized we just talked about this in a semi-recent meeting but did not see a ticket. I also assume this is behaving as desired and is not a bug. If I am wrong, please feel free to adjust the issue type. While my example was for search, I think this use case would be good for all pages. There was discussion about making this longer than a session, which would solve the minimal case I mentioned above. I did not test NX3 at this time because I believe search (specifically) is in flux. Note: - Could be a mixin that handles this (http://docs-origin.sencha.com/extjs/4.2.3/#!/api/Ext.state.Stateful) Tech Direction: - Configure grids to be stateful",0.5 +"NEXUS-8130","02/09/2015 19:09:34","Regression: Yum enabled staging repositories can't be released if target release repository contains yum metadata","# Configure a hosted repository to allow yum metadata generation. # Deploy an rpm into the hosted repository # Configure a staging profile to allow yum metadata generation, and to release into the hosted repository used in step 1 # Stage an rpm, then try to release it This will fail with a message like this: {quote} Artifact updating: Repository ='releases:Releases' does not allow updating artifact='/repodata/repomd.xml' {quote} This is a regression, in 2.10.0 the above scenario works without any problems. In Nexus 2.11.1 if you try to release a staging repository that has yum metadata generation enabled it will fail if the target repository has a ""repodata/repomd.xml"" file in it already.",2 +"NEXUS-8148","02/13/2015 15:07:29","Add scheduled tasks list filter when creating tasks","In Nexus 3, when creating a new scheduled task, add a filter to help you find named tasks easier. ",0.5 +"NEXUS-8157","02/17/2015 18:19:23","Both timeout and server disconnect messages can be shown","Talking to Daniel last week, he mentioned that Jason had noticed both timeout and server shutdown popouts before (see screen). Today at lunch, my NX3 (Dizzam SNAPSHOT) timed out so I went ahead and shut down the server and was able to reproduce this behavior. The only difference in my experience was my timeout message was first (thus grey not focused/white) rather than server, probably because it was the first to occur. Since disconnected and needing action on both events, once you receive one popout, do not believe there is value in having the other so logging a bug for evaluation.",0.5 +"NEXUS-8159","02/18/2015 13:57:42","verbose WARN on NuGet proxy RemoteItemNotFoundException should be logged similar to other repository types","When a request for a remote NuGet package is made and the result is 404 not found, Nexus should not print a full WARN stack trace. {noformat} 2015-02-18 00:00:40,726+0000 WARN [qtp1494633745-181379] anonymous com.sonatype.nexus.plugins.nuget.passthrough.PassThroughNugetGallery - Exception attempting to contact proxied repository nuget.org-api. org.sonatype.nexus.proxy.storage.remote.RemoteItemNotFoundException: Path Packages(Id='Sfx.AutoReferenceData.Common',Version='1.0.0.6551') not found in remote storage of repository ""nuget.org-api"" [id=nuget.org-api] (reason=NotFound, remoteUrl=https://www.nuget.org/api/v2/Packages(Id='Sfx.AutoReferenceData.Common',Version='1.0.0.6551')). at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.retrieveItem(HttpClientRemoteStorage.java:263) ~[nexus-core-2.11.1-01.jar:2.11.1-01] at com.sonatype.nexus.plugins.nuget.feed.NugetFeedFetcher.getStorageItem(NugetFeedFetcher.java:124) ~[na:na] at com.sonatype.nexus.plugins.nuget.feed.NugetFeedFetcher.cachePackageFeed(NugetFeedFetcher.java:73) ~[na:na] at com.sonatype.nexus.plugins.nuget.passthrough.PassThroughNugetGallery.entry(PassThroughNugetGallery.java:186) ~[na:na] at com.sonatype.nexus.plugins.nuget.rest.NugetGalleryResource.get(NugetGalleryResource.java:161) ~[na:na] at org.sonatype.plexus.rest.resource.RestletResource.represent(RestletResource.java:233) ~[na:na] at org.sonatype.nexus.rest.NexusRestletResource.represent(NexusRestletResource.java:39) ~[na:na] at org.restlet.resource.Resource.getRepresentation(Resource.java:302) ~[na:na] at org.restlet.resource.Resource.handleGet(Resource.java:464) ~[na:na] at org.restlet.Finder.handle(Finder.java:353) ~[na:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[na:na] at org.restlet.Filter.handle(Filter.java:195) ~[na:na] at org.restlet.Router.handle(Router.java:504) ~[na:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[na:na] at org.restlet.Filter.handle(Filter.java:195) ~[na:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[na:na] at org.sonatype.plexus.rest.RetargetableRestlet.doHandle(RetargetableRestlet.java:36) ~[na:na] at org.restlet.Filter.handle(Filter.java:195) ~[na:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[na:na] at org.restlet.Filter.handle(Filter.java:195) ~[na:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[na:na] at org.restlet.Filter.handle(Filter.java:195) ~[na:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[na:na] at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130) ~[na:na] at org.restlet.Filter.handle(Filter.java:195) ~[na:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[na:na] at org.restlet.Filter.handle(Filter.java:195) ~[na:na] at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) ~[na:na] at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112) ~[na:na] at org.restlet.Application.handle(Application.java:341) ~[na:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[na:na] at org.restlet.Filter.handle(Filter.java:195) ~[na:na] at org.restlet.Router.handle(Router.java:504) ~[na:na] at org.restlet.Filter.doHandle(Filter.java:150) ~[na:na] at org.restlet.Filter.handle(Filter.java:195) ~[na:na] at org.restlet.Router.handle(Router.java:504) ~[na:na] at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124) ~[na:na] at org.restlet.Component.handle(Component.java:676) ~[na:na] at org.restlet.Server.handle(Server.java:331) ~[na:na] {noformat} Expected: Log in a manner consistent with other proxy repository types on remote item not found.",0.5 +"NEXUS-8186","02/25/2015 15:33:27","RubyGems repository - error fetching gem from internal gem server ","I can't install gem locally that is stored in internal gem server I followed the instructions in chapter 18 in the ""Repository Management with Nexus"" manual: http://books.sonatype.com/nexus-book/2.11/pdf/nxbook-pdf.pdf I am using nexus-2.11.2-03 I can install gems that are found on RubyGems.org but I can't install gems that are in my internal gem server. I am able to install the nexus gem and push my internal gem to the internal gem repository. Everything documented in chapter 18 works for me except for the fetching (installing) of gem that is in my internal repository. I tried to install it using gem as well as bundler and both failed. Attached are the logs, the first test was using gem to install: gem install amt_modules -v 1.0.3 jvm 1 | 2015-02-25 15:12:40,714+0000 WARN [qtp1997550262-52] deployment org.sonatype.nexus.proxy.storage.local.fs.DefaultFSPeer - Could not delete file: C:\nexus\sonatype-work\nexus\storage\gems-internal\specs.4.8.gz jvm 1 | java.nio.file.FileSystemException: C:\nexus\sonatype-work\nexus\storage\gems-internal\specs.4.8.gz: The process cannot access the file because it is being used by another process. second test was to setup bundler and once run I got an different exception: bundle install jvm 1 | 2015-02-25 15:18:43,261+0000 WARN [qtp1997550262-55] anonymous org.sonatype.nexus.plugins.ruby.proxy.DefaultProxyRubyRepository - Failed URL retrieve/cache: https://rubygems.org jvm 1 | java.nio.file.InvalidPathException: Illegal char at index 69: C:\nexus\sonatype-work\nexus\storage\rubygems-org\api\v1\dependencies?gems=amt_modules jvm 1 | at sun.nio.fs.WindowsPathParser.normalize(Unknown Source) ~[na:1.8.0_25] ",1 +"NEXUS-8192","02/25/2015 22:52:03","Subheader text contains redundancy with content","In NEXUS-7758, the capability details were merged from 4 areas to 2. One of the things that moved was the Notes (About) section. However, in the post-deploy, I noticed that the details area has a header ""Notes"" but the old details also have ""Notes:"". I checked with [~dsauble] and we agree it's redundancy and can be removed. Because so much of NEXUS-7758 is working, filing a separate ticket to avoid failing the ""parent"" over something so small. See attached for how it is now (one example), if you need more or old screens let me know. Because of recent adjustment this is not an issue in NX2 or NX3-m3 (or earlier).",0.5 +"NEXUS-8193","02/26/2015 14:46:09","Upgrade to Jetty 9.2.9 or greater","There is a vulnerability to avoid so we need to upgrade. https://github.com/eclipse/jetty.project/blob/jetty-9.2.x/advisories/2015-02-24-httpparser-error-buffer-bleed.md ",0.5 +"NEXUS-8195","02/26/2015 19:32:53","Deadlock between yum merge metadata task and yum generate metadata task","Concurrently running yum generate and merge metadata tasks can deadlock. The generate yum metadata tasks tries to get locks on group metadata: {quote} pxpool-1-thread-11 id=181 state=WAITING - waiting on <0x629c279d> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) - locked <0x629c279d> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) owned by qtp2025967620-804 id=804 at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:867) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1197) at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:945) at org.sonatype.nexus.yum.internal.YumGroupImpl.markDirty(YumGroupImpl.java:109) at org.sonatype.nexus.yum.internal.task.GenerateMetadataTask.regenerateMetadataForGroups(GenerateMetadataTask.java:267) at org.sonatype.nexus.yum.internal.task.GenerateMetadataTask.doRun(GenerateMetadataTask.java:183) at org.sonatype.nexus.yum.internal.task.GenerateMetadataTask.doRun(GenerateMetadataTask.java:69) at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:151) at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) {quote} And the merge metadata tasks tries to get UID locks on the group repositories children, who (presumably) are not giving it to them because they're running generate metadata: {quote} pxpool-1-thread-4 id=157 state=WAITING - waiting on <0x4a6f1c78> (a java.util.concurrent.Semaphore$FairSync) - locked <0x4a6f1c78> (a java.util.concurrent.Semaphore$FairSync) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:964) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1282) at java.util.concurrent.Semaphore.acquireUninterruptibly(Semaphore.java:500) at org.sonatype.sisu.locks.LocalResourceLock.acquire(LocalResourceLockFactory.java:83) at org.sonatype.sisu.locks.AbstractSemaphoreResourceLock.lockShared(AbstractSemaphoreResourceLock.java:50) at org.sonatype.nexus.proxy.item.SisuLockResource.lockShared(SisuLockResource.java:38) at org.sonatype.nexus.proxy.item.DefaultRepositoryItemUidLock.lock(DefaultRepositoryItemUidLock.java:35) at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:757) at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:592) at org.sonatype.nexus.yum.internal.task.MergeMetadataTask.getBaseDirsOfMemberRepositories(MergeMetadataTask.java:142) at org.sonatype.nexus.yum.internal.task.MergeMetadataTask.doRun(MergeMetadataTask.java:102) at org.sonatype.nexus.yum.internal.task.MergeMetadataTask.doRun(MergeMetadataTask.java:61) at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:151) at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) {quote}",0.5 +"NEXUS-8196","02/26/2015 20:26:00","Timeout modal dialog does not appear sometimes (related JS error)","While at lunch and shoveling, I timed out NX3 (Dizzam SNAPSHOT) again/as usual. On return to my session however there was no popout saying it had timed out (as was implemented in m3). Because of what I was testing, I did have my Javascript Console open and this was there: "" POST http://localhost:8081/service/extdirect/poll/rapture_State_get 500 (javax.servlet.ServletException: Filtered request failed.)baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1424962738701:1 Ext.cmd.derive.requestbaseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1424962738701:1 Ext.cmd.derive.runPollbaseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1424962738701:1 Ext.cmd.derive.onTickbaseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1424962738701:1 (anonymous function) baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1424962738701:1"" I'd never seen this fail before so it's intermittent. However Daniel said he'd seen this before as well, so ticketing so not to lose the (presumably) associated debug.",2 +"NEXUS-8197","02/26/2015 21:45:06","Creating (fake) LDAP errors w/ ""Map LDAP groups as roles"" unchecked","While testing NEXUS-7758, I created a fake LDAP just to make sure all the newly formed dialogues were working functionally. Note, my intention was not to create a real LDAP setup and I don't think that matters in this case. After filling out Connection information and clicking next, I went to fill out ""User and group"" information. In past iterations, I had picked a configuration template but this time just filled in the required variables. When I got down to Group Type, I decided to uncheck ""Map LDAP group as roles"" (figuring correctly this would hide the required field, thus in essence making it fill). On creation click, I got the following error in the log as well as a ""java.lang.IllegalArguementException"" from the UI. The UI error struck me the most because almost all of our warnings are defined so you can tell what the error was. {quote} 2015-02-26 16:00:09,961-0500 ERROR [qtp904481188-171] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: ldap_LdapServer.create, java-method: org.sonatype.nexus.ldap.internal.ui.LdapServerComponent.create java.lang.IllegalArgumentException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [na:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.7.0_71] at java.lang.reflect.Method.invoke(Method.java:606) [na:1.7.0_71] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) [groovy-all:2.3.7] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) [groovy-all:2.3.7] at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:2662) [groovy-all:2.3.7] at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:3702) [groovy-all:2.3.7] at groovy.lang.MetaClassImpl.setProperties(MetaClassImpl.java:1741) [groovy-all:2.3.7] at org.codehaus.groovy.runtime.callsite.ConstructorSite$NoParamSite.callConstructor(ConstructorSite.java:122) [groovy-all:2.3.7] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190) [groovy-all:2.3.7] at org.sonatype.nexus.ldap.internal.ui.LdapServerComponent.asCLdapServerConfiguration(LdapServerComponent.groovy:362) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [na:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.7.0_71] at java.lang.reflect.Method.invoke(Method.java:606) [na:1.7.0_71] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:207) [groovy-all:2.3.7] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:56) [groovy-all:2.3.7] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:145) [groovy-all:2.3.7] at org.sonatype.nexus.ldap.internal.ui.LdapServerComponent.create(LdapServerComponent.groovy:128) [na:na] at org.sonatype.nexus.extender.modules.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [na:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.7.0_71] at java.lang.reflect.Method.invoke(Method.java:606) [na:1.7.0_71] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:204) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:124) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:297) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:281) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:186) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.AbstractServletPipeline.service(AbstractServletPipeline.java:65) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [org.sonatype.sisu.guice:3.2.5] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.5] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.web.SecurityFilter.executeChain(SecurityFilter.java:87) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.5] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:136) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.5] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.5] at org.sonatype.nexus.internal.web.StandardHttpResponseHeadersFilter.doFilter(StandardHttpResponseHeadersFilter.java:80) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.5] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:65) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.5] at org.sonatype.nexus.internal.web.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:68) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [org.sonatype.sisu.guice:3.2.5] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [org.eclipse.jetty.servlet:9.2.7.v20150116] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) [org.eclipse.jetty.servlet:9.2.7.v20150116] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [org.eclipse.jetty.security:9.2.7.v20150116] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [org.eclipse.jetty.servlet:9.2.7.v20150116] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.7.v20150116] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.Server.handle(Server.java:497) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:245) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [org.eclipse.jetty.io:9.2.7.v20150116] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [org.eclipse.jetty.util:9.2.7.v20150116] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [org.eclipse.jetty.util:9.2.7.v20150116] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71] {quote} My original test was in Safari but I confirmed in Chrome (both MacOSX). After doing this, I found that if I left the box checked and filled in the value, everything worked (thus templates were also working). After realizing that, I checked m3 and it was working there. This also works in NX2. This seems new to Dizzam.",1 +"NEXUS-8199","02/26/2015 22:17:27","Cannot save (fake) LDAP connection after creation","Testing NEXUS-7758, I created a fake LDAP connection configuration to make sure the process was still functionally working (as well as graphic changes were made). I was able to do this however when I went back in to check editing, on save, I got this error. If I had to guess, I'd say it is checking if my setup is valid on save. m3 does not do this so if not intentional this is regression. NOTE: If intentional it is weird to me the initial save works. I am making an additional assumption that this does not have anything to do with the (fake) variables I entered as I did several several different times, but if you can't repro and want more info about what I put in, let me know. I did not check NX2 at this time. {quote} 2015-02-25 16:01:39,947-0500 ERROR [qtp245357559-132] admin com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor - (Controlled) server error: Failed attempt to convert from a json string to java method parameters. Method='ldap_LdapServer.update', Json string='[{""order"":1,""url"":""ldap://whatever:1/dc=joe"",""useTrustStore"":false,""authRealm"":null,""authUsername"":null,""authPassword"":null,""userSubtree"":false,""userMemberOfAttribute"":""memberOf"",""ldapGroupsAsRoles"":false,""groupType"":null,""groupBaseDn"":null,""groupSubtree"":false,""groupIdAttribute"":null,""groupMemberAttribute"":null,""groupMemberFormat"":null,""groupObjectClass"":null,""id"":""cf24ad56-513f-4137-9b9b-99f639bcf55d"",""name"":""a"",""protocol"":""ldap"",""host"":""whatever"",""port"":""1"",""searchBase"":""dc=joe"",""authScheme"":""none"",""connectionTimeout"":""30"",""connectionRetryDelay"":""300"",""maxIncidentsCount"":""3"",""combo-1569-inputEl"":"""",""userBaseDn"":"""",""userObjectClass"":""inetOrgPerson"",""userLdapFilter"":"""",""userIdAttribute"":""uid"",""userRealNameAttribute"":""cn"",""userEmailAddressAttribute"":""mail"",""userPasswordAttribute"":""userPassword"",""backupMirrorProtocol"":"""",""backupMirrorHost"":"""",""backupMirrorPort"":"""",""backupMirrorEnabled"":false}]', ExpectedTypes='org.sonatype.nexus.ldap.internal.ui.LdapServerXO' for Method 'ldap_LdapServer.update' com.softwarementors.extjs.djn.gson.JsonException: Failed attempt to convert from a json string to java method parameters. Method='ldap_LdapServer.update', Json string='[{""order"":1,""url"":""ldap://whatever:1/dc=joe"",""useTrustStore"":false,""authRealm"":null,""authUsername"":null,""authPassword"":null,""userSubtree"":false,""userMemberOfAttribute"":""memberOf"",""ldapGroupsAsRoles"":false,""groupType"":null,""groupBaseDn"":null,""groupSubtree"":false,""groupIdAttribute"":null,""groupMemberAttribute"":null,""groupMemberFormat"":null,""groupObjectClass"":null,""id"":""cf24ad56-513f-4137-9b9b-99f639bcf55d"",""name"":""a"",""protocol"":""ldap"",""host"":""whatever"",""port"":""1"",""searchBase"":""dc=joe"",""authScheme"":""none"",""connectionTimeout"":""30"",""connectionRetryDelay"":""300"",""maxIncidentsCount"":""3"",""combo-1569-inputEl"":"""",""userBaseDn"":"""",""userObjectClass"":""inetOrgPerson"",""userLdapFilter"":"""",""userIdAttribute"":""uid"",""userRealNameAttribute"":""cn"",""userEmailAddressAttribute"":""mail"",""userPasswordAttribute"":""userPassword"",""backupMirrorProtocol"":"""",""backupMirrorHost"":"""",""backupMirrorPort"":"""",""backupMirrorEnabled"":false}]', ExpectedTypes='org.sonatype.nexus.ldap.internal.ui.LdapServerXO' at com.softwarementors.extjs.djn.gson.JsonException.forFailedConversionFromJsonStringToMethodParameters(JsonException.java:62) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.jsonDataToMethodParameters(JsonRequestProcessor.java:273) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.getIndividualRequestParameters(JsonRequestProcessor.java:255) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:494) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:124) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:297) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:281) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:186) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.AbstractServletPipeline.service(AbstractServletPipeline.java:65) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [org.sonatype.sisu.guice:3.2.5] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.5] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.web.SecurityFilter.executeChain(SecurityFilter.java:87) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.5] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:136) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.5] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.5] at org.sonatype.nexus.internal.web.StandardHttpResponseHeadersFilter.doFilter(StandardHttpResponseHeadersFilter.java:80) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.5] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:65) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.5] at org.sonatype.nexus.internal.web.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:68) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [org.sonatype.sisu.guice:3.2.5] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [org.sonatype.sisu.guice:3.2.5] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [org.eclipse.jetty.servlet:9.2.7.v20150116] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) [org.eclipse.jetty.servlet:9.2.7.v20150116] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [org.eclipse.jetty.security:9.2.7.v20150116] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [org.eclipse.jetty.servlet:9.2.7.v20150116] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.7.v20150116] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.Server.handle(Server.java:497) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:245) [org.eclipse.jetty.server:9.2.7.v20150116] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [org.eclipse.jetty.io:9.2.7.v20150116] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [org.eclipse.jetty.util:9.2.7.v20150116] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [org.eclipse.jetty.util:9.2.7.v20150116] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71] Caused by: com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: For input string: """" at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:232) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:222) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:94) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:178) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.google.gson.Gson.fromJson(Gson.java:791) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.google.gson.Gson.fromJson(Gson.java:855) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.jsonToJavaObject(JsonRequestProcessor.java:365) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.getMethodParameters(JsonRequestProcessor.java:315) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.jsonDataToMethodParameters(JsonRequestProcessor.java:269) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] ... 68 common frames omitted Caused by: java.lang.NumberFormatException: For input string: """" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) [na:1.7.0_71] at java.lang.Integer.parseInt(Integer.java:504) [na:1.7.0_71] at java.lang.Integer.parseInt(Integer.java:527) [na:1.7.0_71] at com.google.gson.JsonPrimitive.getAsInt(JsonPrimitive.java:255) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.google.gson.internal.bind.JsonTreeReader.nextInt(JsonTreeReader.java:197) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:230) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] ... 76 common frames omitted {quote} This is borderline major because of the error however because this only happens (as far as I know) with a fake configuration and optimally users will only ever have legitimate configurations, leaving minor for now. Workaround would be to use a correct configuration.",1 +"NEXUS-8206","02/27/2015 17:14:58","Possible to grey out create button","While testing NEXUS-7758, I went to create a task and filtered, but realized I missed something so switched to repositories. After finding the info I needed, I returned to Tasks but my create button was greyed out/unselectable. I was able to repro this reliably by filtering on a second level (Tasks) returning to a base level (not even filtering) and then returning. Steps below. I went to see if this was an issue in m3 but as far as I can tell there are no second level filters in m3, this is a new concept to Dizzam. This also does not affect NX2 (same reason but more basic). Borderline minor as the workaround is to restart/refresh browser. I do not believe this is related to where I found it but linking in case wrong and for completeness. Steps: 1) Login to NX3 (Dizzam) as admin 2) Click Tasks (admin section, under System) 3) Click Create 4) Filter by something (like ""whatever"") 5) Click Repositories (left nav item under Repository) 6) Click Tasks again. BUG: Create is disabled/greyed out.",2 +"NEXUS-8224","03/04/2015 13:16:37","Update OrientDB from 2.0.2 to 2.0.4","Changes: https://github.com/orientechnologies/orientdb/issues?q=milestone%3A2.0.4 https://github.com/orientechnologies/orientdb/issues?q=milestone%3A%222.0.3+%28hotfix%29%22 ",0.5 +"NEXUS-8226","03/04/2015 17:55:49","Create a task to find and fix bad checksums affected by the extra link detection check","See NEXUS-8221 and NEXUS-8178 The bad checksums are based on the first 8 bytes of the item plus the full content of the item. The task should search the item context and attributes for checksums that match and regenerate them.",2 +"NEXUS-8235","03/05/2015 17:26:13","Certain errors hose the UI","When certain errors (e.g. Ext.Direct errors) occur, the UI will refuse to load features until it is refreshed. Example: http://take.ms/XG47F We should change this behavior so failures are localized to features with bad implementations, and don’t affect the web UI globally.",0.5 +"NEXUS-8241","03/08/2015 00:32:23","Add authentication guard before allowing template download","Before allowing user to download settings template, ask for authentication, as the template could have sensitive information.",1 +"NEXUS-8247","03/10/2015 19:29:47","Capabilities enabled box unchecked during creation","While comparing NX2 and NX3, I discovered that on creation of Capabilities in NX3, the enabled checkbox is automatically unchecked. In NX2, the enabled checkbox was automatically checked. I emailed asked if anyone knew if this was intentional and several folks said it was regression, so I am filing. There was note that some Capabilities we may want not checked to start. I recently went through and created them all testing something unrelated and am pretty sure they are all functioning this way. If you'd like me to recheck let me know. While probably trivial priority (easy workaround to check the box), I am giving minor priority due to regression. I did not check older versions of NX3 at this time.",0.5 +"NEXUS-8260","03/12/2015 18:50:44","Automatically set last updated date for assets and components","As per March 12th discussion on nexus-cma list. Acceptance criteria: * Adding a component or asset record will automatically set the last_updated property to the current time. * Updating a component or asset record will do the same. * Works for all types of repositories automatically. Accordingly, this work should also drop the code that manually sets this property today for nuget and raw assets.",1 +"NEXUS-8261","03/12/2015 18:54:02","Add support to set base-url-holder value for scheduled tasks","ATM we only invoke BaseUrlHolder.set() in servlet filter. We need to have a means to set this in other context, like scheduled tasks.",1 +"NEXUS-8278","03/16/2015 14:50:00","Add Component/Asset wrappers for OrientVertex","This is a refactoring task to simplify existing format implementations and make it easier to unit test them by adding a Component and Asset wrappers for OrientVertex. Where it makes sense, these will: * Be returned by StorageFacet in place of OrientVertex * Be used by existing format impls in place of direct OrientVertex access * Take on some of the utility functionality of StorageTx (e.g. getAttributes) and format-specific helpers, if any are found that can be generalized. * Include getters/setters for format-neutral properties",1 +"NEXUS-8288","03/18/2015 01:07:36","Validate repository name","Elasticsearch seems to be more finicky that our data model allows right now, and likely spaces in Repository names is something we want to support. {code} 2015-03-17 18:00:04,403-0700 ERROR [FelixStartLevel] *SYSTEM org.sonatype.nexus.repository.manager.RepositoryImpl - Failed to start facet: org.sonatype.nexus.repository.search.SearchFacetImpl$$EnhancerByGuice$$e319c5e4@7ea728 org.elasticsearch.indices.InvalidIndexNameException: [NuGet.org Proxy] Invalid index name [NuGet.org Proxy], must not contain the following characters [\, /, *, ?, "", <, >, |, , ,] at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService.validateIndexName(MetaDataCreateIndexService.java:173) [na:na] at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService.validate(MetaDataCreateIndexService.java:559) [na:na] at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService.access$200(MetaDataCreateIndexService.java:87) [na:na] at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(MetaDataCreateIndexService.java:243) [na:na] at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:329) [na:na] at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:153) [na:na] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_40] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_40] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {code} And after removing the space we find we don't allow uppercase letters: {code} 2015-03-17 18:10:36,359-0700 ERROR [qtp137889432-243] admin org.sonatype.nexus.repository.manager.RepositoryImpl - Failed to start facet: org.sonatype.nexus.repository.search.SearchFacetImpl$$EnhancerByGuice$$e319c5e4@43fd34ca org.elasticsearch.indices.InvalidIndexNameException: [Nuget.orgProxy] Invalid index name [Nuget.orgProxy], must be lowercase at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService.validateIndexName(MetaDataCreateIndexService.java:182) [na:na] at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService.validate(MetaDataCreateIndexService.java:559) [na:na] at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService.access$200(MetaDataCreateIndexService.java:87) [na:na] at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(MetaDataCreateIndexService.java:243) [na:na] at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:329) [na:na] at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:153) [na:na] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_40] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_40] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {code} To reproduce just add a new Repository in the UI with a space or capital letter in the name. An unhelpful error is shown in the UI: ""Failed to start facets"" Minimally we should add validation to ensure that we don't allow invalid characters, as right now we end up with configured Repositories that cannot possibly function. Acceptance criteria: - names should be validated in the UI, and provide guidance when illegal names are tried - names should be validated on the server using the same rules as the client(preventing abuse of the ExtDirect api) - names should only allow (English) alphanumeric and -_. (dash, underscore, period) - names should be sanitized for elasticsearch usage in index names; this requires enforcing case-insensitive uniqueness of names as indexes are all lowercase",2 +"NEXUS-8291","03/18/2015 15:22:32","make ?describe optionally return html or json","It would be useful to get ?describe output as JSON in addition to HTML. - scripting can parse JSON much more easily than html - when requesting ?describe output from an end user for troubleshooting, asking the user to login to UI, and then using same browser session to request ?describe output is extra work to do and explain. In some cases, the user may not even be able to access the UI due to security restrictions - it is much simpler to visually grok a JSON response on the cmd line - a cmd line response as JSON can be more easily piped into JSON parsing tools to isolate specific data Proposed Criteria: - if the user agent implies a web browser is being used, return html, otherwise return JSON with the appropriate Content-Type header - if the request Accept header explicitly requests either JSON or HTML, return it as requested - the data (model) returned for both content types should be identical - JSON pretty printed by default is preferable, but not absolutely required initially if it impacts the implementation significantly",1 +"NEXUS-8292","03/18/2015 15:28:46","Investigate and fix failing functional tests","Appears that something has changed in Repository Targets to cause the test to fail. It looks like in most cases the test framework fails to type the expected name completely. And the modal presented for the form definitely has some styling issues. Failing tests have been quarantined until we sort this out. http://bamboo.s/chain/result/viewChainResult.action?planKey=NX3-DISTT&buildNumber=43",0.5 +"NEXUS-8316","03/23/2015 15:17:34","Profile Target Matcher staging rule should not fail on file patterns not uploaded into a staging repository","Setup - Create a staging ruleset with a Profile Target Matcher Rule - Create a Repository target that includes these typical patterns: -- {{^/+com/example/.*}} -- {{/|/com/|/com/example/.*}} - Create a staging profile that references the repository target and uses the staging ruleset in the Close and promote set of rulesets to apply Test - Stage matching artifacts against this staging profile to create a closed staging repository. This works, as the ruleset patterns match - Try to release the staging repository. This fails because of the Profile target matcher rule. Nexus created a {{/archetype-catalog.xml}} file on close, and the repository target pattern does not match this. Expected - one should not have to add patterns to a repository target for files generated by Nexus in order to apply the Profile Target Matcher rule on a staging repository - one should still be allowed to apply this rule on Release/Promotion, in case the repository target has changed since the staging repository was closed ",2 +"NEXUS-8324","03/24/2015 17:05:27","Checksum search should be case insensitive","When doing a search for the sha1 hash I was unable to locate the file I was expecting. The tool I was using was generating an upper case hash string which didn't match. e.g. for http://search.maven.org/#artifactdetails|org.springframework.ws|spring-ws-core|2.2.0.RELEASE|jar {code:XML} org.springframework.ws spring-ws-core 2.2.0.RELEASE {code} The lower case hash works f5de942e30c3c047a273b5bb42cc5c71d3303fcb The upper case does not. F5DE942E30C3C047A273B5BB42CC5C71D3303FCB Acceptance criteria: * Make the keyword field case insensitive Technical notes: * This will require a reindex",2 +"NEXUS-8343","03/27/2015 19:45:16","make it easier to find the nexus software license","The LICENSE.txt file in the Nexus OSS bundle doesn't contain the license Nexus is licensed under, instead it contains the license for the health check plugin. The EPL software license is actually in the NOTICE.txt file in the bundle. This is confusing, it seems to me the contents of the files should be reversed. The github project also doesn't show the license, you need to look at source code headers to figure it out. ",1 +"NEXUS-8352","03/31/2015 14:33:17","Typo in CLM Server helper text","Noticed that the CLM>Server page helper text says ""empty a password"" for the Password field. Believe this a typo and should be ""enter a password"". I did not check NX2 or older NX3 versions at this time.",0.5 +"NEXUS-8356","03/31/2015 20:12:05","Use “present” instead of the current year in the copyright notice","So we don’t have to update it every year. Do this: Copyright © 2008-present, Sonatype Inc. All rights reserved.",1 +"NEXUS-8389","04/06/2015 18:20:54","npm plugin does not work with UNC paths","Install Nexus on a path which can be mounted using UNC on Windows. Start a Powershell console ( CMD console doesn't like UNC paths ) and change directory to the UNC path when the nexus.bat script lives Start Nexus with {{./nexus console}} Notice the Orient database used by the NPM plugin logs some errors on startup, yet the Nexus NPM plugin starts successfully. {noformat} 2015-04-06 09:16:23,773-0700 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.NxApplication - Plugin manager request ""ACTIVATE"" on plugin ""org.sonatype.nexus.plugins:nexus-npm-repository-plugin:2.11.2-06"" was successful. 2015-04-06 09:16:39,870-0700 ERROR [jetty-main-1] *SYSTEM com.bolyuba.nexus.plugin.npm.service.internal.orient.OrientMetadataStore - Life-cycle operation failed com.orientechnologies.orient.core.exception.ODatabaseException: Cannot create database 'npm' at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.create(ODatabaseDocumentTx.java:436) ~[nexus-npm-repository-plugin-2.11.2-06/:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.create(ODatabaseDocumentTx.java:352) ~[nexus-npm-repository-plugin-2.11.2-06/:na] at com.bolyuba.nexus.plugin.npm.service.internal.orient.OrientMetadataStore.doStart(OrientMetadataStore.java:101) ~[nexus-npm-repository-plugin-2.11.2-06/:na] at org.sonatype.sisu.goodies.lifecycle.LifecycleSupport$Handler.doStart(LifecycleSupport.java:70) ~[goodies-lifecycle-1.9.jar:1.9] at org.sonatype.sisu.goodies.lifecycle.LifecycleHandlerContext$MainMap_Starting.started(LifecycleHandlerContext.java:255) ~[goodies-lifecycle-1.9.jar:1.9] at org.sonatype.sisu.goodies.lifecycle.LifecycleHandlerContext.started(LifecycleHandlerContext.java:57) ~[goodies-lifecycle-1.9.jar:1.9] at org.sonatype.sisu.goodies.lifecycle.LifecycleSupport.start(LifecycleSupport.java:129) ~[goodies-lifecycle-1.9.jar:1.9] at com.bolyuba.nexus.plugin.npm.service.internal.orient.OrientMetadataStoreLifecycle.on(OrientMetadataStoreLifecycle.java:51) [nexus-npm-repository-plugin-2.11.2-06/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_40] at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_40] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventHandler.handleEvent(EventHandler.java:80) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.guava.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:49) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.dispatch(EventBus.java:329) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.DefaultGuavaEventBus.dispatch(DefaultGuavaEventBus.java:34) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.ReentrantGuavaEventBus.dispatchQueuedEvents(ReentrantGuavaEventBus.java:57) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.post(EventBus.java:281) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus.post(DefaultEventBus.java:78) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.nexus.NxApplication.(NxApplication.java:106) [nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.NxApplication$$FastClassByGuice$$7af2777c.newInstance() [sisu-guice-3.1.10.jar:2.11.2-06] at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:108) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:32) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:92) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:113) [sisu-guice-3.1.10.jar:3.1.10] at org.eclipse.sisu.bean.BeanScheduler$Activator.onProvision(BeanScheduler.java:176) [org.eclipse.sisu.inject-0.2.0.jar:na] at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:122) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:90) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:279) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1057) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.Scopes$1$1.get(Scopes.java:59) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1000) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1050) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:996) [sisu-guice-3.1.10.jar:3.1.10] at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:82) [org.eclipse.sisu.inject-0.2.0.jar:na] at org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51) [org.eclipse.sisu.plexus-0.2.0.jar:na] at org.eclipse.sisu.plexus.PseudoPlexusContainer.lookup(PseudoPlexusContainer.java:104) [org.eclipse.sisu.plexus-0.2.0.jar:na] at org.eclipse.sisu.plexus.PseudoPlexusContainer.lookup(PseudoPlexusContainer.java:96) [org.eclipse.sisu.plexus-0.2.0.jar:na] at org.eclipse.sisu.plexus.PseudoPlexusContainer.lookup(PseudoPlexusContainer.java:90) [org.eclipse.sisu.plexus-0.2.0.jar:na] at org.sonatype.nexus.webapp.WebappBootstrap.contextInitialized(WebappBootstrap.java:166) [classes/:na] at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:775) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:424) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:767) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:249) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1252) [jetty-webapp-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:710) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494) [jetty-webapp-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.Server.doStart(Server.java:282) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.sonatype.nexus.bootstrap.jetty.JettyServer$JettyMainThread.run(JettyServer.java:247) [nexus-bootstrap-2.11.2-06.jar:2.11.2-06] Caused by: java.lang.IllegalStateException: Location passed in WAL does not exist, or IO error was happened. DB can not work in durable mode in such case. at com.orientechnologies.orient.core.storage.impl.local.paginated.wal.ODiskWriteAheadLog.(ODiskWriteAheadLog.java:610) ~[nexus-npm-repository-plugin-2.11.2-06/:na] at com.orientechnologies.orient.core.storage.impl.local.paginated.wal.ODiskWriteAheadLog.(ODiskWriteAheadLog.java:588) ~[nexus-npm-repository-plugin-2.11.2-06/:na] at com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.initWalAndDiskCache(OLocalPaginatedStorage.java:283) ~[nexus-npm-repository-plugin-2.11.2-06/:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.create(OAbstractPaginatedStorage.java:242) ~[nexus-npm-repository-plugin-2.11.2-06/:na] at com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.create(OLocalPaginatedStorage.java:112) ~[nexus-npm-repository-plugin-2.11.2-06/:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.create(ODatabaseDocumentTx.java:374) ~[nexus-npm-repository-plugin-2.11.2-06/:na] ... 61 common frames omitted 2015-04-06 09:16:40,026-0700 ERROR [jetty-main-1] *SYSTEM org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.default - Could not dispatch event: org.sonatype.nexus.proxy.events.NexusInitializedEvent@36b820 to handler [wrapper public void com.bolyuba.nexus.plugin.npm.service.internal.orient.OrientMetadataStoreLifecycle.on(org.sonatype.nexus.proxy.events.NexusInitializedEvent) throws java.lang.Exception] java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_40] at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_40] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventHandler.handleEvent(EventHandler.java:80) ~[goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.guava.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:49) ~[goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.dispatch(EventBus.java:329) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.DefaultGuavaEventBus.dispatch(DefaultGuavaEventBus.java:34) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.ReentrantGuavaEventBus.dispatchQueuedEvents(ReentrantGuavaEventBus.java:57) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.post(EventBus.java:281) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus.post(DefaultEventBus.java:78) [goodies-eventbus-1.9.jar:1.9] at org.sonatype.nexus.NxApplication.(NxApplication.java:106) [nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.NxApplication$$FastClassByGuice$$7af2777c.newInstance() [sisu-guice-3.1.10.jar:2.11.2-06] at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:108) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ConstructorInjector.access$000(ConstructorInjector.java:32) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:92) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:113) [sisu-guice-3.1.10.jar:3.1.10] at org.eclipse.sisu.bean.BeanScheduler$Activator.onProvision(BeanScheduler.java:176) [org.eclipse.sisu.inject-0.2.0.jar:na] at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:122) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:90) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:279) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1057) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.Scopes$1$1.get(Scopes.java:59) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1000) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1050) [sisu-guice-3.1.10.jar:3.1.10] at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:996) [sisu-guice-3.1.10.jar:3.1.10] at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:82) [org.eclipse.sisu.inject-0.2.0.jar:na] at org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51) [org.eclipse.sisu.plexus-0.2.0.jar:na] at org.eclipse.sisu.plexus.PseudoPlexusContainer.lookup(PseudoPlexusContainer.java:104) [org.eclipse.sisu.plexus-0.2.0.jar:na] at org.eclipse.sisu.plexus.PseudoPlexusContainer.lookup(PseudoPlexusContainer.java:96) [org.eclipse.sisu.plexus-0.2.0.jar:na] at org.eclipse.sisu.plexus.PseudoPlexusContainer.lookup(PseudoPlexusContainer.java:90) [org.eclipse.sisu.plexus-0.2.0.jar:na] at org.sonatype.nexus.webapp.WebappBootstrap.contextInitialized(WebappBootstrap.java:166) [classes/:na] at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:775) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:424) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:767) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:249) [jetty-servlet-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1252) [jetty-webapp-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:710) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494) [jetty-webapp-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.server.Server.doStart(Server.java:282) [jetty-server-8.1.11.v20130520.jar:8.1.11.v20130520] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.11.v20130520.jar:8.1.11.v20130520] at org.sonatype.nexus.bootstrap.jetty.JettyServer$JettyMainThread.run(JettyServer.java:247) [nexus-bootstrap-2.11.2-06.jar:2.11.2-06] Caused by: com.orientechnologies.orient.core.exception.ODatabaseException: Cannot create database 'npm' at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.create(ODatabaseDocumentTx.java:436) ~[na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.create(ODatabaseDocumentTx.java:352) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.orient.OrientMetadataStore.doStart(OrientMetadataStore.java:101) ~[na:na] at org.sonatype.sisu.goodies.lifecycle.LifecycleSupport$Handler.doStart(LifecycleSupport.java:70) ~[goodies-lifecycle-1.9.jar:1.9] at org.sonatype.sisu.goodies.lifecycle.LifecycleHandlerContext$MainMap_Starting.started(LifecycleHandlerContext.java:255) ~[goodies-lifecycle-1.9.jar:1.9] at org.sonatype.sisu.goodies.lifecycle.LifecycleHandlerContext.started(LifecycleHandlerContext.java:57) ~[goodies-lifecycle-1.9.jar:1.9] at org.sonatype.sisu.goodies.lifecycle.LifecycleSupport.start(LifecycleSupport.java:129) ~[goodies-lifecycle-1.9.jar:1.9] at com.bolyuba.nexus.plugin.npm.service.internal.orient.OrientMetadataStoreLifecycle.on(OrientMetadataStoreLifecycle.java:51) ~[na:na] ... 54 common frames omitted Caused by: java.lang.IllegalStateException: Location passed in WAL does not exist, or IO error was happened. DB can not work in durable mode in such case. at com.orientechnologies.orient.core.storage.impl.local.paginated.wal.ODiskWriteAheadLog.(ODiskWriteAheadLog.java:610) ~[na:na] at com.orientechnologies.orient.core.storage.impl.local.paginated.wal.ODiskWriteAheadLog.(ODiskWriteAheadLog.java:588) ~[na:na] at com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.initWalAndDiskCache(OLocalPaginatedStorage.java:283) ~[na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.create(OAbstractPaginatedStorage.java:242) ~[na:na] at com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.create(OLocalPaginatedStorage.java:112) ~[na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.create(ODatabaseDocumentTx.java:374) ~[na:na] ... 61 common frames omitted {noformat} Now the NPM plugin is in a bad state. For example, a user can still create npm repositories in Nexus without problem. However simple npm client operations fail in strange ways. Once such way is: 1. Create a npm-proxy repository to https://registry.npmjs.org 2. npm install bower 3. Nexus reports: 404 - Request is serviced by NPM metadata service, remote access not needed from DefaultNpmProxyRepository(id=npm-proxy) ",0.5 +"NEXUS-8398","04/09/2015 17:02:05","Styling bugs","Nexus design annoyances: + Menu has thin border at the top (http://take.ms/IFaun) + Item selector controls have excess padding in the body (http://take.ms/TdU5e) + Some controls have a permanent scroll bar (http://take.ms/FUgPD and http://take.ms/YfUaI) + Some controls have inconsistent left alignment (http://take.ms/xKHjD, http://take.ms/Kn2KA, and http://take.ms/M9WdU) + Bundles toolbar has a grey background (http://take.ms/mth62) + Bundle detail view needs a wider key column (http://take.ms/LejJt)",2 +"NEXUS-8399","04/09/2015 17:05:04","Cannot create an LDAP connection","This was broken by the recent “unsaved changes” work. The LDAP connection form is being reset when the user drills down to the next screen, which prevents it from being created. Should be a trivial fix.",0.5 +"NEXUS-8410","04/13/2015 22:08:36","Edit removing a repository from a group does not take right away","While testing NEXUS-8016, I had added Central to the default nuget group (nuget-group) but later decided I wanted an independant group to test, so removed Central. Later when I ran the following curl against nuget-group, I was seeing two warnings about incompatable repositories even thought there weren't any. [~mprescott] discovered that there's a problem with removing repositories from CMA such that they will not remove until you restart and then remove them. He is digging into any other areas/permutations this might affect but asked me to file a ticket. {quote} curl -u admin:admin123 -X GET -v ""http://localhost:8081/repository/nuget-group/Search()/\$count?\$filter=IsLatestVersion&searchTerm=''&targetFramework='net45'&includePrerelease=false"" {quote} I did not check older versions of NX3 at this time. Steps to reproduce: 1) Login to NX3 as admin 2) Go to Repository>Repositories 3) Edit nuget-group to include Central and save 4) Edit nuget-group to exclude Central (only include the original two nuget repos - proxy and hosted) and save 5) Run the above CURL. Note there are two WARNs in the log saying Central is included. NOTE: The first time this broken I noticed loading nuget-group via the UI after step 4, I did not see Central in the configuration (json) however on Nexus restart I did see Central in the configuration (json). I tried to repro this and it did not occur again.",1 +"NEXUS-8417","04/15/2015 15:58:44","Realms panel starts uninitialized","Occasionally when I open the Realms page/panel, all of the realms are shown as being 'Available' - this doesn't reflect the actual state, since several are actually active. Click Save, of course, makes it impossible to use the UI. There aren't any errors reported in the js console.",1 +"NEXUS-8419","04/15/2015 17:58:46","Possible search index problems on (nuget) delete","While testing NEXUS-8414, I added a NuGet package to a hosted repo then wanting to test again deleted the package from the repo. On delete, I got the attached warning and errors here: https://gist.github.com/joedragons/6ebca7e16a52c8bbbc35. Note, despite these, the file did delete correctly. Speaking with [~mprescott], he said this may be an issue with search index and asked me to file. Please let me know if I can supply any further detail. ",0.5 +"NEXUS-8425","04/16/2015 18:44:36","nexus pro log may report nexus as unlicensed on startup even when it is","The 'licenseKey' in AbstractCommercialApplicationStatusSource is only initialized when a LicenseChangedEvent occurred. But this can only happen after NexusInitializedEvent, when the PeriodicLicenseValidator is started. Anything querying the commercial status before then, like the banner message that appears in the logs at the start of initialization, will assume no license is installed: ""Initializing Sonatype Nexus PRO-UNLICENSED 3.0.0-SNAPSHOT"" Note: this is only apparent after the recent change to log the edition here instead of the application name (which doesn't include license information). It also looks like this has been an issue for a while because Nx2 also logs the following during initialization: ""WARN ... com.sonatype.nexus.licensing.ProfessionalApplicationStatusSource - No license installed"" (this state is shortlived, as the PeriodicLicenseValidator is started shortly afterwards.) ",1 +"NEXUS-8428","04/16/2015 21:28:21","Selecting ""Format"" criteria in custom search does nothing sometimes","While doing UX review, I noticed that in Chrome selecting the ""Format"" criteria in Custom Search did not load any criteria. I was able to reproduce this reliably there but not in FF. In FF, this is reproducable if you go to another search type (NuGet for example) add a criteria, then come back to Custom search type and try adding ""Format"". Same intermittantly broken behavior in IE11 (Windows7). Refreshing the page fixes the behavior.",1 +"NEXUS-8429","04/16/2015 21:46:53","Reset User Password fires error","While doing the UX review, I noticed that via Security>Users editing a user and resetting their password had the attached screen and linked error: https://gist.github.com/joedragons/6de865fe4725e30f042a Mulled briefly if this might be related to stripping forgot username/password out but since unsure at least filing for eval. I did not check older versions of nx3 at this time.",1 +"NEXUS-8430","04/16/2015 21:52:32","Cancelling out of changing a users password fires validation and requires 2 clicks (sometimes)","While doing the UX overview, I was in Security>Users, edited a user and opened the popout to change their password. Not wanting to actually do this for a real user, I immediately clicked cancel. When I did so, validation popped up telling me I needed to enter a user name. Clicking cancel again closed the popout. This does not occur if you have the fields filled in and then cancel. See vid, hopefully clear.",0.5 +"NEXUS-8432","04/16/2015 22:15:44","Some pages/actions have inconsistent masks","Some pages/actions have inconsistant masks re: https://github.com/sonatype/nexus-oss/pull/1162 changes. Filing one ticket to update after speaking with Daniel. * The Security>SSL Certificates page when Loading PEM, the mask covers the entire page content (but not header or left nav) not just the frame area. [noticed FF MacOSX OSS bundle build] * Staging Bundle - ""Upload mask"" appears to be the whole page not just the area. [noticed Chrome MacOSX PRO bundle build]",0.5 +"NEXUS-8433","04/16/2015 22:31:40","Some pages do not have masks on actions","While doing UX review, I noticed the below pages do not have Saving masks that the rest of the pages do. After speaking with Daniel we agreed on one ticket. * Capabilities - Settings (when saving UI:Settings) [noticed FF MacOSX OSS and IE11 Windows 7 PRO)] * Tasks - Settings (when saving a Task) [noticed FF MacOSX OSS and IE11 Windows 7 PRO] * Tasks (when running/stopping) [noticed IE11 Windows 7 PRO] * LDAP (saving to create an LDAP) [noticed IE11 Windows 7, Chrome MacOSX PRO] I did not check NX2, this perhaps is an improvement but not worrying about that now.",0.5 +"NEXUS-8434","04/16/2015 22:41:44","+ (expand) icon does not appear in IE11","In the left navigation of IE11, when a main area is collapsed (via the - icon or by default) a + icon does not show to reexpand it. You can click on the blank area and it will expand. I left severity major because this is potentially confusing for any who are collapsed by default and/or mistake. Borderline minor with the workaround. I've attached a screen of this working in not-IE from Daniel, which may be the easiest way to explain (since absence of +s is hard to point out, tho can be screened). I did not check older versions of NX3 at this time. This does not affect NX2 as there are no +/- icons there.",0.5 +"NEXUS-8437","04/17/2015 14:28:45","Icon missing for Repository View type items","During UX review, I noticed on Security>Priviledges there was no icon for the Repository View type items. Every other type has an icon.",0.5 +"NEXUS-8439","04/17/2015 14:46:08","On cancel, window does not return in full view sometimes","During UX review, I noticed that in Windows sometimes I would hit the cancel button and the window would restore to a screen that was not in full view. See attached for better graphical description. At first I just noticed in IE but eventually noticed in Chrome. This issue is intermittant but Daniel asked me to file so he could take a look. My best luck reproducing was waiting a few seconds (5-10) between test clicks (into view then cancel). I have been able to break it reliably within 5 attempts by going slower but still does not break every time. Specifically noticed on: * Users (on create of new user then cancel) [IE11] * SSL Certificates (Load Certificate - Paste PEM then cancel) [IE11] * Logging (Create Logger then cancel) [IE11, Chrome] * Trusted Keys (Create Key then cancel) [IE11] I have not yet seen this behavior in any non-Windows browser. Interestingly, I also haven't yet seen this behavior in OSS but that may have been luck(unluck). As documented I have also not seen this behavior with breadcrumb clicks. This may be my lack of doing that or it may be a fix hint there. If I see more I'll addon.",2 +"NEXUS-8441","04/17/2015 15:19:03","Log Viewer add mark modal has mask inside it","During UX review, I noticed that when you added a mark to the Log (via Support>Logging>Log Viewer) that the modal that you use to add the mark gets a Saving mask. I had never seen a modal with a mask so asked Daniel and he asked me to file. He writes: ""This is a little odd, but the “Add Mark” modal is a bit of an odd-ball itself. Go ahead and file. I’ll probably just move the mask to the log textarea field for consistency."" I do not recall seeing this before but have not checked older versions of NX3 (or NX2) at this time. Note: - Just mask the entire UI",0.5 +"NEXUS-8442","04/17/2015 15:28:36","Generating support.zip times out in Windows before it can generate","During UX review, I noticed creating a support.zip in Windows timed out. This seems OK in Mac. Nothing shows in log (default levels) besides INFO messages the zip is being generated. Let me know if those messages would help or if I should try higher/different levels. I tried this further by removing all the contents except System Information. This worked albeit slowly (3-4MB file). My guess thus is either the timeout is too quick or something wrong in Windows (or with my setup). I did have both options limiters on (the entire time on all systems).",2 +"NEXUS-8443","04/17/2015 15:34:49","Improve System Information mask","During UX review, I noticed when opening Support>System Information the loading mask appeared at the top of the page rather than in the middle. I'm guessing this is because if in the middle, it'd literally be in the middle which would essentially be unseen 99% of the time because the system information is so long. I asked Daniel and he replied: ""This is actually the feature loading mask, not the form loading mask. Subtle difference. If you click through some of the other menu items, you’ll notice this mask flashing briefly. I’d file this anyway, since it should mask the entire content window (including breadcrumb), not just the buttons and body. There might also be a way to center the loading indicator, since I agree it’s weird to have it anchored to the top."" Filing as an improvement, though I suppose it could be a bug too.",0.5 +"NEXUS-8444","04/17/2015 15:41:09","stray null appears on System Information load in IE11","During UX review, I noticed when I load Support>System Information a line ""null"" appears in the IE Java Console. It is not referenced to a page or line of js, it just appears. I have never seen this before on any page or in any other browser. Jason has in the past told me that there should be no JS errors and Daniel agreed worth filing for investigation/discussion at least, so here you go. I did not check older versions of NX3 at this time. This does not occur in NX2.",0.5 +"NEXUS-8446","04/17/2015 15:52:36","Tasks summary button missing text","During UX review, I noticed that in System>Tasks (on edit) the summary button seems to have lost its text. Now just shows as a blue box. This is recent (NX3) regression. NX2 is not setup this way so is unaffected here. See attached.",0.5 +"NEXUS-8447","04/17/2015 19:04:33","Post-double click to resize a column size, a second resize doesn't work","Noticed while testing NEXUS-8056 in Chrome, on Routing if I double clicked Rule Type, the subsequent double click on Repositories to make it bigger is not working. If I expand my browsers size it shows the Repositories column already full size so that might be the issue there (I keep my browsers not full screen so I can watch multiple windows easier; it is around the minimum supported 1024 width). I initially noted this as a comment in NEXUS-8057, curious to see if it'd be fixed there. Daniel relayed (via HipChat) it would not and asked me to file another ticket. Here's a video, which also shows me trying to repro the same thing in a Fiddle configured by Daniel for NEXUS-8057. So, that second part may be irrelavent. Note, in the course of creating that video, I saw this working once in Nexus, so it's not 100% though 75% is a pretty good repro ratio. I have not tried other areas of the site at this time, though suspect this would be site wide. I did not check older versions of NX3 at this time.",1 +"NEXUS-8449","04/17/2015 21:12:56","prefix all jetty specific configuration properties with ""jetty.""","The new jetty xml files in Nexus 3 are copies of those files found in Jetty 9.2. These files contain system properties to simplify configuration of Jetty without the need to edit the xml files directly. Some of these properties are prefixed with ""jetty."", some are not: [https://github.com/sonatype/nexus-oss/blob/master/assemblies/nexus-base-template/src/main/resources/overlay/etc/jetty.xml#L89:L93] [https://github.com/sonatype/nexus-oss/blob/master/assemblies/nexus-base-template/src/main/resources/overlay/etc/jetty-https.xml#L73:L77] When prefixed with jetty, it is very clear they are jetty container specific. When not, it is not clear if this applies to Jetty or something internal to Nexus. There is a chance of conflicts if we don't prefix all jetty properties. It would be more valuable to support when scanning support bundles to see what jetty properties are set when they are grouped alphabetically together as well. The only downside seems to be that we diverge from shipped default jetty xml files a bit. Personally not a concern with me as our files are bound to diverge in other ways regardless. Nexus jetty xml should be optimized for Nexus, not Jetty living in a vacuum. Acceptance: - prefix all container related ( jetty ) system properties with the text 'jetty.', except well established Nexus properties like application-host, etc.",2 +"NEXUS-8451","04/17/2015 21:58:30","Cannot scroll in System Information print","While performing UX review, I noticed in System Information the Print window not scrollable (so just shows screen height worth of lines). This does occur in m3 (checked at Daniel's request) or in NX2.",0.5 +"NEXUS-8472","04/21/2015 20:23:59","Log Viewer shows entire log despite size selection","While testing NEXUS-8442, I was trying to restore my system to the state where I'd had that issue by inputting a large amount of log files (amongst other stuff). I created the attached ~80mb nexus log, primarily thru turning ROOT onto TRACE. When I tried to access log viewer in IE I got the below errors (seperate attempts to repro): ""SCRIPT14: Not enough storage is available to complete this operation. File: baseapp-prod.js, Line: 1, Column: 1"" ""SCRIPT14: Not enough storage is available to complete this operation. File: baseapp-prod.js, Line: 1, Column: 161345"" In both cases, the loading swirl stopped swirling but never went away so basically the page did not load. When I tried to access log viewer in Chrome, I got no JS errors however, the log would load very briefly then white screen. Note, when I did this with the log at around 16mb there was no issue in either browser, so I all clues point to the size. BTW, this ticket is especially interesting to me because the log options (in NX2 as well) are to display 25K, 50K and 100K. It seems shady to me if we're loading an 80mb log in entirity to just get even 100K of data...and no surprise that'd tax resources. Workaround would be to load the log via console. I am leaving this major as the workaround may not work for all people (there may be admins without console access) nor do I imagine is it an advisable workaround for marking. I did not check older versions of NX3 or NX2 at this time. Note, I don't believe that the issue is related to what I was testing but am filling out the link for completeness (and in case I'm wrong).",0.5 +"NEXUS-8482","04/22/2015 22:04:10","It should be apparent you cannot delete a default logger","While reviewing the NEXUS-8377 PR, I noticed that when I tried to delete a default logger nothing happened (page refreshed, logger remained (including on refresh), no error in UI or JS). I recall talking about this before but I could not find a ticket. So I am assuming this is a bug because it does not function this way in NX2. I did not check older versions of NX3 at this time. If this turns out to be a change in NX3, I think the document should be updated with this fact. Workaround is to disable (OFF) the logger.",2 +"NEXUS-8484","04/22/2015 22:56:02","Cancel from Verify SMTP connection validates and takes second click","While testing NEXUS-8447, I was on System>Email Server in Verify SMTP Connection popout and clicked to cancel. Doing so (with no emailed filled in) caused validation to occur. A second click closes the popout successfully. Having emailed filled in and clicking cancel also behaves correctly. I guess this is likely the same fix as NEXUS-8430. It's definately similar behavior.",0.5 +"NEXUS-8486","04/23/2015 16:44:11","Central shows Repository Policy MIXED","Noticed that NX3 Central repository currently shows Repository Policy MIXED. This is different from NX2 where it shows Releases. Releases is an option in the dropdown. After asking in HipChat filing as regression. Aside, if this is deemed intentional, I also noticed there's no way to switch back from MIXED, so I'd guess that's a bug and will probably file on it.",0.5 +"NEXUS-8488","04/23/2015 18:03:45","http proxy settings not working for outbound remote storage requests","Start nx3 for the first time. empty storage. Add an HTTP proxy to Nexus. Trust the SSL certificate my proxy serves using the SSL Certificates UI ( this works fine and goes through proxy) GET http://localhost:8081/repository/maven-central/abbot/abbot/0.13.0/abbot-0.13.0.pom Request is 200 and works, but request does not go through proxy server tested nexus-professional-3.0.0-20150423.044744-931-bundle ",1 +"NEXUS-8490","04/23/2015 23:03:03","Maven Repository Policy unselectable initially","While testing NEXUS-8486, I noticed that the Central Repository Policy was uneditable despite the fact it should be an editable field. I created another proxy and it occurs there as well. The workaround is to enter a repository whose type is NOT Maven Proxy and then the field works. Until you refresh/restart. No JS errors. This is new to NX3 so did not check older versions. I did not check NX2 at this time.",0.5 +"NEXUS-8492","04/24/2015 15:31:42","""Bad"" repo name validation message missing","Noticed that when you enter in a ""?"" or space on creation of a repository in the Name field you get a validation ""MISSING_I18N:NAME_VALIDATION_MESSAGE"". Seems the validation message for ""bad"" names (vs empty names) is undefined. I checked all available repo types and it affects them all. The legacy repo message is {noformat}Only letters, digits, underscores (_), hyphens (-), and dots (.) are allowed in the identifier{noformat} For reference, not saying that should be the new message necessarily (tho it reads fine to me if true). This is new to CMA and does not affect older versions of NX3. Nor NX2.",0.5 +"NEXUS-8493","04/24/2015 15:49:34","Default nuget proxy has out of bounds value by default","Noticed the default nuget proxy has a value for http request settings outside the bounds of the field (20000, the field allows max of 3600). Since you subsequently cannot save, it seems likely either the max needs raised or the default needs lowered. I am marking trivial since you can easily edit to what you want, tho I think this can be improved. I am wondering if this was supposed to be 2000 and an extra 0 was struck. This does not occur for default Maven proxy, tho the value is 1500, so no sure guidance there. There are no default nuget repos in NX2 or older NX3 to compare against.",0.5 +"NEXUS-8494","04/24/2015 17:36:06","Default repo creation has deployment policy read only","The new CMA default (host) repo creation has deployment policy set as read only. The NX2 default was dependant upon the release policy (disable redeploy for [maven] release, allow redeploy for [maven] snapshot, etc). After speaking with [~mprescott] and [~krobinson] this did not sound intentional so filing. These policies are new to CMA so no back checking of NX3 can be performed. Workaround to select what deployment policy is correct manually. This also affects the default NuGet hosted repo and caused me to find the related (linked) defect. UPDATE: - based on discussion during planning today we will leave the default as 'Disable redeploy' and it is already not read-only at this point.",0.5 +"NEXUS-8495","04/24/2015 17:41:14","Disconnect between Admin UI and nuget-hosted config","While testing pushing a NuGet artifact, I noticed that the new Admin UI had Deployment Policy set automatically for the default NuGet hosted repo as read only. Despite this I was able to push a NuGet artifact. On further investigation with [~mprescott], we discovered that the initial configuration displayed in the admin UI is not reflected in the database (see attached - row 5). Further, changes to that repo configuration do not update the DB, despite reflecting in the UI. Using a newly configured NuGet hosted repo works properly and is the workaround. This is new to CMA with the addition of the admin UI so no NX3 back checking is possible at this time. There are no default NuGet repos in NX2 so cannot compare there either.",0.5 +"NEXUS-8502","04/27/2015 15:59:52","Authentication Password should always be required","-Noticed that when creating a Maven Proxy when I checked ""Authentication"" password did not appear to be required, however, when I submit it was required but via a different message and apparently means as every other field.- -After talking to [~alin], he believes this should not be required so ticketing.- -This is new to Admin UI so no older NX3 checking is needed.- -In NX2, password was autofilled in on save attempt rather than it being required. Because the password was not clearcase I am not sure at this time what was being filled in there. I assume this could be potentially blank (and appear different) moving forward. Whether it's actually different, may be a deeper Q.- UPDATE: - as per discussion with the team we will no longer support the NX2 behaviour; username and password will always be required and we just need to sort out the details to ensure that the model is consistent across CRUD operations. https://groups.google.com/a/sonatype.com/forum/?hl=en#!topic/sonatype-nexus-dev-group/AWsMoklJY34 Acceptance criteria: - Password field should be required and styled as such in the UI",0.5 +"NEXUS-8503","04/27/2015 17:36:57","Maven ""Version policy"" uneditable but shows as normal text field would","In NEXUS-8490, [~alin] resolved the issue such that Version policy was only editable on create and never later. However, I noticed while testing that on edit, the field appeared white as a normal editable text field would, not grey like the uneditable fields. Rather than sending back, Alin asked me to file seperately. This is new to NX3 so older checks are not done at this time. I did not check NX2 at this time either.",0.5 +"NEXUS-8510","04/28/2015 15:21:10","Information copies over from proxy to proxy","While testing NEXUS-8479, I performed the instructions there, entering into a newly created (maven) proxy and entering in authentication and later http request information, and went to another repo. I picked the Central repo. When I did this, I noticed that despite the fact that Central has no authentication or http request information that the information from the newly created proxy was copying to Central. I thought this was the inverse issue of NEXUS-8479 but [~alin] stated this was a distinct issue from NEXUS-8479 so I'm filing here. Probably worth rechecking NEXUS-8479 steps when this fix is performed just in case. No huge harm in this defect (besides ""lying"") except you can inadvertantly copy in information if you save. Workaround is to delete the info before proceeding to save. Admin UI (CMA) is new for Dizzam so no back checking at this time. I did not check NX2 at this time.",0.5 +"NEXUS-8511","04/28/2015 18:03:18","Authentication password gets overwritten with nothing (does not save?)","While testing NEXUS-8479, I performed the roundabout test listed there to check it and noticed that in the end my authentication password was blank. I was able to reproduce this somewhat more easily by creating a new proxy repo (minimum fields), editing it to add authentication including username/password, saving, then saving again. Note, after the first save password shows *** but after the second save it erases. There are more complex ways to see this as well, but that's the simple one. I did not check if the password actually saves the first time but the second time it's definately being overwritten by nothing. The CMA Admin UI is new to Dizzam so no NX3 backcheck was done at this time. I did not check NX2 at this time.",0.5 +"NEXUS-8512","04/28/2015 18:29:12","Category column disappears from Capabilities page","-While reviewing the NX3 documentation for Capabilities, I noticed that there was a section describing a Category column. I thought this hangover from NX2 but [~simpligility] noted he saw it in OSS (I was testing PRO).- -I double checked and see what he did. OSS has a Category column in the Capabilities section and PRO does not.- -I can't think of any reason for this inconsistancy so filing.- -The category does show when inside the details of the Capability so making trivial. I did not check older NX3 or NX2 at this time.- UPDATE: Testing unrelated today, I noticed the Category column missing from OSS. It appears on initial load, but disappears if you leave the page and return. I rechecked PRO and the same thing happens. Sorry for initial misanalysis and titling.",0.5 +"NEXUS-8517","04/28/2015 22:59:19","Repo uneditable right after creating","Right after creating a maven group, I went to delete it and noticed I could not. It said I didn't have permission and the delete button (and save button) was greyed out. I tried another group and it was ok, so I went back to see if there was any errors and it was deletable. I was able to repro this with maven proxy, maven hosted, nuget proxy and nuget hosted. Surprisingly I could not with nuget groups (may be a fix hint there). See attached video example. This solved itself once (I am not sure how) but I was able to get this behavior to continue by refreshing my browser. So there may be a complicated workaround but it is not obvious to me. The easier workaround is to wait a couple seconds to edit. It seems to be around the same as it takes the ""repo is created"" note to fade (maybe 4-5 seconds). Admin UI is new to CMA for Dizzam so no NX3 backcheck is possible. I did not check NX2 at this time.",1 +"NEXUS-8521","04/29/2015 14:56:07","Roles: Filters count as changes to discard","After writing up NEXUS-8520, I clicked log out to continue my testing and noticed I was prompted to discard changes or back. I hadn't done anything but filter. This behavior was reproducable on clean login. Go to roles, edit one, filter on something and try and logout. I do not believe the filter itself should be included in the changes only the actual changes made to the roles/privlege sections. Filing for evaluation. Did not review older versions of NX3 or NX2 at this time.",0.5 +"NEXUS-8523","04/29/2015 20:09:45","deprecate and disable the ""download nuget feed"" scheduled task","As of version 2.10.0, the download nuget feed task is no longer needed for nuget proxy repositories. We stopped scheduling this automatically in that version, and told people to remove the task in the release notes. But still, I very often see customer configurations that have this task running. We're planning a community outreach to get people to remove this task from their instances. While I was writing up the content for that it occurred to me that the negatives associated with this task for both the end user and nuget.org are very significant: * It puts a significant load on the nuget.org repository (they are complaining of these queries DOS'ing their server) * Over time causes size of the nuget h2 database to grow so large that queries [become very slow|https://support.sonatype.com/entries/88909378] And really, there is almost no benefit to running this task. I'm thinking we should disable this task in 2.11.3: # Change the name of the task to ""Download NuGet Feed (DEPRECATED) # Change the default implementation to be a no-op ",1 +"NEXUS-8525","04/30/2015 14:45:14","On repo save NTLM auth fields disappear","I noticed that after saving a repo with auth checked and authentication type ""Windows NTLM"", the Windows NTLM specific auth fields (Windows NTLM hostname and Windows NTLM domain) disappear. This persists through repo switching but not through refresh/restart or even paging away (outside of CMA repository) and returning to repos. So those are your workarounds. This occurs regardless if the fields have values or not. This is not a problem in NX2 but there's also not two types in NX2, there's just 1 and you use whatever fields you need. So really this is new to NX3. Since Admin UI is new to Dizzam no older NX3 checks were done.",0.5 +"NEXUS-8535","04/30/2015 22:21:42","Disable changing version policy on Maven repo","In the new CMA repo I can edit the version policy of a repository after the repository was created. So I can change a release repo to be a snapshot repo afterwards. I can also change it to ""mixed"" even though there might not even be such a repository version policy. I think it should not be possible to change the version policy after the repo was created (unless I am missing something) and there should be no mixed policy in the drop down.",0.5 +"NEXUS-8541","05/01/2015 22:12:55","Format specific config parameter for repositories ","The repo admin has a number of common parameters for all formats as well as format specific parameters. Ideally the common parameters should always be in the same order and the same location and maybe even visually different. The format specific parameters should be separate and maybe even highlighted as such. E.g. Nuget Proxy repo has Query cache size and Query cache age in the middle of other configs. Maven repo format has Version policy and that is also in between fields. It would be nice to be able to have this consistent and easily visible somehow.",1 +"NEXUS-8542","05/01/2015 22:16:28","(CMA) Repos can become uneditable","While reviewing CMA Repos, I noticed that intermittantly, they were becoming uneditable. After a lot of permuting through, I found the below reproducable case. There may be more. I'm 100% sure, for example, I have seen maven-public uneditable (took a screenshot - which I've attached). Hopefully this gives enough of a lead to investigate without me permuting through a bunch more items. If this seems familiar, it may be because of NEXUS-8517. I am creating a seperate ticket for several reasons. First, there was some skepticism if that ticket is about granting proper permissions (like a race condition to edit before the repo is editable). This is with default created repos so there shouldn't be such a race to my knowledge. Second, totally different set of steps. You'll note there actually isn't any actions besides view changes being done. Third, this seems to have nothing to do with timing (NEXUS-8517 ""goes away"" if you wait a very small amount of time). I waited a minute or more between each of the steps below (used a timer) to make sure of this. CMA repos are new to Dizzam so no previous NX3 testing can be done at this time. I did not check NX2 at this time. I did however check both OSS and PRO and this affects both. Steps: (from Repository>Repositories) 1) Create - (pick a type, but seems to be any type) 2) Repositories breadcrumb 3) Edit maven-central (looks OK) 4) Repositories breadcrumb 5) Create - (pick a type, but seems to be any type) 6) Repositories breadcrumb 7) Edit maven-central; BUG: normally editable fields remote storage URL, maximum artifact age and NFC TTL are greyed out/uneditable. No permission to edit message at bottom by save button.",1 +"NEXUS-8555","05/06/2015 14:21:23","not found cache should be expired for packages with implied references from updated package metadata","1. Create an npm proxy repository to the official registry 2. Request a known package file in the remote registry, through the proxy repository ( not metadata ). This will result in 404. This is as currently designed as Nexus needs package metadata before getting any related package. 3. request the metadata for the package file in step 2. This is 200 as expected. 4. request the package that was requested in step 2. This is still 404 not found until an expire cache task on the repository is run or the not found cache expires naturally for the package. Expected: When we update the package metadata, the not found cache should be expired for any package referenced in that metadata. Meaning the 404 not found in step 4 above should not require manually expiring cache or waiting until repository configured cache timeout.",0.5 +"NEXUS-8556","05/06/2015 16:03:55","staging.xml validation can orphan nexus.xml repositories during startup","Under certain startup conditions, Nexus staging configuration validation can orphan staging repositories such that they are no longer visible in the Nexus Staging Repositories UI. The repository storage directory will still exist for the repository, and the orphaned staging repository(s) will still be visible via Repositories -> Nexus Managed Repositories list. Example log excerpts on startup where staging validation removed a staging repository {{raid_staging-1197}} because it was not yet added to the internal registry of repositories: {noformat} 2015-05-06 13:14:38,521+0100 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.NxApplication - ------------------------------------------------- Initializing Sonatype Nexus Professional 2.11.2-06 ------------------------------------------------- 2015-05-06 13:14:38,521+0100 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.NxApplication - Activating locally installed plugins... ... 2015-05-06 13:15:51,460+0100 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry - Added repository ""dit_staging_profile-1281 (staging: closed)"" [id=dit_staging_profile-1281][contentClass=Maven2][mainFacet=org.sonatype.nexus.proxy.maven.MavenHostedRepository] 2015-05-06 13:15:51,502+0100 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry - Added repository ""dit_staging_profile-1282 (staging: closed)"" [id=dit_staging_profile-1282][contentClass=Maven2][mainFacet=org.sonatype.nexus.proxy.maven.MavenHostedRepository] 2015-05-06 13:15:51,516+0100 INFO [proxy-3-thread-1] *SYSTEM org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage - Initializing remote transport for proxy repository ""US_Nexus_Dev"" [id=US_Nexus_Dev]... 2015-05-06 13:15:51,527+0100 INFO [RepositoryStatusChecker-US_Nexus_Dev] *SYSTEM org.sonatype.nexus.proxy.maven.maven2.M2Repository-US_Nexus_Dev - Next attempt to auto-unblock the ""US_Nexus_Dev"" (id=US_Nexus_Dev) repository by checking its remote peer health will occur in 5 minutes. 2015-05-06 13:15:51,545+0100 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry - Added repository ""US_Nexus_Dev"" [id=US_Nexus_Dev][contentClass=Maven2][mainFacet=org.sonatype.nexus.proxy.maven.MavenProxyRepository] 2015-05-06 13:15:51,816+0100 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry - Added repository ""US_Nexus_Eval"" [id=US_Nexus_Eval][contentClass=Maven2][mainFacet=org.sonatype.nexus.proxy.maven.MavenProxyRepository] 2015-05-06 13:15:51,820+0100 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.plugins.ruby.NexusRubygemsGatewayProvider - Creating JRuby RubygemsGateway 2015-05-06 13:15:52,629+0100 INFO [RepositoryStatusChecker-US_Nexus_Dev] *SYSTEM org.sonatype.nexus.proxy.maven.maven2.M2Repository-US_Nexus_Dev - Next attempt to auto-unblock the ""US_Nexus_Dev"" (id=US_Nexus_Dev) repository by checking its remote peer health will occur in 10 minutes. 2015-05-06 13:15:52,661+0100 INFO [proxy-3-thread-1] *SYSTEM org.sonatype.security.model.source.FileModelConfigurationSource - Loading security configuration from: /var/sonatype-work/nexus/conf/security.xml 2015-05-06 13:15:52,701+0100 DEBUG [proxy-3-thread-1] *SYSTEM com.sonatype.nexus.index.rest.publisher.security.CustomMetadataSecurityResource - Loading static security configuration: bundle://40.0:1/META-INF/nexus-custom-metadata-plugin-security.xml 2015-05-06 13:15:52,707+0100 DEBUG [proxy-3-thread-1] *SYSTEM com.sonatype.nexus.staging.internal.security.StagingStaticSecurityResource - Loading static security configuration: bundle://34.0:1/META-INF/nexus-staging-plugin-security.xml 2015-05-06 13:15:52,778+0100 DEBUG [proxy-3-thread-1] *SYSTEM com.sonatype.nexus.staging.internal.persist.StagingConfigurationSource - Loading configuration: /var/sonatype-work/nexus/conf/staging.xml 2015-05-06 13:15:52,779+0100 INFO [proxy-3-thread-1] *SYSTEM org.sonatype.nexus.configuration.ModelUtils - Loading model /var/sonatype-work/nexus/conf/staging.xml 2015-05-06 13:15:54,014+0100 WARN [proxy-3-thread-1] *SYSTEM com.sonatype.nexus.staging.internal.persist.DefaultStagingConfiguration - Validation warning: o repositories - Staging Repository 'raid_staging-1197' is not a valid repository, removing from configuration. 2015-05-06 13:15:54,024+0100 DEBUG [proxy-3-thread-1] *SYSTEM com.sonatype.nexus.staging.internal.security.SecurityConfigurationMutator - Building initial configuration 2015-05-06 13:15:54,275+0100 INFO [proxy-3-thread-1] *SYSTEM org.sonatype.nexus.configuration.ModelUtils - Loading model /var/sonatype-work/nexus/conf/ldap.xml 2015-05-06 13:15:54,332+0100 WARN [proxy-3-thread-1] *SYSTEM com.sonatype.security.ldap.connector.FailoverLdapConnector - Problem connecting to LDAP server: org.sonatype.security.ldap.dao.LdapDAOException: Failed to retrieve ldap information for users. 2015-05-06 13:15:54,356+0100 INFO [proxy-3-thread-1] *SYSTEM org.sonatype.nexus.configuration.ModelUtils - Loading model /var/sonatype-work/nexus/conf/crowd-plugin.xml 2015-05-06 13:15:54,359+0100 INFO [proxy-3-thread-1] *SYSTEM org.sonatype.nexus.notification.EmailCarrier - Sending out e-mail notification to notification group ""autoBlockTarget"" (total of 2 recipients). 2015-05-06 13:15:54,360+0100 INFO [proxy-3-thread-1] *SYSTEM org.sonatype.micromailer.imp.DefaultEMailer - Handling mail request NX1430914552636 2015-05-06 13:15:54,366+0100 INFO [pool-2-thread-1] *SYSTEM org.sonatype.nexus.velocity.VelocityEngineProvider - Creating Nexus VelocityEngine 2015-05-06 13:16:04,299+0100 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry - Added repository ""RubyGems"" [id=RubyGems][contentClass=Rubygems][mainFacet=org.sonatype.nexus.plugins.ruby.hosted.HostedRubyRepository] .... 2015-05-06 13:16:45,264+0100 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry - Added repository ""raid_staging-1197 (staging: closed)"" [id=raid_staging-1197][contentClass=Maven2][mainFacet=org.sonatype.nexus.proxy.maven.MavenHostedRepository] {noformat} h4. Symptoms After a Nexus restart, some staging repositories are no longer visible in the staging repositories list. Log messages similar to this will be present in nexus.log: {quote} com.sonatype.nexus.staging.internal.persist.DefaultStagingConfiguration - Validation warning: o repositories - Staging Repository 'raid_staging-1197' is not a valid repository, removing from configuration. {quote} h4. Workaround There is no workaround to prevent this race condition. h4. How to Recover Orphaned Repositories. Repositories can be recovered by Sonatype Support. Affected users should open a support ticket at https://support.sonatype.com along with a Nexus support bundle.",1 +"NEXUS-8557","05/06/2015 17:38:46","Cannot push nuget packages","NEXUS-8419 test essentially involves pushing a package to NuGet hosted and deleting it. I found that pushing a package was generating an error. [~mprescott] said he noted the same error working on the IT but it was not ticketed yet. This is that ticket. This ticket blocks NEXUS-8419 testing so I've marked it a blocker. This is Dizzam regression and does not occur in NX2. Here's the error from the log: {quote} 2015-05-06 12:25:51,850-0400 ERROR [qtp1745283964-51] admin com.sonatype.nexus.r epository.nuget.internal.NugetPushHandler - Unknown error java.lang.IllegalStateException: attempted use of temporary document id at com.google.common.base.Preconditions.checkState(Preconditions.java:17 3) [com.google.guava:18.0.0] at org.sonatype.nexus.orient.entity.EntityAdapter$AttachedEntityId.getVa lue(EntityAdapter.java:275) [org.sonatype.nexus.orient:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.entity.EntityId.toString(EntityId.java:68) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.search.SearchFacetImpl.identifier(Searc hFacetImpl.java:47) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(Metho dInvocationAction.java:40) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGu ard.java:233) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(Guarde dInterceptor.java:53) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.search.SearchFacetImpl.put(SearchFacetI mpl.java:53) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(Metho dInvocationAction.java:40) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGu ard.java:233) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(Guarde dInterceptor.java:53) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at com.sonatype.nexus.repository.nuget.internal.NugetGalleryFacetImpl.cr eateOrUpdatePackageAndContents(NugetGalleryFacetImpl.java:425) [na:na] at com.sonatype.nexus.repository.nuget.internal.NugetGalleryFacetImpl.pu t(NugetGalleryFacetImpl.java:331) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(Metho dInvocationAction.java:40) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGu ard.java:233) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(Guarde dInterceptor.java:53) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at com.sonatype.nexus.repository.nuget.internal.NugetPushHandler.storePa yload(NugetPushHandler.java:75) [na:na] at com.sonatype.nexus.repository.nuget.internal.NugetPushHandler.handle( NugetPushHandler.java:55) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [ org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.security.SecurityHandler.handle(Securit yHandler.java:46) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [ org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(Timi ngHandler.java:46) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [ org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.start(Context.java:112) [o rg.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [o rg.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(Con figurableViewFacet.java:45) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatc hAndSend(ViewServlet.java:177) [org.sonatype.nexus.plugins.nexus-repository-http bridge:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doServi ce(ViewServlet.java:164) [org.sonatype.nexus.plugins.nexus-repository-httpbridge :3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service (ViewServlet.java:121) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3 .0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.s ervlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefi nition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefiniti on.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition .java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServl etPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainI nvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerReq uestFilter.java:112) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainI nvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilte rChain.java:61) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.j ava:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilt er.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerReq uestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilte rChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.j ava:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilt er.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerReq uestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilte rChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.j ava:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilt er.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerReq uestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilte rChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(Abstrac tShiroFilter.java:449) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.web.SecurityFilter.executeChain(SecurityFilter.jav a:87) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiro Filter.java:365) [org.apache.shiro.web:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallab le.java:90) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable .java:83) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.DelegatingSubject.execute(Delegating Subject.java:383) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(Abs tractShiroFilter.java:362) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.web.SecurityFilter.doFilterInternal(SecurityFilter .java:103) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerReq uestFilter.java:125) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainI nvocation.java:82) [com.google.inject:4.0.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilte r(LicensingRedirectFilter.java:134) [com.sonatype.nexus.plugins.nexus-licensing- plugin:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainI nvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(Abst ractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainI nvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFil ter.java:65) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainI nvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(Environmen tFilter.java:92) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainI nvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilte rPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [c om.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [c om.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:2 03) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(Delegatin gFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1652) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java :585) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.j ava:143) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.jav a:577) [org.eclipse.jetty.security:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandl er.java:223) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandl er.java:1127) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java: 515) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandle r.java:185) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandle r.java:1061) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.j ava:141) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper .java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHa ndler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerColl ection.java:110) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper .java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.Server.handle(Server.java:497) [org.eclipse. jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [or g.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.jav a:257) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java :540) [org.eclipse.jetty.io:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPoo l.java:635) [org.eclipse.jetty.util:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool .java:555) [org.eclipse.jetty.util:9.2.9.v20150224] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_75] {quote} Of note, this error occurs both before and after setting API key, so you should see it pretty fast in the test. I was testing using the SONATYPE.TEST package and nuget cmd line tool if it matters.",0.5 +"NEXUS-8559","05/06/2015 20:09:06","Search criteria have navigation with no items","I noticed that on the RAW search, if you click ""More Criteria"" there's an option for ""Raw Repositories"" but it contains no items. When you drill into, it does open a menu but since there are no items there's a single grey line. The non-menu type items on this page have a more expected function: you pick them and they disappear from the list. This issue is not limited to RAW. You can get this to repro with any menu item that has a second level by adding all the items in that item to the search. I did not check older versions of NX3 or NX2 at this time. Steps to repro (this is just the one the attached screen shows): 0) Do not need to login (unless your anonymous is messed up). 1) Click on + to expand Search 2) Click on Raw 3) Click on More Criteria 4) Hover over ""Raw Repositories"". BUG: Selector is blank.",0.5 +"NEXUS-8561","05/06/2015 21:02:28","Chrome: Cannot use scroll wheel to view some bundles details","I just noticed that I cannot scroll through the bundles details using the scroll wheel of my mouse or the the trackpad of my laptop when in Chrome. FF works fine and the bundles list also works fine (in Chrome). Something about the bundles details. Workaround is to use the scrollbar on the right side or just mousing over it and scrolling. Copy/highlight mouse dragging also works (tho is an ugly workaround). Note, keyboard also isn't a workaround but is not part of this issue as it doesn't work on the list or in FF either. Seems just that keyboard movement through pages is not supported. The bundles revamp is new to Dizzam. I did not check older versions of NX3 to see if the same issue affects Plugins. I did not check NX2 at this time.",1 +"NEXUS-8562","05/06/2015 21:51:49","support distinct artifactMaxAge and metadataMaxAge settings in NPM","# Create an NPM proxy repository. Leave default values. Save. # Edit the repository configuration, changing to these values and Save. ## Not Found Cache TTL = 5 ## Artifact Max Age = 0 ## Metadata Max Age = 0 ## Item Max Age = 1440 # Confirm the values are as you have saved them in nexus.xml and UI. # Try to change the values back to default values and click Save # Resulting Values: ## Not Found Cache TTL = 1440 ## Artifact Max Age = 0 ## Metadata Max Age = 0 ## Item Max Age = 1440 The only way to reset the configuration is - delete the repository and start over - edit nexus.xml directly The UI is sending the correct values, but the backend refuses to save these and responds with: {noformat:title=response json} {""data"":{""contentResourceURI"":""http://localhost:8081/nexus/content/repositories/npmjs"",""id"":""npmjs"",""name"":""npmjs"",""provider"":""npm-proxy"",""providerRole"":""org.sonatype.nexus.proxy.repository.Repository"",""format"":""npm"",""repoType"":""proxy"",""exposed"":true,""writePolicy"":""READ_ONLY"",""browseable"":true,""indexable"":false,""notFoundCacheTTL"":1440,""repoPolicy"":""MIXED"",""checksumPolicy"":""IGNORE"",""downloadRemoteIndexes"":false,""defaultLocalStorageUrl"":""file:/app/nexus-testing/2.11.2-06/nexus-professional-2.11.2-06-bundle/sonatype-work/nexus/storage/npmjs/"",""remoteStorage"":{""remoteStorageUrl"":""https://registry.npmjs.org/""},""fileTypeValidation"":true,""artifactMaxAge"":0,""metadataMaxAge"":0,""itemMaxAge"":1440,""autoBlockActive"":true}} {noformat} ",2 +"NEXUS-8564","05/07/2015 15:29:39","Helper text spans 3 lines, could be 1 and save space","I noticed that the Online helper text (seen when creating or editing a repository) spans 3 lines [see attached] and it seems it could be 1 line saving space and consolodating the page a bit. ADMIN_REPOSITORIES_SETTINGS_ONLINE_HELP in PluginStrings.js seems to be defined as 1 string without breaks, so I assume this is a page ""issue"". We've specifically spoken about real estate on this page so filing improvement. This is recent regression to Dizzam and I suspect unintentional fallout (perhaps from http://bamboo.s/browse/NX3-OSS-229/commit ?). Spoke to [~dsauble] about this before filing.",0.5 +"NEXUS-8566","05/07/2015 16:41:06","Support multi-range requests","Currently Nexus only supports HTTP GET requests that contain a single range header. For effective retrieval of large files with tools like zsync (http://zsync.moria.org.uk/) it's important to be able to retrieve multiple parts in a single HTTP request. We are using this technique extensively with this patch: https://github.com/busjaeger/nexus-oss/commit/0cfaea8b4882c335672cae67b6509808713b95dd Would appreciate if you guys could pull it in. It's low-risk and well-tested.",2 +"NEXUS-8567","05/07/2015 17:37:49","expire cache task on npm group repositories should not abort when there is a problem processing member repositories","ExpireCacheTask on an npm group repository will abort if there is a problem processing a member repository. Expected: The task should not abort. The problem should be logged and the task should continue processing as many records/member repositories as possible. For an example problem, see NEXUS-8568. ",1 +"NEXUS-8568","05/07/2015 17:45:46","prevent OConcurrentModificationException when expiring not found cache and updating package metadata at the same time for a npm repository","The npm database can get in a state where expiring the not found cache on an npm repository can trigger an OConcurrentModificationException if package metadata is updated at the same time by another thread. The other thread would typically be a get or PUT request for an npm package. {{com.orientechnologies.orient.core.exception.OConcurrentModificationException: Cannot UPDATE the record #9:293 because the version is not the latest. Probably you are updating an old record or it has been modified by another user (db=v6 your=v5) }} {noformat} 2015-05-07 11:14:27,457-0400 INFO [qtp1949268043-463] admin org.sonatype.nexus.logging.rest.LogResource - ************************* * expire cache at 11:00 * ************************* 2015-05-07 11:14:40,605-0400 INFO [pxpool-1-thread-1] admin org.sonatype.nexus.tasks.ExpireCacheTask - Scheduled task (ExpireCacheTask) started :: Expiring caches for repository npm from path / and below. 2015-05-07 11:14:42,305-0400 WARN [pxpool-1-thread-1] admin org.sonatype.nexus.tasks.ExpireCacheTask - Scheduled task (ExpireCacheTask) failed :: Expiring caches for repository npm from path / and below. (started 2015-05-07T11:14:40-04:00, runtime 0:00:01.697) com.orientechnologies.orient.core.exception.OConcurrentModificationException: Cannot UPDATE the record #9:293 because the version is not the latest. Probably you are updating an old record or it has been modified by another user (db=v6 your=v5) at com.orientechnologies.orient.core.conflict.OVersionRecordConflictStrategy.checkVersions(OVersionRecordConflictStrategy.java:54) ~[na:na] at com.orientechnologies.orient.core.conflict.OVersionRecordConflictStrategy.onUpdate(OVersionRecordConflictStrategy.java:41) ~[na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.checkAndIncrementVersion(OAbstractPaginatedStorage.java:2009) ~[na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doUpdateRecord(OAbstractPaginatedStorage.java:1643) ~[na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commitEntry(OAbstractPaginatedStorage.java:2094) ~[na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:910) ~[na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:483) ~[na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:147) ~[na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2370) ~[na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2340) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.orient.OrientMetadataStore.updatePackages(OrientMetadataStore.java:334) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl.expireMetadataCaches(ProxyMetadataServiceImpl.java:83) ~[na:na] at com.bolyuba.nexus.plugin.npm.proxy.DefaultNpmProxyRepository.doExpireProxyCaches(DefaultNpmProxyRepository.java:150) ~[na:na] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doExpireCaches(AbstractProxyRepository.java:356) ~[nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.proxy.repository.AbstractRepository.expireCaches(AbstractRepository.java:430) ~[nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.doExpireCaches(AbstractGroupRepository.java:133) ~[nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.proxy.repository.AbstractRepository.expireCaches(AbstractRepository.java:430) ~[nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.proxy.repository.AbstractRepository.expireCaches(AbstractRepository.java:421) ~[nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.tasks.ExpireCacheTask.doRun(ExpireCacheTask.java:51) ~[nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:151) ~[nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) [nexus-scheduler-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.11.2-06.jar:2.11.2-06] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3] at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_45] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_45] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) [na:1.7.0_45] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_45] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_45] at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45] 2015-05-07 11:14:42,340-0400 WARN [pxpool-1-thread-1] admin org.sonatype.scheduling.DefaultScheduledTask - Exception in call method of scheduled task Internal com.orientechnologies.orient.core.exception.OConcurrentModificationException: Cannot UPDATE the record #9:293 because the version is not the latest. Probably you are updating an old record or it has been modified by another user (db=v6 your=v5) at com.orientechnologies.orient.core.conflict.OVersionRecordConflictStrategy.checkVersions(OVersionRecordConflictStrategy.java:54) ~[na:na] at com.orientechnologies.orient.core.conflict.OVersionRecordConflictStrategy.onUpdate(OVersionRecordConflictStrategy.java:41) ~[na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.checkAndIncrementVersion(OAbstractPaginatedStorage.java:2009) ~[na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doUpdateRecord(OAbstractPaginatedStorage.java:1643) ~[na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commitEntry(OAbstractPaginatedStorage.java:2094) ~[na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:910) ~[na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:483) ~[na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:147) ~[na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2370) ~[na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2340) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.orient.OrientMetadataStore.updatePackages(OrientMetadataStore.java:334) ~[na:na] at com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl.expireMetadataCaches(ProxyMetadataServiceImpl.java:83) ~[na:na] at com.bolyuba.nexus.plugin.npm.proxy.DefaultNpmProxyRepository.doExpireProxyCaches(DefaultNpmProxyRepository.java:150) ~[na:na] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doExpireCaches(AbstractProxyRepository.java:356) ~[nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.proxy.repository.AbstractRepository.expireCaches(AbstractRepository.java:430) ~[nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.doExpireCaches(AbstractGroupRepository.java:133) ~[nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.proxy.repository.AbstractRepository.expireCaches(AbstractRepository.java:430) ~[nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.proxy.repository.AbstractRepository.expireCaches(AbstractRepository.java:421) ~[nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.tasks.ExpireCacheTask.doRun(ExpireCacheTask.java:51) ~[nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:151) ~[nexus-core-2.11.2-06.jar:2.11.2-06] at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) ~[nexus-scheduler-2.11.2-06.jar:2.11.2-06] at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.11.2-06.jar:2.11.2-06] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3] at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_45] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_45] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) [na:1.7.0_45] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_45] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_45] at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45] 2015-05-07 11:14:42,340-0400 INFO [pxpool-1-thread-1] admin org.sonatype.nexus.configuration.application.DefaultNexusConfiguration - Applying Nexus Configuration due to changes in [Scheduled Tasks] made by *TASK... {noformat} Expected: do better preventing this commonly reproducible concurrency issue",1 +"NEXUS-8570","05/07/2015 18:01:01","improve the experience when npm package files are requested before npm metadata","Our current npm repository behaviour: 1. Request a package tgz through a proxy repository that exists in the remote. 404 not found 2. Request the metadata for that package. 200 response and package url in step 1 says to get it from Nexus 3. Try to get the package again from Nexus - still 404, cached not found. Expected: Nexus should try to be more forgiving when a package file is requested before metadata.",1 +"NEXUS-8571","05/07/2015 19:16:26","'Describe' output not rendering correctly for some values","Looks like we're running into this issue: https://github.com/google/guava/issues/844 Rendering from here is including a micro character that doesn't render properly: https://github.com/sonatype/nexus-oss/blob/master/plugins/basic/nexus-content-plugin/src/main/resources/org/sonatype/nexus/content/internal/requestDescriptionHtml.vm#L83-83 Noted while reviewing this screenshot in a PR(note the question mark in the Processing Time): https://cloud.githubusercontent.com/assets/186715/7512753/faecffdc-f4a6-11e4-890c-d67da41f21aa.png",1 +"NEXUS-8576","05/08/2015 18:42:15","Cannot submit tasks with advanced (cron) filled in","While reviewing NEXUS-7896, I tried to submit a task with advanced cron filled in and got a NPE warning both in browser and in log. [~krobinson] and I checked older Dizzam branches and found this is not related to that change. I did not check m3 or older (or NX2) at this time. I am leaving major assuming regression (at least from NX2) or we would have heard something by now. My crons were: 0 0 0 30 1 1 0 0 12 * * ? {quote} 2015-05-08 13:30:25,862-0400 ERROR [qtp858464260-222] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Task.create, java-method: org.sonatype.nexus.coreui.TaskComponent.create java.lang.NullPointerException: null at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210) [com.google.guava:18.0.0] at org.sonatype.nexus.validation.ValidationMessage.(ValidationMessage.java:36) [org.sonatype.nexus.validation:3.0.0.SNAPSHOT] at org.sonatype.nexus.validation.ValidationMessage.(ValidationMessage.java:41) [org.sonatype.nexus.validation:3.0.0.SNAPSHOT] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [na:1.8.0_40] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [na:1.8.0_40] at java.lang.reflect.Constructor.newInstance(Constructor.java:422) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77) [na:na] at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:194) [na:na] at org.sonatype.nexus.coreui.TaskComponent.asSchedule(TaskComponent.groovy:351) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:207) [na:na] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:56) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) [na:na] at org.sonatype.nexus.coreui.TaskComponent.create(TaskComponent.groovy:132) [na:na] at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:204) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:124) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.web.SecurityFilter.executeChain(SecurityFilter.java:87) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.web.SecurityFilter.doFilterInternal(SecurityFilter.java:103) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:134) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:65) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:92) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [org.eclipse.jetty.security:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.Server.handle(Server.java:497) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [org.eclipse.jetty.io:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [org.eclipse.jetty.util:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [org.eclipse.jetty.util:9.2.9.v20150224] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {quote}",1 +"NEXUS-8577","05/08/2015 19:14:52","Create new user gives error","I went to create a new user and got the attached error on screen and the below error in the log. This is recent NX3 regression (maybe legacy strip?). To try and assure that it was not related to a role I gave, I followed up and gave the exact same roles that Anonymous has. Same issue. Saving Anonymous works. {quote} 2015-05-08 14:06:26,487-0400 ERROR [qtp858464260-248] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_User.create, java-method: org.sonatype.nexus.coreui.UserComponent.create groovy.lang.MissingPropertyException: No such property: valueIfValid for class: java.lang.String at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:51) [na:na] at org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite.getProperty(GetEffectivePojoPropertySite.java:63) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:227) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetPropertySafe(AbstractCallSite.java:333) [na:na] at org.sonatype.nexus.coreui.UserComponent.create(UserComponent.groovy:141) [na:na] at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:204) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:124) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.web.SecurityFilter.executeChain(SecurityFilter.java:87) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.web.SecurityFilter.doFilterInternal(SecurityFilter.java:103) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:134) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:65) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:92) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [org.eclipse.jetty.security:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.Server.handle(Server.java:497) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [org.eclipse.jetty.io:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [org.eclipse.jetty.util:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [org.eclipse.jetty.util:9.2.9.v20150224] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {quote} I'd make this critical if this wasn't a WIP. As is, can workaround with default roles, esp since save works.",0.5 +"NEXUS-8579","05/08/2015 19:24:10","repository storage may not be properly deleted","1. Create an npm proxy repository named npm. 2. Request some metadata and package that results in 200 and stored in local cache 3. Delete the repository. Now you have nexus/trash/npm and the packages you downloaded 4. Create an npm hosted repository named npm 5. publish an npm package to it. 6. Delete the repository. This fails ( see example stack trace below ) and the storage/npm directory and contents remain in place. The repository is removed from nexus.xml 7. create an npm proxy repo named npm again. the repo gets created fine. 8. Now the new proxy repo contains the packages from the failed deleted hosted repo directory Expected: - delete to trash should not fail in this way and formerly deleted contents should not be available to newly created repos. {noformat} jvm 1 | 2015-05-08 14:45:33,867-0300 INFO [qtp565526063-81] admin org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry - Removed repository ""npm-proxy"" [id=npm-proxy][contentClass=npm][mainFacet=com.bolyuba.nexus.plugin.npm.proxy.NpmProxyRepository] jvm 1 | 2015-05-08 14:45:33,867-0300 INFO [qtp565526063-81] admin org.sonatype.nexus.configuration.application.DefaultNexusConfiguration - Applying Nexus Configuration due to changes in [Repository Grouping Configuration, npm] made by admin... jvm 1 | 2015-05-08 14:45:34,369-0300 INFO [pxpool-1-thread-4] admin org.sonatype.nexus.tasks.DeleteRepositoryFoldersTask - Scheduled task (DeleteRepositoryFoldersTask) started :: Deleting folders with repository ID: npm-proxy jvm 1 | 2015-05-08 14:45:34,375-0300 WARN [pxpool-1-thread-4] admin org.sonatype.nexus.proxy.wastebasket.DefaultRepositoryFolderRemover - Got exception during execution of RepositoryFolderCleaner org.sonatype.nexus.proxy.wastebasket.CoreRepositoryFolderCleaner, continuing. jvm 1 | java.nio.file.DirectoryNotEmptyException: /Users/plynch/dev/sonatype/nexus-all/nexus-bundles/assemblies/nexus-pro/target/nexus-professional-2.11.2-06-bundle/sonatype-work/nexus/trash/npm-proxy jvm 1 | at sun.nio.fs.UnixCopyFile.move(UnixCopyFile.java:445) ~[na:1.8.0_40] jvm 1 | at sun.nio.fs.UnixFileSystemProvider.move(UnixFileSystemProvider.java:262) ~[na:1.8.0_40] jvm 1 | at java.nio.file.Files.move(Files.java:1395) ~[na:1.8.0_40] jvm 1 | at org.sonatype.nexus.util.file.DirSupport.sameFileStoreMove(DirSupport.java:405) ~[nexus-core-2.11.2-06.jar:2.11.2-06] jvm 1 | at org.sonatype.nexus.util.file.DirSupport.move(DirSupport.java:450) ~[nexus-core-2.11.2-06.jar:2.11.2-06] jvm 1 | at org.sonatype.nexus.util.file.DirSupport.moveIfExists(DirSupport.java:465) ~[nexus-core-2.11.2-06.jar:2.11.2-06] jvm 1 | at org.sonatype.nexus.proxy.wastebasket.AbstractRepositoryFolderCleaner.delete(AbstractRepositoryFolderCleaner.java:54) ~[nexus-core-2.11.2-06.jar:2.11.2-06] jvm 1 | at org.sonatype.nexus.proxy.wastebasket.CoreRepositoryFolderCleaner.cleanRepositoryFolders(CoreRepositoryFolderCleaner.java:45) ~[nexus-core-2.11.2-06.jar:2.11.2-06] jvm 1 | at org.sonatype.nexus.proxy.wastebasket.DefaultRepositoryFolderRemover.deleteRepositoryFolders(DefaultRepositoryFolderRemover.java:45) ~[nexus-core-2.11.2-06.jar:2.11.2-06] jvm 1 | at org.sonatype.nexus.tasks.DeleteRepositoryFoldersTask.doRun(DeleteRepositoryFoldersTask.java:73) [nexus-core-2.11.2-06.jar:2.11.2-06] jvm 1 | at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:151) [nexus-core-2.11.2-06.jar:2.11.2-06] jvm 1 | at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) [nexus-scheduler-2.11.2-06.jar:2.11.2-06] jvm 1 | at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.11.2-06.jar:2.11.2-06] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_40] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_40] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_40] jvm 1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_40] jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_40] jvm 1 | at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] jvm 1 | 2015-05-08 14:45:34,375-0300 INFO [pxpool-1-thread-4] admin org.sonatype.nexus.tasks.DeleteRepositoryFoldersTask - Scheduled task (DeleteRepositoryFoldersTask) finished :: Deleting folders with repository ID: npm-proxy (started 2015-05-08T14:45:34-03:00, runtime 0:00:00.006) jvm 1 | 2015-05-08 14:45:34,379-0300 INFO [pxpool-1-thread-4] admin org.sonatype.nexus.configuration.application.DefaultNexusConfiguration - Applying Nexus Configuration due to changes in [Scheduled Tasks] made by *TASK... {noformat}",1 +"NEXUS-8581","05/08/2015 21:58:31","Unselectable space between field contents and dropdown arrow","I noticed on the repository page when editing/creating a repository with authentication, in the authentication dropdown, there's currently a space between the authentication type contents and the dropdown arrow which pulls down available choices. This space is unselectable and seems it could be tightened. See version policy dropdown for expectations. This seems like recent regression but I did not check older branches at this time. Revamp is new to Dizzam so no older NX3 checks were performed. This does not affect NX2 (no dropdown exists).",0.5 +"NEXUS-8584","05/08/2015 22:20:49","Uneditable list leaves whitespace where filter clear was","While writing up NEXUS-8583, I noticed the attached: That there was a weird white space following the greyed out filter space when editing an uneditable role. When creating a new or editing an editable role, this spot is filled by an X used to clear the filter. My guess is it's hidden to maximize uneditability but leaves a weird white space in its wake. I did not check older NX3 or NX2 at this time.",0.5 +"NEXUS-8586","05/11/2015 00:12:38","OScriptManager - Cannot find default script language for javascript","Orient supports some scripting features, which we are not using (maybe never will) but its spitting out a warning when it starts up. Should look into disabling this so it won't complain, or change the default to ""groovy"" which is available.",0.5 +"NEXUS-8595","05/11/2015 22:54:50","UI errors on search load","Loading search I am seeing the attached. I do not see an error in the logs (standard level) or JS. I was able to perform a search as well (though having trouble with a second - unsure if related so ticketing seperately) so as far as I can tell this is UI. My guess is since everything starts null seems it'd conflict with anything not allowed to be null. This seems recent regression but without the capability to push NuGet repos (NEXUS-8557) I haven't searched for a while. Search is revamped in Dizzam though so no older NX3 checks done at this time. This issue does not impact NX2.",2 +"NEXUS-8602","05/12/2015 16:06:42","Misconfigured nuget realm/api key leads to indecipherable warning","In NEXUS-8420, I believed I was unable to push some NuGet packages. It turns out that my configuration was bad but because the errors were so generic and the fact some packages worked (still a mystery to me) I was unable to tell this. The front end nuget message is ""Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host."" The log shows: {quote} 2015-05-11 17:43:21,120-0400 WARN [qtp1321231863-47] org.eclipse.jetty.http.HttpParser - badMessage: java.lang.IllegalStateException: too much data after closed for HttpChannelOverHttp@4fdaf693{r=1,c=false,a=IDLE,uri=-} {quote} Neither of these speak to the fact the configuration is bad (realm not enabled, API Key not set for host). After discussing with [~mprescott], we decided to file and discuss if worth fixing in triage. This could also be an improvement; leaving bug because of the way the summary is phrased:P NuGet was revamped for Dizzam so no older NX3 checks were done at this time. Also did not back check NX2 (which could be impacted). Acceptance Criteria: - Provide a human readable message that informs you to turn on the NuGet realm",1 +"NEXUS-8604","05/12/2015 18:44:47","If you change the admin password, auth fails on future login attempts","Steps to reproduce: + Go to the User feature, and change the password for `admin`. + Log out, and try to log back in (attempt fails). + Restart the server, and try to log in (fails). + Delete the sonatype-work folder, restart the server, and try to log in (fails). + Rebuild Nexus, start the server, and try to log in (works!) Example: http://take.ms/8KZGd Log output: {code} 2015-05-12 18:35:10,021+0100 INFO [qtp838028810-52] *UNKNOWN org.sonatype.nexus.rapture.internal.SessionAuthenticationFilter - Failure: token=org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false (127.0.0.1) org.apache.shiro.authc.AuthenticationException: Authentication token of type [class org.apache.shiro.authc.UsernamePasswordToken] could not be authenticated by any configured realms. Please ensure that at least one realm can authenticate these tokens. at org.sonatype.nexus.security.authc.FirstSuccessfulModularRealmAuthenticator.doMultiRealmAuthentication(FirstSuccessfulModularRealmAuthenticator.java:65) [na:na] at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doAuthenticate(ModularRealmAuthenticator.java:269) [na:na] at org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:198) [org.apache.shiro.core:1.2.3] at org.apache.shiro.mgt.AuthenticatingSecurityManager.authenticate(AuthenticatingSecurityManager.java:106) [org.apache.shiro.core:1.2.3] at org.apache.shiro.mgt.DefaultSecurityManager.login(DefaultSecurityManager.java:270) [org.apache.shiro.core:1.2.3] at org.apache.shiro.nexus.NexusWebSecurityManager.login(NexusWebSecurityManager.java:56) [na:na] at org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:256) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.filter.authc.AuthenticatingFilter.executeLogin(AuthenticatingFilter.java:53) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.rapture.internal.SessionAuthenticationFilter.onAccessDenied(SessionAuthenticationFilter.java:70) [org.sonatype.nexus.plugins.nexus-rapture-plugin:3.0.0.SNAPSHOT] at org.apache.shiro.web.filter.AccessControlFilter.onAccessDenied(AccessControlFilter.java:133) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:162) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:203) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:178) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:131) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:130) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:92) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [org.eclipse.jetty.security:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.Server.handle(Server.java:497) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [org.eclipse.jetty.io:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [org.eclipse.jetty.util:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [org.eclipse.jetty.util:9.2.9.v20150224] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_20] 2015-05-12 18:35:10,022+0100 INFO [qtp838028810-52] *UNKNOWN org.sonatype.nexus.rapture.internal.SessionAuthenticationFilter - Access denied {code}",2 +"NEXUS-8605","05/12/2015 18:54:05","No such property: valueIfValid while saving LDAP/CLM/Crowd","Cannot create LDAP servers, configure CLM/Crowd due to exception shown in attachment.",1 +"NEXUS-8606","05/12/2015 19:13:33","Cannot save changes to an existing LDAP connection","Steps to reproduce: + Create an LDAP connection + Edit the connection, and change one of the parameters + Save the change + Attempt to navigate to a different feature (notice the “Discard changes” modal) + If you click “Discard changes”, then navigate back to the LDAP connection, notice how the edited parameter still has its original value. Screencast: http://take.ms/1aaBz",0.5 +"NEXUS-8620","05/13/2015 19:40:04","Maven Proxy / Hosted repositories cannot be saved","[~alin] noticed that repositories with version policies cannot be saved. I checked master and see when I save I get a ""may not be null"" message under these. I checked through the default ones and think it just proxy and hosted maven that are affected. Alin says this is related to NEXUS-8503 and ""that is becuase disabling a field will result into those fields to not be submitted and that will not pass repository validation"". I guess when I checked that I only checked by sight, my bad=\ Below also appears in the log: {quote} 2015-05-13 14:38:42,377-0400 WARN [qtp789933455-214] admin org.sonatype.nexus.repository.config.ConfigurationFacetImpl - Validation failed; 1 constraints violated: 1) may not be null, type: class org.sonatype.nexus.repository.config.ConfigurationFacetImpl$SectionWrapper, property: attributes[maven].versionPolicy, value: null {quote} This does not impact NX2 or older NX3 builds.",1 +"NEXUS-8624","05/14/2015 01:12:20","Replace NPM package root when proxying (instead of merging the content)","At the moment we always merge the downloaded package root with previously cached content. This can end up leaving bad entries in the cache even after they have been removed from the upstream proxy. The most likely reason package versions were removed from the remote is due to the package author [unpublishing|https://docs.npmjs.com/cli/unpublish] them. End users should examine the associated package SCM repository commit history to look for a note of such an action. NEXUS-8625 also describes another scenario where Nexus can end up with bad metadata. Expected: Replace the cached metadata content with the new downloaded content.",1 +"NEXUS-8625","05/14/2015 01:18:35","Allow fetching of tarballs from incomplete NPM packages","Currently we disallow fetching of tarballs from incomplete NPM packages, where a package is considered as incomplete if it has at least one version which doesn't define a tarball distribution. We should instead just disallow fetching of tarballs whose specific version is incomplete, rather than ban the whole package whose versions might all be complete except for one incomplete version. Recreate instructions: * Install Nexus and add an NPM proxy repository for https://registry.npmjs.org/ and then add it to an NPM group (called npm) * Accessing chokidar package root should pass: curl 'http://127.0.0.1:8081/nexus/content/groups/npm/chokidar' * Now download the registry root: curl 'http://127.0.0.1:8081/nexus/content/groups/npm/-/all' (will take a while) * Accessing chokidar package root should now fail: curl 'http://127.0.0.1:8081/nexus/content/groups/npm/chokidar' * Accessing chokidar tarball should also fail: http://127.0.0.1:8081/nexus/content/groups/npm/chokidar/-/chokidar-0.6.3.tgz Original cause: the npmjs registry root declares basic version metadata for all packages, and Nexus distributes this partial metadata across the package roots when the registry root is fetched. If you then request a particular package root (say chokidar) Nexus will overlay the full package metadata with the partial metadata from the registry root. For almost all packages this means that the partial version metadata from the registry root is replaced with full version metadata from the package root. However, the chokidar and phantomjs packages each have a version listed in the registry root that doesn't appear in their package root. This leaves an incomplete version in the merged package root, which then causes nexus to fail to serve any tarballs from that package. Acceptance test: with this fix these last two failures are fixed. ",1 +"NEXUS-8629","05/14/2015 20:16:30","Add non-browsable warning","We don't yet have repository browse support (e.g. by visiting the repository URL in the browser), which may cause confusion when users follow the repository URLs from the Repo Admin UI. ACCEPTANCE CRITERIA For browsable formats (maven, but not nuget - determine which is which), visiting the root of the repository produces a user-friendly explanation that this is meant for clients and is not yet browsable. Technical comments - this will require amending the repository recipe(s)",2 +"NEXUS-8630","05/14/2015 21:50:00","Stop auto-collapsing side-nav","http://take.ms/6FIqC Its distracting (ui flickers/twitches on some transitions), doesn't add too much real value. It also will auto hide even if manually expanded due to status refresh, which is also pretty annoying. Dont mind if user wants to collapse it, so this isn't about making the side-nav static (collapsable=false) but simply don't automatically hide it anymore.",0.5 +"NEXUS-8631","05/14/2015 22:12:10","Switching to System>HTTP auto expands all then collapses","I noticed when I went to System>HTTP, that behind the normal loading screen, every field was expanded. I could tell this because I saw traces of red where there is none once the field loads in addition to the page contents being longer then loading shorter. While reproducing I also noticed that intermittantly, I would get a message prompting me to discard/save changes even though I was going to/loading this page. This may be a distinct issue, however, mentioning here because the video I captured, this happened twice. The third time (on video) it did not occur and shows the behavior without this. I left minor in case this is two issues in one, that one is rather perplexing, otherwise this would be trivial. Let me know if not clear. I did not check older versions of NX3 or NX2 at this time.",1 +"NEXUS-8632","05/14/2015 22:18:14","HTTP Proxy takes 2 clicks to save ""off""","While testing NEXUS-8488, I setup a proxy via System>HTTP, but I saw something weird so went to do it again. Rather than delete all the settings I had input, I simply unchecked the proxy and saved. When I did this, I was presented with a screen with HTTP Proxy still checked but both fields validating, despite the fact I had saved with HTTP Proxy unchecked. If you uncheck again and save this time it turns off. Similarly if you refresh the page or leave and return, it will be unchecked. Steps to repro: 1) Load System>HTTP 2) Check HTTP Proxy 3) Enter HTTP Proxy host and HTTP Proxy port 4) Save 5) Uncheck HTTP Proxy 6) Save; BUG: HTTP Proxy rechecks (tho fields are wiped) I did not check older NX3 or NX2 at this time.",0.5 +"NEXUS-8635","05/15/2015 01:18:54","Picker widget field labels for disabled are strange","Other fields labels when disabled do not get same treatment.",0.5 +"NEXUS-8637","05/15/2015 11:59:26","Forbidden redeploy attempt causes HTTP 500 response","While the policy is enforced, the log gets an ugly stack-trace and response code of 500 Internal Error which is not acceptable. {noformat} 2015-05-15 12:57:40,456+0200 WARN [qtp725114275-51] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure org.sonatype.nexus.repository.IllegalOperationException: Repository does not allow updating assets. at org.sonatype.nexus.repository.storage.StorageTxImpl.setBlob(StorageTxImpl.java:431) [na:na] at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_45] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_45] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:65) [na:na] at com.sun.proxy.$Proxy160.setBlob(Unknown Source) [na:na] at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl.put(RawContentFacetImpl.java:149) [na:na] at org.sonatype.nexus.repository.raw.internal.RawContentHandler.handle(RawContentHandler.java:73) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [na:na] at org.sonatype.nexus.repository.partial.PartialFetchHandler.handle(PartialFetchHandler.java:60) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:112) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:45) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:177) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:164) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:121) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] ... {noformat} Response should be 400 Bad Request.",1 +"NEXUS-8642","05/15/2015 23:02:10","No NX version in describe","While testing the revamped ?describe UI, I noticed that the page no longer has a version at the top. Instead it says $nexusVersion. Assuming a variable went awry somewhere? Since (largely) an internal tool this might be the most trivial thing I've ever filed but I think worth correcting (if not intentional). Did not check older NX3 at this time, but the screen from [~dsauble]'s PR for NEXUS-7711 shows it working, so I'm assuming recent regression, likely because of NEXUS-7711.",0.5 +"NEXUS-8644","05/18/2015 10:07:42","On refresh, feature icon and title overlap","Screencast: http://take.ms/v4o3j Saw this periodically on Nexus 3 Pro, but now seeing on every refresh in Nexus 3 OSS.",0.5 +"NEXUS-8650","05/19/2015 14:38:56","Request Timeout field in Crowd appears to do nothing?","While reviewing Crowd, I tried different values for both HTTP and Crowd specific Request Timeout and only the 0 value appeared to affect Crowd (would cause seemingly endless attempts to reconnect on a ""bad"" username/password). I asked the team what this field was supposed to do to clarify I was testing the right thing and it was inferred I should create a ticket for review. I tried values of 60, 1 and 20000 (in case millseconds regression) in the field. I tried with Crowd off and valid username/password as well as Crowd on and ""bad"" username/password and it immediately gave me a validation no matter what configuration (except in the 0 case). I tried less combinations on the fallback general HTTP values but my findings were those are not being picked up either. Investigation appreciated. If not just me, all the above should probably be (re)tested once a solution is implemented. I did not check older NX3 or NX2 to see if working/not working at this time.",0.5 +"NEXUS-8653","05/19/2015 21:00:15","LDAP's Verify User Mapping button errors and does nothing","Noticed that in NX3, when configuring LDAP, the Verify User Mapping button gives the attached error and does nothing. This also appears as a JS error in the console: ""Uncaught ReferenceError: me is not defined nexus-coreui-plugin-prod.js?_v=3.0.0-SNAPSHOT&_dc=1432064146870:1"" ADDENDUM: This shows as ""Uncaught ReferenceError: me is not defined - LdapServers.js?_dc=1432066923264:433"" with ?debug on. This works in NX2. I did not check older milestones of NX3 but this is not regression of the ticket discovered by. I am leaving this major because this is a super easy way to make sure this configuration is working before actually working with LDAP stuff. I am not sure if there's anywhere else that does that in one button click which makes for a poor workaround.",0.5 +"NEXUS-8654","05/19/2015 21:06:19","LDAP's Verify Login does nothing","Noticed that in NX3, when configuring LDAP, the Verify Login submission did nothing regardless of configuration setup or data you entered valid or invalid. There are no errors in the console, log or screen. As far as I can tell this item does not exist in NX2, so there's nothing to compare against functionally either. Weirdly, for that reason I am marking this minor because there's no real loss either. I did not check older milestones of NX3 but this is NOT regression of the ticket discovered by.",0.5 +"NEXUS-8655","05/19/2015 21:33:57","LDAP's Verify Connection times out faster than listed","While testing NEXUS-8606, I went back to a branch before the changes to establish how LDAP was running in NX3 (and NX2) pre-change to review for regression issues. When testing NEXUS-8606, I noticed that when I set the Connection Rules (via the Connection ""tab"") that it timed out within a 7 count when I clicked ""Verify Connection"" regardless of what I put in that field. In the branch I tested before NEXUS-8606 (109941d), Verify Connection seemed to take longer (or shorter) as I adjusted the values. Note, in order to see this, you need to do a bad configuration. If you have a good configuration it works immediately. Honestly, I am not even sure it's supposed to work this way (or if it was only for actual LDAP timeout). These fields are new to NX3 (so not NX2 regression). I did not check older NX3 milestones at this time.",1 +"NEXUS-8656","05/19/2015 21:56:01","non proxy hosts tooltip suggests a misleading syntax","If one is to add non proxy hosts - the tooltip (? icon) suggests regular expression *\.somecompany\.com. Inserting a host with such format does not produce an error, but while having a wildcard '*' at the beginning of a hostname causes an error to show up in the console upon restart of Nexus. A correct regex patter should be something like: .+\.somecompany\.com This correctly validates upon restart. Acceptance Criteria: - Change help text to correct pattern",0.5 +"NEXUS-8658","05/19/2015 22:24:26","After save of LDAP user, Users screen shows non-LDAP users with LDAP filter","Testing LDAP, I saved an LDAP user (giving them permissions) and the behavior returned you to the Users list but showed the non-LDAP users. The filter however, was still showing LDAP. This is inconsistant and confusing so ticketing. One of the reasons for not seeing this elsewhere is this is one of the few (if any) pages in which you save and it changes the screen. Most of them stay on the page they were on. This occurred in Dizzam before the found as ticket and was not immediate regression though I did not test older NX3 builds. This does not impact NX2.",1 +"NEXUS-8665","05/20/2015 12:11:17","Handle content validation failures gracefully","Similar issue to NEXUS-8637, this case also currently results in HTTP 500 Internal Error, but should not. Downstream 404 Not Found is more appropriate, OR, in case of deploy, 400 Bad Request.",1 +"NEXUS-8666","05/20/2015 12:13:32","Group repositories should handle and skip members in case of some exceptions","Spotted while testing, content validation stopped group processing, where the right content was present in two repositories: - repoA - throw InvalidContentEx, and execution stopped here (and resulting with 500 Internal Error, see NEXUS-8665) - repoB - did have the good content, but was never asked for. In this case group handler should neglect (log maybe) that a member reported content validation failure, but *should continue processing* on next member.",1 +"NEXUS-8667","05/20/2015 12:40:06","Maven content validation fails to valid POM","Valid POM is being requested, but Maven Proxy fails to validate it. The POM is not a valid XML but Maven would parse it. The POM in question: https://repository.sonatype.org/content/groups/sonatype-grid/org/json/org.json/2.0-NEXUS-3758/org.json-2.0-NEXUS-3758.pom Excerpt from logs: {noformat} 2015-05-20 13:37:40,119+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.maven.internal.MavenFacetImpl - GET maven-central : /org/json/org.json/2.0-NEXUS-3758/org.json-2.0-NEXUS-3758.pom 2015-05-20 13:37:40,187+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.maven.internal.MavenProxyFacet - Fetching: GET https://repo1.maven.org/maven2/org/json/org.json/2.0-NEXUS-3758/org.json-2.0-NEXUS-3758.pom HTTP/1.1 2015-05-20 13:37:40,187+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.internal.httpclient.SharedHttpClientConnectionManager - Connection request: [route: {s}->https://repo1.maven.org:443][total kept alive: 0; route allocated: 0 of 20; total allocated: 0 of 200] 2015-05-20 13:37:40,187+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.internal.httpclient.SharedHttpClientConnectionManager - Connection leased: [id: 5][route: {s}->https://repo1.maven.org:443][total kept alive: 0; route allocated: 1 of 20; total allocated: 1 of 200] 2015-05-20 13:37:40,362+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.httpclient.FilteredHttpClient - Remote status: Remote Available 2015-05-20 13:37:40,362+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.maven.internal.MavenProxyFacet - Response: HttpResponseProxy{HTTP/1.1 404 Not Found [Server: nginx, Content-Type: text/html, Via: 1.1 varnish, Content-Length: 168, Accept-Ranges: bytes, Date: Wed, 20 May 2015 11:37:40 GMT, Via: 1.1 varnish, Age: 1051259, Connection: keep-alive, X-Served-By: cache-iad2128-IAD, cache-fra1246-FRA, X-Cache: HIT, HIT, X-Cache-Hits: 1, 1, X-Timer: S1432121860.473672,VS0,VE0] ResponseEntityProxy{[Content-Type: text/html,Content-Length: 168,Chunked: false]}} 2015-05-20 13:37:40,362+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.maven.internal.MavenProxyFacet - Status: HTTP/1.1 404 Not Found 2015-05-20 13:37:40,362+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.internal.httpclient.SharedHttpClientConnectionManager - Connection [id: 5][route: {s}->https://repo1.maven.org:443] can be kept alive for 30.0 seconds 2015-05-20 13:37:40,362+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.internal.httpclient.SharedHttpClientConnectionManager - Connection released: [id: 5][route: {s}->https://repo1.maven.org:443][total kept alive: 1; route allocated: 1 of 20; total allocated: 1 of 200] 2015-05-20 13:37:40,363+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.view.Router - Response: Response{status=Status{successful=false, code=404, message='null'}} 2015-05-20 13:37:40,363+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.view.Router - Request: HttpRequestAdapter{action='GET', path='/org/json/org.json/2.0-NEXUS-3758/org.json-2.0-NEXUS-3758.pom', parameters={}, payload=HttpRequestPayloadAdapter{contentType='null', size=-1}} 2015-05-20 13:37:40,363+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.view.Context - Starting: Route{matcher=org.sonatype.nexus.repository.maven.internal.MavenArtifactMatcher@32bfaec3, handlers=[org.sonatype.nexus.repository.view.handlers.TimingHandler@6e0af325, org.sonatype.nexus.repository.security.SecurityHandler@3140e65d, org.sonatype.nexus.repository.negativecache.NegativeCacheHandler@3f98cd28, org.sonatype.nexus.repository.partial.PartialFetchHandler@523c4887, org.sonatype.nexus.repository.maven.internal.VersionPolicyHandler@7fe19a3f, org.sonatype.nexus.repository.maven.internal.MavenHeadersHandler@76b56b74, org.sonatype.nexus.repository.proxy.ProxyHandler@9d24977]} 2015-05-20 13:37:40,363+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.view.Context - Proceeding: org.sonatype.nexus.repository.view.handlers.TimingHandler@6e0af325 2015-05-20 13:37:40,363+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.view.Context - Proceeding: org.sonatype.nexus.repository.security.SecurityHandler@3140e65d 2015-05-20 13:37:40,363+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.view.Context - Proceeding: org.sonatype.nexus.repository.negativecache.NegativeCacheHandler@3f98cd28 2015-05-20 13:37:40,363+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.view.Context - Proceeding: org.sonatype.nexus.repository.partial.PartialFetchHandler@523c4887 2015-05-20 13:37:40,363+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.view.Context - Proceeding: org.sonatype.nexus.repository.maven.internal.VersionPolicyHandler@7fe19a3f 2015-05-20 13:37:40,363+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.view.Context - Proceeding: org.sonatype.nexus.repository.maven.internal.MavenHeadersHandler@76b56b74 2015-05-20 13:37:40,363+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.view.Context - Proceeding: org.sonatype.nexus.repository.proxy.ProxyHandler@9d24977 2015-05-20 13:37:40,363+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.maven.internal.MavenFacetImpl - GET rso : /org/json/org.json/2.0-NEXUS-3758/org.json-2.0-NEXUS-3758.pom 2015-05-20 13:37:40,365+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.maven.internal.MavenProxyFacet - Fetching: GET https://repository.sonatype.org/content/repositories/sonatype-grid/org/json/org.json/2.0-NEXUS-3758/org.json-2.0-NEXUS-3758.pom HTTP/1.1 2015-05-20 13:37:40,365+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.internal.httpclient.SharedHttpClientConnectionManager - Connection request: [route: {s}->https://repository.sonatype.org:443][total kept alive: 1; route allocated: 0 of 20; total allocated: 1 of 200] 2015-05-20 13:37:40,365+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.internal.httpclient.SharedHttpClientConnectionManager - Connection leased: [id: 6][route: {s}->https://repository.sonatype.org:443][total kept alive: 1; route allocated: 1 of 20; total allocated: 2 of 200] 2015-05-20 13:37:41,209+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.httpclient.FilteredHttpClient - Remote status: Remote Available 2015-05-20 13:37:41,209+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.maven.internal.MavenProxyFacet - Response: HttpResponseProxy{HTTP/1.1 200 OK [Server: nginx/0.8.54, Date: Wed, 20 May 2015 11:37:41 GMT, Content-Type: application/xml, Connection: keep-alive, Keep-Alive: timeout=5, X-Frame-Options: SAMEORIGIN, X-Content-Type-Options: nosniff, Accept-Ranges: bytes, ETag: ""{SHA1{09e0ffa58a51ae5a0b344fd5ed2574502dabf617}}"", Last-Modified: Mon, 18 Oct 2010 15:28:05 GMT, Content-Length: 1062] ResponseEntityProxy{[Content-Type: application/xml,Content-Length: 1062,Chunked: false]}} 2015-05-20 13:37:41,209+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.maven.internal.MavenProxyFacet - Status: HTTP/1.1 200 OK 2015-05-20 13:37:41,209+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.maven.internal.MavenProxyFacet - Entity: ResponseEntityProxy{[Content-Type: application/xml,Content-Length: 1062,Chunked: false]} 2015-05-20 13:37:41,210+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.maven.internal.MavenFacetImpl - PUT rso : /org/json/org.json/2.0-NEXUS-3758/org.json-2.0-NEXUS-3758.pom 2015-05-20 13:37:41,212+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.internal.httpclient.SharedHttpClientConnectionManager - Connection [id: 6][route: {s}->https://repository.sonatype.org:443] can be kept alive for 5.0 seconds 2015-05-20 13:37:41,212+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.internal.httpclient.SharedHttpClientConnectionManager - Connection released: [id: 6][route: {s}->https://repository.sonatype.org:443][total kept alive: 2; route allocated: 1 of 20; total allocated: 2 of 200] 2015-05-20 13:37:41,213+0200 DEBUG [qtp1313331475-209] admin org.sonatype.nexus.repository.maven.internal.MavenFacetImpl - Discovered content type [text/plain, application/octet-stream] 2015-05-20 13:37:41,217+0200 WARN [qtp1313331475-209] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure org.sonatype.nexus.repository.InvalidContentException: Declared content type application/xml, but discovered [text/plain, application/octet-stream]. at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.determineContentType(MavenFacetImpl.java:522) [na:na] at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.putAssetPayload(MavenFacetImpl.java:331) [na:na] at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.putArtifact(MavenFacetImpl.java:295) [na:na] at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.put(MavenFacetImpl.java:249) [na:na] at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.put(MavenFacetImpl.java:237) [na:na] at org.sonatype.nexus.repository.maven.internal.MavenProxyFacet.store(MavenProxyFacet.java:54) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:157) [na:na] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:49) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [na:na] at org.sonatype.nexus.repository.maven.internal.MavenHeadersHandler.handle(MavenHeadersHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [na:na] at org.sonatype.nexus.repository.maven.internal.VersionPolicyHandler.handle(VersionPolicyHandler.java:50) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [na:na] at org.sonatype.nexus.repository.partial.PartialFetchHandler.handle(PartialFetchHandler.java:60) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [na:na] at org.sonatype.nexus.repository.negativecache.NegativeCacheHandler.handle(NegativeCacheHandler.java:49) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:112) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:45) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.getFirst(GroupHandler.java:119) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.doGet(GroupHandler.java:97) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:81) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [na:na] at org.sonatype.nexus.repository.partial.PartialFetchHandler.handle(PartialFetchHandler.java:60) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:112) [na:na] {noformat}",1 +"NEXUS-8676","05/22/2015 16:38:06","mime detection may not cache properly for specific request paths","DefaultMimeSupport has it's own code to extract the extension from a given path. The code doesn't handle certain cases where dots appear multiple times in the path, or when slashes appear after the last dot, which means it can end up extract more of the path than necessary. This can lead to situations where the mime cache is ignored. DefaultMimeSupport should instead use FilenameUtils.getExtension",0.5 +"NEXUS-8694","05/25/2015 16:42:11","create role menu expansion not persisting","See video: http://take.ms/BEc4f Note I am not clicking anything other than the Create Role button. Menu is just hiding on it's own before I can click anything. ",0.5 +"NEXUS-8695","05/25/2015 16:45:35","UI complaining about nexus:healthcheck:read missing for anonymous user","http://take.ms/L1uKq Load Nexus 3 UI as anonymous user. Lots of messages about {{nexus:healthcheck:read}} priv missing. Used nexus-professional-3.0.0-20150525.080626-1043-bundle ",0.5 +"NEXUS-8696","05/25/2015 18:12:21","newly created scheduled tasks are not enabled by default","Using Nexus 3 ( tested nexus-professional-3.0.0-20150525.080626-1043-bundle ), create a Scheduled task. By default the Task Enabled checkbox is not checked. When creating any new scheduled task, the default should be that the enabled checkbox is checked. This is a logical default and how it works in Nexus 2.x. ",0.5 +"NEXUS-8697","05/25/2015 19:57:29","MavenProxyFacet - Could not parse date Last-Modified using system current time as item creation time WARN message","Create a Nexus 3 Maven 2 proxy repository to your Nexus 3 instance Central Proxy repository. Request abbot/abbot/0.13.0/abbot-0.13.0.pom through this proxy repo. This fails with 404 ( due to {{Declared content type text/xml, but discovered \[text/plain, application/octet-stream\]}}. See NEXUS-8667 I guess? ) - but there also appears to be a problem parsing Last-Modified headers because they were rewritten in a format not expected by our new proxy implementation. {noformat} 2015-05-25 15:38:22,145-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.conn.ssl.SSLConnectionSocketFactory - Starting handshake 2015-05-25 15:38:22,233-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.conn.ssl.SSLConnectionSocketFactory - Secure session established 2015-05-25 15:38:22,234-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.conn.ssl.SSLConnectionSocketFactory - negotiated protocol: TLSv1.2 2015-05-25 15:38:22,234-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.conn.ssl.SSLConnectionSocketFactory - negotiated cipher suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 2015-05-25 15:38:22,234-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.conn.ssl.SSLConnectionSocketFactory - peer principal: CN=repo1.maven.org, O=""Sonatype, Inc"", L=Fulton, ST=MD, C=US 2015-05-25 15:38:22,234-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.conn.ssl.SSLConnectionSocketFactory - peer alternative names: [repo1.maven.org] 2015-05-25 15:38:22,234-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.conn.ssl.SSLConnectionSocketFactory - issuer principal: CN=DigiCert SHA2 Secure Server CA, O=DigiCert Inc, C=US 2015-05-25 15:38:22,235-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.impl.execchain.MainClientExec - Executing request GET /maven2/abbot/abbot/0.13.0/abbot-0.13.0.pom HTTP/1.1 2015-05-25 15:38:22,235-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.impl.execchain.MainClientExec - Target auth state: UNCHALLENGED 2015-05-25 15:38:22,235-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 >> GET /maven2/abbot/abbot/0.13.0/abbot-0.13.0.pom HTTP/1.1 2015-05-25 15:38:22,235-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 >> User-Agent: Nexus/3.0.0-SNAPSHOT (PRO; Mac OS X; 10.10.3; x86_64; 1.8.0_40) 2015-05-25 15:38:22,235-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 >> Host: repo1.maven.org 2015-05-25 15:38:22,235-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 >> Connection: Keep-Alive 2015-05-25 15:38:22,235-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 >> Accept-Encoding: gzip,deflate 2015-05-25 15:38:22,263-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << HTTP/1.1 200 OK 2015-05-25 15:38:22,263-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << Server: nginx 2015-05-25 15:38:22,263-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << Content-Type: text/xml 2015-05-25 15:38:22,263-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << Last-Modified: Tue, 08 Nov 2005 22:07:44 GMT 2015-05-25 15:38:22,263-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << ETag: ""437121b0-a6"" 2015-05-25 15:38:22,263-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << Via: 1.1 varnish 2015-05-25 15:38:22,263-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << Content-Length: 166 2015-05-25 15:38:22,263-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << Accept-Ranges: bytes 2015-05-25 15:38:22,263-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << Date: Mon, 25 May 2015 18:38:22 GMT 2015-05-25 15:38:22,263-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << Via: 1.1 varnish 2015-05-25 15:38:22,263-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << Age: 875202 2015-05-25 15:38:22,264-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << Connection: keep-alive 2015-05-25 15:38:22,264-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << X-Served-By: cache-iad2134-IAD, cache-jfk1020-JFK 2015-05-25 15:38:22,264-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << X-Cache: HIT, HIT 2015-05-25 15:38:22,264-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << X-Cache-Hits: 1, 1 2015-05-25 15:38:22,264-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.headers - http-outgoing-12 << X-Timer: S1432579102.254291,VS0,VE0 2015-05-25 15:38:22,264-0300 DEBUG [qtp98061342-296] *UNKNOWN org.apache.http.impl.execchain.MainClientExec - Connection can be kept alive for 30000 MILLISECONDS 2015-05-25 15:38:22,354-0300 DEBUG [qtp98061342-289] admin org.apache.http.headers - http-outgoing-11 << HTTP/1.1 200 OK 2015-05-25 15:38:22,355-0300 DEBUG [qtp98061342-289] admin org.apache.http.headers - http-outgoing-11 << Date: Mon, 25 May 2015 18:38:22 GMT 2015-05-25 15:38:22,355-0300 DEBUG [qtp98061342-289] admin org.apache.http.headers - http-outgoing-11 << Server: Nexus/3.0.0-SNAPSHOT (PRO) 2015-05-25 15:38:22,355-0300 DEBUG [qtp98061342-289] admin org.apache.http.headers - http-outgoing-11 << X-Frame-Options: SAMEORIGIN 2015-05-25 15:38:22,355-0300 DEBUG [qtp98061342-289] admin org.apache.http.headers - http-outgoing-11 << X-Content-Type-Options: nosniff 2015-05-25 15:38:22,355-0300 DEBUG [qtp98061342-289] admin org.apache.http.headers - http-outgoing-11 << ETag: ""437121b0-a6"" 2015-05-25 15:38:22,355-0300 DEBUG [qtp98061342-289] admin org.apache.http.headers - http-outgoing-11 << Last-Modified: 2005-11-08T18:07:44.000-0400 2015-05-25 15:38:22,355-0300 DEBUG [qtp98061342-289] admin org.apache.http.headers - http-outgoing-11 << Content-Type: text/xml 2015-05-25 15:38:22,355-0300 DEBUG [qtp98061342-289] admin org.apache.http.headers - http-outgoing-11 << Content-Length: 166 2015-05-25 15:38:22,355-0300 DEBUG [qtp98061342-289] admin org.apache.http.impl.execchain.MainClientExec - Connection can be kept alive for 30000 MILLISECONDS 2015-05-25 15:38:22,356-0300 WARN [qtp98061342-289] admin org.sonatype.nexus.repository.maven.internal.MavenProxyFacet - Could not parse date 'Last-Modified: 2005-11-08T18:07:44.000-0400'; using system current time as item creation time java.lang.NullPointerException: null at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.extractLastModified(ProxyFacetSupport.java:234) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:215) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:184) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:152) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:49) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.maven.internal.MavenHeadersHandler.handle(MavenHeadersHandler.java:46) [org.sonatype.nexus.plugins.nexus-repository-maven:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.maven.internal.VersionPolicyHandler.handle(VersionPolicyHandler.java:50) [org.sonatype.nexus.plugins.nexus-repository-maven:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.partial.PartialFetchHandler.handle(PartialFetchHandler.java:60) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.negativecache.NegativeCacheHandler.handle(NegativeCacheHandler.java:49) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.ExceptionHandler.handle(ExceptionHandler.java:38) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:46) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:89) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.start(Context.java:112) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:45) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:177) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:164) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:121) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:130) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:92) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [org.eclipse.jetty.security:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.Server.handle(Server.java:497) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [org.eclipse.jetty.io:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [org.eclipse.jetty.util:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [org.eclipse.jetty.util:9.2.9.v20150224] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {noformat}",1 +"NEXUS-8698","05/26/2015 11:55:16","Discrepancy of strictContentTypeValidation between UI created and default DefaultRepositoriesContributor repositories","DefaultRepositoriesContributor creates with {{strictContentTypeValidation=false}} while repositories created via UI have {{strictContentTypeValidation=true}}. I think we should decide which one is the default and go with that in both cases. Acceptance Criteria: - Set strictContentTypeValidation to true when default repos are created",0.5 +"NEXUS-8701","05/26/2015 17:14:01","Using a repository id of "".."" creates a repository that is now untouchable in the UI","Noticed while testing an unrelated issue that the nexus UI allows you to enter two dots '..' as an id for a repository, doing this renders the repository effectively useless in the UI, ultimately i had to manually remove the repository from my nexus.xml",0.5 +"NEXUS-8704","05/26/2015 19:48:33","Raw repo with index.html shows error 400","h4. Acceptance Criteria Whenever a request ending in slash would otherwise 404, Nexus will check each of the pages, in the order provided. This only affects raw hosted repositories. (Proxies can rely on the 'default page' handling of the remote repository.) h4. RATIONALE Deploy a site with an index.html to a hosted raw repo e.g. with the Maven site deployment from https://github.com/sonatype/nexus-book-examples/tree/nexus-3.0.x/maven/simple-project Then navigating to the URL of the repo you see a 400 error in the Nexus UI http://localhost:8081/repository/site/ Even though http://localhost:8081/repository/site/index.html renders the site in HTML. Note: - Make sure we have a longer term plan for how we handle index.html and directory root/etc...",1 +"NEXUS-8705","05/26/2015 20:22:15","Default file blob store should be created immediately","Currently, creation of the default blob store is lazy. This is a problem because (insert problem here). - Problem was went to look for Blob Store and it wasn't there yet! A new instance of Nexus should create the default file blob store as it starts up for the first time.",1 +"NEXUS-8713","05/27/2015 16:02:18","Feed paging does not work","As feeds are getting revived, it occurred to me that on UI paging of the feeds does not work.",1 +"NEXUS-8717","05/27/2015 20:25:01","CLM Verify connection errors","After configuring CLM, I clicked ""Verify Connection"" and saw the attached error on screen and the below error in the console. This is not surprising considering the state of NX3 and CLM however there really isn't a ticket covering this IMO. I am linking the sister which I think things will be reevaluated but I'm not convinced this will be fixed so ticketing seperately. This does not affect NX2. I did not check older versions of NX3 at this time, tho I believe either CLM wasn't integrated or this is new to Dizzam since we stripped legacy (I acknowledge those are someone opposite but just stating what I believe=)). {quote} 2015-05-27 15:17:26,437-0400 ERROR [qtp756632732-159] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: clm_CLM.verifyConnection, java-method: com.sonatype.nexus.clm.internal.ui.ClmComponent.verifyConnection groovy.lang.MissingMethodException: No signature of method: com.sonatype.nexus.clm.ClmConnector.getRestConfiguration() is applicable for argument types: (java.lang.String, null, null) values: [http://localhost:8070, null, null] Possible solutions: getRestConfiguration(), getRestConfiguration(java.lang.String, boolean, java.lang.Integer), getRestConfiguration(java.lang.String, boolean, java.lang.Integer, java.lang.String, java.lang.String), getConfiguration() at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:56) [groovy-all:2.3.7] at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46) [groovy-all:2.3.7] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) [groovy-all:2.3.7] at com.sonatype.nexus.clm.internal.ui.ClmComponent.verifyConnection(ClmComponent.groovy:120) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:201) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:121) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:130) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:92) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [org.eclipse.jetty.security:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.Server.handle(Server.java:497) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [org.eclipse.jetty.io:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [org.eclipse.jetty.util:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [org.eclipse.jetty.util:9.2.9.v20150224] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {quote}",0.5 +"NEXUS-8719","05/27/2015 22:09:52","Icon missing on search details breadcrumb","Noticed that there's a gap in the breadcrumb when drilling down into search details (search-component-component details). I asked [~dsauble] and he said there should be an icon there. I am guessing this is recent regression but did not check old NX3 at this time. NX2 is not affected.",0.5 +"NEXUS-8724","05/28/2015 21:05:07","improve snapshot remover tasks performance by reducing potential i/o","1. When processing GAV that contains multiple timestamped pom files, and the remove if released option is true, then make sure we only check for release once, not once per every timestamp snapshot. This reduces the I/O for the *Remove Snapshots From Repository* task _when the remove if released option is checked ( true )_. 2. Do not include signature or hash files when checking for the oldest accessed snapshot last requested timestamp. Given each artifact can have upwords of 5 total of these (.asc , .asc.sha1, .asc.md5, .sha1 and .md5 ) and typically always two ( .sha1, .md5 ), this can reduce I/O reading attributes files by a minimum of 66%. This is always a benefit to the *Remove Unused Snapshots from Repository* task because this task always tries to calculate the days since any snapshot was last requested. It does this by reading attributes files off disk. Avoiding the above files means attributes for these files does not need to be read off disk. 3. When determining the most recent last requested time for the snapshots in the same build number, avoid iterating over the entire GAV collection of files for each artifact to check. By caching the last requested timestamps in the main processing loop, and determining the most recent last requested date on the fly, we can avoid iterating over the entire collection again for each file, when needing to find the most recent last requested for similar snapshots. This has significant performance benefits for the *Remove Unused Snapshots from Repository* task. ",0.5 +"NEXUS-8726","05/28/2015 23:29:51","Security role can be added to itself","It is currently possible to add a role to itself in the administration user interface. Validation and the UI should make this impossible to prevent downstream problems",2 +"NEXUS-8730","05/29/2015 18:58:20","Creating repos expands all collapsed left nav items","Collapsed IQ Server and Security left nav items to be able to see Tasks and Repos in one screen. Noticed that creating a Maven Hosted repo auto expanded what I had collapsed. I tried Raw hosted as well. No errors in console or log. I tried creating a task and this did not auto-expand, so as far as I can tell this is a repo creation thing. I did not check older NX3 or NX2 at this time. Let me know if you need a vid.",2 +"NEXUS-8737","06/01/2015 19:18:10","npm database grows unexpectedly large on cache expired requests","On every npm proxy repository cache expiry, when the remote is checked for metadata updates, then the npm Orient DB database file {{default.pcl}} file grows by a large unexpected amount. In theory I would expect no need to store this much new data in the database for something that did not really change. Reproduce using 2.11.3-01: 1. create npm proxy repo to https://registry.npmjs.org 2. Set all cache settings to 1 minute ( for testing purposes ). Save. These will display as 1,0,0,1 ( UI bug, not the issue ) 3. note sonatype-work/nexus/db/npm/default.pcl size: mine is 65k 4. request http://localhost:8081/nexus/content/repositories/npm/express and get 200 response {noformat} > curl -v -4 http://localhost:8081/nexus/content/repositories/npm/express -o /dev/null * Hostname was NOT found in DNS cache * Trying 127.0.0.1... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to localhost (127.0.0.1) port 8081 (#0) > GET /nexus/content/repositories/npm/express HTTP/1.1 > User-Agent: curl/7.39.0 > Host: localhost:8081 > Accept: */* > < HTTP/1.1 200 OK < Date: Mon, 01 Jun 2015 18:07:29 GMT < Server: Nexus/2.11.3-01 < X-Frame-Options: SAMEORIGIN < X-Content-Type-Options: nosniff < Accept-Ranges: bytes < Content-Type: application/json < Last-Modified: Mon, 01 Jun 2015 18:07:29 GMT < Content-Length: 505713 < { [data not shown] 100 493k 100 493k 0 0 754k 0 --:--:-- --:--:-- --:--:-- 756k * Connection #0 to host localhost left intact {noformat} 5. note default.pcl size: mine becomes 449K 6. wait more than 1 minute for cache expiry. Set logger remote.storage.outbound to DEBUG. 7. request express again - verify 304 not modified response from remote, note default.pcl size increase - now size is: 833K 8. repeat - for every cache expiry, default.pcl will grow over 400 k. ",1 +"NEXUS-8746","06/02/2015 23:19:22","gradle simple-project-staging sample project uses an obsolete version of the nexus-staging-ant-tasks","The build.gradle file in the ""simple-project-staging"" project in our trial uses version 1.6.1 of the nexus-staging-ant-tasks: https://github.com/sonatype/nexus-bundles/blob/nexus-2.11.x/assemblies/nexus-trial/src/main/content/trial-evalguide/gradle/simple-project-staging/build.gradle#L51 This causes the sample project to fail with a pretty unhelpful exception when used with Nexus 2.11.3: {quote} * Where: Build file 'C:\nexus-evalguide\gradle\simple-project-staging\build.gradle' line: 125 * What went wrong: Execution failed for task ':releaseStagingRepository'. > java.lang.ArrayIndexOutOfBoundsException: -1 * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. {quote} I was going to just check in a fix for this, but then I realized there are probably other places in the sample projects using the wrong versions of the staging clients. So someone who is familiar with these needs to check them over. ",0.5 +"NEXUS-8748","06/03/2015 09:48:51","Release HTTP Test Harness library with fixed OSGi metadata","Release HTTP Test Harness library with fixed OSGi metadata, and then fix it's usage in some ITs like: NugetITSupport, MavenContentValidationIT etc ",1 +"NEXUS-8749","06/03/2015 17:02:19","Generic exception occurs with some NuGet errors","With help from [~mprescott] and [~mcculls], it was revealed that the error I received while testing NuGet was a generic 500 and that needs to be made into a specific error. I noticed this twice and will put details below, however, only one case was reproducable. A) While testing NEXUS-8714 (MacOSX), I unintentionally left my HTTP Proxy configured when running the curl. This generated the error every time. Steps to repro: 1) From Security>HTTP, check HTTP Proxy. Configure a non-working proxy (mine was Charles defaults without Charles on; so HTTP proxy host = localhost, HTTP proxy port = 8888). Save. 2) From console run curl from NEXUS-8714, ""curl -v --user admin:admin123 http://127.0.0.1:8081/repository/nuget-group/Microsoft.AspNet.WebApi.Client/5.2.2 -o test.nupkg"" B) While testing NEXUS-8611 (Windows7), I tried to use the nuget command line to install FaceSharp (nuget install FaceSharp -source NX3Proxy). This did not complete with an error 500 on the command line screen (see attached) but also with the error occurring. This was not reproducable. I suspect after successful install this was caused by a timeout that may be able to be reproduced with throttling if my suspicions are right. But as such there are no steps at this time. I did not test older NX3 or NX2 at this time, though I suspect (at least in the case of NX3) the issue is because of ""new"" NuGet (revamped in m4). Error in both cases: {quote} 2015-06-02 17:45:03,698-0400 WARN [qtp756632732-53] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure java.lang.UnsupportedOperationException: null at com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyFacet.getUrl(NugetProxyFacet.java:115) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:163) [na:na] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:49) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [na:na] at org.sonatype.nexus.repository.view.ExceptionHandler.handle(ExceptionHandler.java:38) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:116) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.getFirst(GroupHandler.java:119) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.doGet(GroupHandler.java:97) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:81) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [na:na] at org.sonatype.nexus.repository.view.ExceptionHandler.handle(ExceptionHandler.java:38) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:116) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:130) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:92) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [org.eclipse.jetty.security:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.Server.handle(Server.java:497) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [org.eclipse.jetty.io:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [org.eclipse.jetty.util:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [org.eclipse.jetty.util:9.2.9.v20150224] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {quote}",1 +"NEXUS-8754","06/03/2015 22:43:16","Nexus startup script error","Starting nexus on Ubuntu 14.04 with the following commands {code:none} nexus-3.0.0-b2015020701/bin/nexus {code} throws the following error {code:none} nexus-3.0.0-b2015020701/bin/nexus: 10: [: xstart: unexpected operator {code} This is caused because of the == operator(bashism) used in here and ubuntu defaults at linking /bin/sh to dash. Can consider replacing the == operator with = operator ? {code:none} ls -la /bin/sh lrwxrwxrwx 1 root root 4 Jul 20 2014 /bin/sh -> dash {code} Note that nexus is started although the error is thrown.",0.5 +"NEXUS-8755","06/03/2015 22:56:47","NuGet push causes 500 errors when nuget realm not active","Testing NEXUS-8721, I changed a file from xml into a nupkg file then tried to upload it to Nexus using curl (curl -u admin:admin123 -X PUT -v -include -F package=@fake.nupkg http://localhost:8081/repository/nuget-hosted/) [strict content validation on] As expected it errored, but the error is error 500 the debug starts ""
2015-06-03 17:44:45,516-0400 ERROR [qtp2060633588-111] admin com.sonatype.nexus.repository.nuget.internal.NugetPushHandler - Unknown error""
. I asked [~mprescott] and he said worth filing to fix up. I did not check older NX3 at this time (NX2 is older code and not relavent to check against). Full trace here: {code} 2015-06-03 17:44:45,516-0400 ERROR [qtp2060633588-111] admin com.sonatype.nexus.repository.nuget.internal.NugetPushHandler - Unknown error java.lang.RuntimeException: Missing nuspec at com.sonatype.nexus.repository.nuget.odata.NugetPackageUtils.extractNuspec(NugetPackageUtils.java:85) [na:na] at com.sonatype.nexus.repository.nuget.odata.NugetPackageUtils.packageMetadata(NugetPackageUtils.java:55) [na:na] at com.sonatype.nexus.repository.nuget.internal.NugetGalleryFacetImpl.put(NugetGalleryFacetImpl.java:316) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:40) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:233) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at com.sonatype.nexus.repository.nuget.internal.NugetPushHandler.storePayload(NugetPushHandler.java:75) [na:na] at com.sonatype.nexus.repository.nuget.internal.NugetPushHandler.handle(NugetPushHandler.java:55) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.ExceptionHandler.handle(ExceptionHandler.java:38) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:46) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.start(Context.java:116) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:130) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:92) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [org.eclipse.jetty.security:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.Server.handle(Server.java:497) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [org.eclipse.jetty.io:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [org.eclipse.jetty.util:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [org.eclipse.jetty.util:9.2.9.v20150224] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] 2015-06-03 17:49:43,758-0400 ERROR [qtp2060633588-193] admin com.sonatype.nexus.repository.nuget.internal.NugetPushHandler - Unknown error java.lang.RuntimeException: Missing nuspec at com.sonatype.nexus.repository.nuget.odata.NugetPackageUtils.extractNuspec(NugetPackageUtils.java:85) [na:na] at com.sonatype.nexus.repository.nuget.odata.NugetPackageUtils.packageMetadata(NugetPackageUtils.java:55) [na:na] at com.sonatype.nexus.repository.nuget.internal.NugetGalleryFacetImpl.put(NugetGalleryFacetImpl.java:316) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:40) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:233) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at com.sonatype.nexus.repository.nuget.internal.NugetPushHandler.storePayload(NugetPushHandler.java:75) [na:na] at com.sonatype.nexus.repository.nuget.internal.NugetPushHandler.handle(NugetPushHandler.java:55) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.ExceptionHandler.handle(ExceptionHandler.java:38) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:46) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:78) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.start(Context.java:116) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:130) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:92) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [org.eclipse.jetty.security:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.Server.handle(Server.java:497) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [org.eclipse.jetty.io:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [org.eclipse.jetty.util:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [org.eclipse.jetty.util:9.2.9.v20150224] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {code}",2 +"NEXUS-8758","06/04/2015 18:18:39","Index creation does not take name case into account","When checking to see if an index already exists the raw repository name is used, but elasticsearch stores indices in lowercase only. This leads to an exception being thrown on update as we try to create the same index again. {code} Suppressed: org.elasticsearch.indices.IndexAlreadyExistsException: [test-1234556] already exists at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService.validateIndexName(MetaDataCreateIndexService.java:160) [na:na] at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService.validate(MetaDataCreateIndexService.java:552) [na:na] at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService.access$200(MetaDataCreateIndexService.java:88) [na:na] at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(MetaDataCreateIndexService.java:230) [na:na] at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:365) [na:na] at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:188) [na:na] at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:158) [na:na] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_40] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_40] ... 1 common frames omitted {code} Any repository created with uppercase letters can be used to trigger this behaviour; on an update from the UI you will be greated with a 'facet failed to start' message.",0.5 +"NEXUS-8783","06/05/2015 23:29:10","task-update permission required to create","With tasks-read and tasks-create permissions, I can click the button to create a new task however, I cannot access some of the fields (including the required ones in both of the current tasks). Oddly, I can access some of the fields. Once I add ""tasks-update"" permission, the tasks become creatable. Not only does this seem odd but it's not how any of the other permissions I've tested function, so I'm filing for eval. I did not test older NX3 or NX2 at this time. Debug off during these tests.",0.5 +"NEXUS-8784","06/08/2015 14:34:41","Modal not bound to enter key","While changing a users password through Security>Users, I entered the new password twice and hit enter. Nothing happened. I was able to continue using the mouse and clicking Change Password. The authentication modal just before this allowed enter, so I'm assuming this is a bug.",0.5 +"NEXUS-8792","06/09/2015 16:39:02","Maven model and search are missing ""version""","The maven component model contains maven2.artifactId and maven2.groupId but it is missing maven2.version. This is a bug according to discussions with Jason",0.5 +"NEXUS-8793","06/09/2015 16:42:47","KAR files cannot be proxied with strict content validation","I attempted to build NX3 using the m4 rc (what I assume will be rc 2) running mvn clean install -f nexus-oss/pom.xml -U -Dtest=skip. About 4/5ths in, I got a build failure with: {quote} [ERROR] Failed to execute goal on project nexus-base-template: Could not resolve dependencies for project org.sonatype.nexus.assemblies:nexus-base-template:karaf-assembly:3.0.0-SNAPSHOT: Could not find artifact org.apache.karaf.features:framework:kar:3.0.3 in local-nexus (http://localhost:8081/repository/dev/) -> [Help 1] {quote} The component appeared to be there however (http://repo1.maven.org/maven2/org/apache/karaf/features/framework/3.0.3/). With help from the [~mcculls] and the team, we discovered that strict content validation was preventing KAR files from being proxied. [~mcculls] noted that 'looking at the describe output with validation unchecked Nexus seems to think the kar file is ""audio/midi"" which is odd'. This should be reproducable by building Nexus as above. On repro, recommend clearing repository (rm -rf ~/.m2/repository) to make sure you don't get a cached copy. I did this before I tested the build as well. I did not check older NX3 at this time. I'm pretty sure NX2 is unaffected.",0.5 +"NEXUS-8794","06/09/2015 16:53:56","Equivalent attribute treatment in search","Component search in Nexus 3 has a bunch of attributes, where conceptually the following should be the case. group = maven.groupId name = maven.artifactId Respectively a custom search for the same term e.g. 'maven-surefire-plugin' or 'junit' using either criteria should show the same results. This is not the case.",1 +"NEXUS-8797","06/09/2015 18:00:51","Outreach content not showing","With todays build at least (not sure about last couple of days) the outreach content no longers seems to show in the Welcome feature view. The bundle seems to be downloaded into /data/tmp/outreach (two in fact in my case) with zero byte .metadata files. Nothing is showing in the UI though.",1 +"NEXUS-8798","06/09/2015 18:01:19","Only show latest SNAPSHOT version in Search results","Published SNAPSHOTs appear in search results with their raw timestamped version, when the expectation is that we can search at the x-SNAPSHOT version and find only the latest one. *Acceptance criteria* * Show only the latest snapshot in the search results (our assumption is that people don't care about older snapshots) h5. Technical Notes * To accomplish this we'll have to parse the version string from the results to pull out the timestamp. * Possibly also we can pull the latest version from maven-metadata.xml",5 +"NEXUS-8821","06/11/2015 16:38:16","add useful logging for siesta/wonderland/authenticate resource username mismatch","When a request as follows, end user gets a 400 status response and message ""Username mismatch"": {noformat} curl -v -4 -H ""Accept: application/json"" -H ""Content-Type: application/json"" --data '{""u"":""YWRtaW4="",""p"":""YWRtaW4xMjM=""}' http://localhost:8081/nexus/service/siesta/wonderland/authenticate {noformat} The problem is the user was authenticated as anonymous user because credentials were only in the payload and not in Basic Auth headers. Since anonymous username != payload username, we return 400. Problem is this is hard to diagnose without debug logging and a better understanding of what username mismatches. For example, end user may also send basic auth header username which can authenticate, but the encoded payload values are encoded incorrectly - same problem, user is left wondering where the problem lies. This can be improved with a simple logging adjustment. Expected: - log at WARN the authenticated username and payload username if they do not match - log at DEBUG the decoded usernames before the match attempt Reference: https://sonatype.zendesk.com/entries/39800446",0.5 +"NEXUS-8824","06/11/2015 19:41:12","ConcurrentCleanupTest is flaky","This test seems to be timing-sensitive to a degree that causes Bamboo builds to fail from time to time. We should tighten this or perhaps jettison it. For instance: http://bamboo.s/browse/NX3-OSSF425-1 The exception is: {{java.lang.AssertionError: Expected: a collection with size <0> but: collection size was <1> at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20) at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:8) at org.hamcrest.MatcherAssert$assertThat.callStatic(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:53) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:157) (2 more lines...)}}",1 +"NEXUS-8829","06/12/2015 21:10:16","outreach does not detect http global configuration changes","Configure nexus with proxy host {{a.proxy:8888}}. Disable Caching in the outreach capability. ( only required to make validation easier ) Configure org.apache.http logger at DEBUG level. Trigger an outreach bundle fetch ( reload welcome page ) Notice proxy is used : jvm 1 | 2015-06-12 17:05:07,071-0300 DEBUG [qtp333052202-88] anonymous org.apache.http.impl.execchain.MainClientExec - Opening connection {}->http://a.proxy:8888->http://sonatype-download.global.ssl.fastly.net:80 Change the http proxy in nexus to be {{b.proxy:8888}} and save. Trigger an outreach bundle fetch again. Notice that the connection is still being made to a.proxy and not b.proxy. Expected: b.proxy should be used for all existing connections. ",0.5 +"NEXUS-8834","06/15/2015 16:04:58","service/local/repository_statuses can have performance implications with large numbers of repositories","When Nexus has a large number of repositories, particularly staging repositories, performance of the UI can degrade viewing the repository list, and this can also impact the performance of the server overall. h4. Setup Configure Nexus with - a single hosted maven 2 release repo - a single Central Repository proxy repo - a staging profile and single staging repository ( represents a Nexus managed repo ) - a single maven 2 group repo containing both all other repos h4. Test 1 h5. Steps 1. Login to Nexus as an admin user. 2. Click Repositories list to show it. 3. Notice Nexus sends two requests to /nexus/service/local/repository_statuses - for each repository, Nexus decides if the user has view/read permissions. - the first request responds with 202 accepted and a list of the statuses of all repositories - the second request approx. 5 seconds later responds with 200 and data including remoteStatus of all proxy repositories is included - the statuses of the proxy repositories are updated with the remoteStatus value changed from ""UNKNOWN"" to their blocked status ( AVAILABLE, AUTO_BLOCKED, etc. ) h4. Test 2 h5. Steps 1. Configure your browser to use an intercepting proxy. Set a breakpoint to never respond to ( block but do not return ) /nexus/service/local/repository_statuses requests - this is to simulate a Nexus instance which is slow to respond because it is busy evaluating permissions. 2. Login to Nexus as an admin user. 3. Click Repositories list to show it. 4. Notice Nexus sends a *new* /nexus/service/local/repository_statuses request every 5 seconds until very first request times out due to UI timeout. Nexus decides if the user has view/read permissions per repository for each of these requests. h4. Expected - When the repository list UI filter is displaying the User Managed repositories list, the repository_statuses resource need not include data for, or perform permissions checks on Nexus managed repos not even displayed to the end user. - Nexus UI should limit number of repository status requests made to the backend. For example, can the two requests be combined? Can only proxy repos be evaluated when the remote status needs updating in the UI. - Nexus should not retry these potentially expensive requests every 5 seconds if the first request is simply slow to respond NOTES: - Potentially explore a no op function for status - Potentially only show status for Admin users",0.5 +"NEXUS-8836","06/15/2015 17:14:41","Improve browse no results message","The new browse UI simply says ""Undefined"" when there are no contents (see attached). Filing to get this message improved. NX2 does not have this issue because as far as I can tell there's always content (even just an empty base folder). This is newly introduced to NX3 (post-legacy). Up for discussion but recommend a message like: ""There are no _ in this repository (that you have permission to see)"" where _ is component or asset, I think for now, component. I am unsure about the security portion but it would be more clear were we to have restriction on viewing specific components within a repo.",0.5 +"NEXUS-8837","06/15/2015 18:18:52","remote.storage.outbound logger should include http response status and have consistent format","remote.storage.outbound logger prints useful outbound request information in a compact format. One useful addition to the log message would be the response http status code. This can help detect remote problems more quickly, and can help infer what/why Nexus responded to an inbound request. Additionally, the npm plugin should log outbound requests in the same format as other proxy repositories do.",0.5 +"NEXUS-8838","06/15/2015 18:54:05","UI Component and Asset details page urls should be transportable","As a User I would be able to copy the link for the page I am looking at and share that link with someone else. [~krobinson] noticed that if you copy a link for an element you are looking at details for, when you hit the bookmark it takes you to the base Browse UI page (selecting a repo). I verified this and the fact it does not occur for search, although likely will be an issue for any of our Drilldown views which require multiple levels of context during normal navigation. This is new to NX3 and NX2 is not browsable in this exact way (but is bookmarkable for the non-tree/path version).",0.5 +"NEXUS-8844","06/16/2015 15:02:22","Browse UI sort order is case sensitive","I noticed that the Browse UI sort order is case sensitive. I assume this is a bug, as if I am looking for ""U"", I prefer not to look 2 places. I did not check NX2 at this time. This function is new to NX3. Debug was off during this test. NOTE: I got this data by building NX3 using NX3.",0.5 +"NEXUS-8845","06/16/2015 15:08:35","Group and version can show blank even when not used","Testing Browse UI, I noticed that there was cases where the group and version showed blank even when not used. There's an acceptance criteria to 'Output ""Zero with a slash"" for unattached assets that we don't have version/group data on' but none for group or version. I believe this was discussed in phone or hipchat however, so am making an improvement ticket. Scenarios I noticed: * Nuget items have no group but have no ""Zero with a slash"". Field currently displays blank. * Raw items have no version but have no ""Zero with a slash"". Field currently displays blank. * Raw items interestingly have group defined as /. I feel like this could potentially be ""Zero with a slash"" as well, but I may be missing a level of detail. Maybe / is useful? * ""-- Unattached Assets --"" have no group or version but show blank. This is even weirder to me considering the criteria (stated above) says use it for the other fields.",0.5 +"NEXUS-8846","06/16/2015 15:28:55","Column sorting search does nothing?","Noticed that sorting by column does not appear to do anything now with infinate scroll implemented. If this is intentional, recommend disabling the column sorting on Search because it gives a false impression it will do something. I doubt this is intentional though, since it works with Browse UI. Infinate scroll was removed in Edgy so did not back check NX3 (where I believe this works). I did not check NX2 at this time. Debug was off for this test.",1 +"NEXUS-8847","06/16/2015 18:34:37","Browse repository filtering of components shows results from outside of repo","Filtering on component/asset list for a specific repository seems to show matching names/groups from other repositories. For example, if filter in the nuget hosted repo, I see results from the maven proxy. Version seems unaffected by this, so may be a fix there. Browse UI is new to Edgy so did not back check NX3. I did not check NX2 at this time. This occurs with debug on and off.",0.5 +"NEXUS-8848","06/16/2015 20:11:41","Error/non-action when searching while searching","[~krobinson] noted the attached; you receive an error with ?debug on if you are drilled down into search results and attempt a search again. With debug off, there is no error, however, the second search still does not work. He writes: ""Uncaught Ext.data.Store.getById(): getById called for ID that is not present in local cache"" Repro steps: ""search for something, drill down into it, then use the search in the top nav bar to look for something else"" Did not check older NX3 or NX2 at this time.",0.5 +"NEXUS-8849","06/16/2015 20:48:15","improve robustness to orientdb shutdown after stopping the store","The attached log shows a graceful shutdown on Windows and a message about a corrupt OrientDB because the database.ocf file was zero bytes. There's a potential flaw in the NPM shutdown logic where an exception while stopping the store means we don't go on and cleanly shutdown OrientDB: https://github.com/sonatype/nexus-oss/blob/nexus-2.11.x/plugins/npm/nexus-npm-repository-plugin/src/main/java/com/bolyuba/nexus/plugin/npm/service/internal/orient/OrientMetadataStoreLifecycle.java#L56 This doesn't explain why the state transition failed ( in the attached log ), but adding a try...finally block here should avoid leaving OrientDB in an odd state when it does happen. ",0.5 +"NEXUS-8850","06/16/2015 22:12:56","add uptime log message on shutdown","Bad things can sometimes happen during a Nexus shutdown process. Usually Nexus is restarted soon after. A support zip includes the Nexus intialization time/start time. However if something bad happens during shutdown, it is sometimes useful from examining log files to know how long Nexus had been running just before the shutdown. These messages are currently printed on shutdown start: {noformat} 2015-06-16 12:12:04 INFO [Thread-26 ] - org.apache.shiro.session.mgt.AbstractValidatingSessionManager - Finished session validation. No sessions were stopped. 2015-06-16 12:17:15 INFO [ner_stop_runner] - org.sonatype.nexus.bootstrap.jsw.JswLauncher - Stopping with code: 0 2015-06-16 12:17:15 INFO [ner_stop_runner] - org.sonatype.nexus.bootstrap.jetty.JettyServer - Stopping 2015-06-16 12:17:15 INFO [ner_stop_runner] - org.sonatype.nexus.bootstrap.jetty.JettyServer - Stopping: org.eclipse.jetty.server.Server@eee7417 2015-06-16 12:17:15 INFO [ner_stop_runner] - org.eclipse.jetty.server.Server - Graceful shutdown InstrumentedSelectChannelConnector@0.0.0.0:80 2015-06-16 12:17:15 INFO [ner_stop_runner] - org.eclipse.jetty.server.Server - Graceful shutdown o.e.j.w.WebAppContext{/nexus,file:/E:/nexus/nexus/},E:\nexus/nexus 2015-06-16 12:17:16 INFO [ner_stop_runner] - org.sonatype.nexus.webapp.WebappBootstrap - Destroying {noformat} This is a request that as early as possible ( perhaps as part of the rather generic ""Destroying"" message ), Nexus also print a log line on shutdown initialization which indicates the total 'uptime' Nexus had before being asked to shutdown. Something like: ""uptime 11 days 12 hours 13 seconds"". This way, we know what log files to look at for the last Nexus startup before shutdown. ",0.5 +"NEXUS-8852","06/16/2015 22:44:01","Anonymous admin errors when creating/verifying LDAP","While logged in as anonymous with admin role, I was creating an LDAP connection and noticed that when I tried to Verify Mapping or Create, I got the below error. It appears you have to be authenticated to do this, which to me infers the anonymous role should not be granted this capability at all (or this is wrong). I did not check older NX3 or NX2 at this time. {code} 2015-06-16 17:35:54,932-0400 ERROR [qtp1151413344-115] *UNKNOWN org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: ldap_LdapServer.verifyUserMapping, java-method: org.sonatype.nexus.ldap.internal.ui.LdapServerComponent.verifyUserMapping org.apache.shiro.authz.UnauthenticatedException: The current Subject is not authenticated. Access denied. at org.apache.shiro.authz.aop.AuthenticatedAnnotationHandler.assertAuthorized(AuthenticatedAnnotationHandler.java:53) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:84) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:67) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:201) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:121) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:130) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:92) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [org.eclipse.jetty.security:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.Server.handle(Server.java:497) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [org.eclipse.jetty.io:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [org.eclipse.jetty.util:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [org.eclipse.jetty.util:9.2.9.v20150224] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] Caused by: org.apache.shiro.authz.AuthorizationException: Not authorized to invoke method: public java.util.Collection org.sonatype.nexus.ldap.internal.ui.LdapServerComponent.verifyUserMapping(org.sonatype.nexus.ldap.internal.ui.LdapServerXO) at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:90) [na:na] ... 80 common frames omitted {code}",1 +"NEXUS-8855","06/17/2015 15:02:07","remote.storage.outbound logging reports protocol downgrade when there isn't one","Configure a Maven 2 snapshots proxy to http://repo.fusesource.com/nexus/content/repositories/snapshots/ Enable remote.storage.outbound logging in Nexus. Make any artifact request to this proxy. You will see log messages printed that a protocol downgrade occurred. This is not true. Protocol was always http. {noformat} 2015-06-09 02:50:57,098-0700 DEBUG [qtp2083653315-17650] anonymous remote.storage.outbound - Downgrade from HTTPS to HTTP during redirection /nexus/content/repositories/snapshots/org/example/3.0.35-SNAPSHOT/maven-metadata.xml -> http://repository.jboss.org/nexus/content/repositories/fs-snapshots/org/example/3.0.35-SNAPSHOT/maven-metadata.xml 2015-06-09 02:50:57,098-0700 DEBUG [qtp2083653315-17650] anonymous remote.storage.outbound - Following redirection /nexus/content/repositories/snapshots/org/example/3.0.35-SNAPSHOT/maven-metadata.xml -> http://repository.jboss.org/nexus/content/repositories/fs-snapshots/org/example/3.0.35-SNAPSHOT/maven-metadata.xml {noformat} Expected: - avoid this misleading logging message - include the absolute source URI if possible, not just the relative path - include the source repository id if possible - indicate status code causing the redirection 302 or 301",0.5 +"NEXUS-8856","06/17/2015 16:24:58","outbound ssl sockets do not timeout if the remote does not respond","Nexus versions 2.8.0 through to 2.11.3 are vulnerable to outbound SSL Socket Connections never timing out if the remote server HTTPS socket does not respond. h4. Cause - Nexus 2.8 introduced a dependency on an HTTP client version ( 4.3.x ) that had a SSL socket timeout bug: [HTTPCLIENT-1478|https://issues.apache.org/jira/browse/HTTPCLIENT-1478] - the fix for the HTTPCLIENT bug also requires a code change in the SSLConnectionFactory that Nexus uses, so upgrading to httpclient-4.3.6 is not enough to fix the issue. h4. Symptoms - the Nexus outbound HTTP connection pool for the host in question can become depleted - inbound requests to a proxy repository mapped to a https://remotehost can become blocked waiting for other socket bound threads to complete. This includes requests to group repositories that have the proxy repository as a member. - multiple thread dumps take over serveral minutes will show the same thread ids stuck on socket reads ( at java.net.SocketInputStream.socketRead0(Native Method) ) {noformat:title=Example Waiting Thread} qtp812882942-195540 id=195540 state=RUNNABLE (running in native) at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:152) at java.net.SocketInputStream.read(SocketInputStream.java:122) at sun.security.ssl.InputRecord.readFully(InputRecord.java:442) at sun.security.ssl.InputRecord.read(InputRecord.java:480) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) \- locked java.lang.Object@63017956 at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323) at org.sonatype.nexus.apachehttpclient.NexusSSLConnectionSocketFactory.connectSocket(NexusSSLConnectionSocketFactory.java:127) at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:125) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:319) at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363) at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219) {noformat} h4. Temporary Workaround If available, change the remote URL of the proxy repository to an http connection instead of an https connection. Restart nexus to clear any stuck sockets. ",0.5 +"NEXUS-8857","06/17/2015 16:50:28","Task shows ""Unknown running"" on STARTING","After running the Rebuild Maven Repository Metadata task, I refreshed to see the status and noticed it said ""Unknown running"". This appears to be the default return. Analysis from [~bradbeck] states the task may be STARTING and suggestion is to add a state for that. I feel like this may be a recent change but maybe just unlucky timing on my side. I did not check older NX3 (task (re)added in m4) or NX2 at this time. I waffled between Bug and Improvement; bug for now but made it trivial. Debug was off when I noticed this.",0.5 +"NEXUS-8859","06/17/2015 19:03:22","Capabilities: Changing state does not change related aspects of UI","In Capabilities when you change the state the following items do not immediately update which could lead to confusion. * The enable/disable buttons do not switch to reflect that one is no longer selectable and the other is * The state (in the summary tab) text remains as it was * If using the buttons, the ""enable this capability"" checkbox does not check/uncheck. If using the checkbox, it remains correct. If you leave the Capability and return, everything shows correct but then can get out of sync again upon next action. See attached vid with one example. If you need more, let me know. If this seems familiar, I believe [~simpligility] had mentioned this before but I could not repro so he said maybe fixed. If not regression, this may be intermittant but does not seem so to me right now. [~dsauble] also asked if there was already a ticket for this but I did not see one. This occurs with Debug on and off. No errors in nexus log or js console. I did not back check NX3 or NX2 at this time. Steps to reproduce: 1) Load fresh NX install 2) From System>Capabilities, Create Capability - ""Base URL: Force"" (for example, any one should do; one already created probably ill advised) 3) Click to edit. Note State on the Summary tab is ""Active"". 4) Click Settings tab. Note active button is ""Disable"" and checkbox is checked (signifying Enabled). 5) Click ""Disable"" button. BUG: Checkbox remains checked (signifying Enabled) and active button remains ""Disable"". If you click back to the Summary tab, you'll note the state is still active.",0.5 +"NEXUS-8876","06/17/2015 22:21:51","Nuget Passthrough Fails for Skip Tokens","To reproduce: 1. Create a nuget proxy that points to nuget.org, call it 'nuget-proxy' 2. Hit this URL: http://localhost:8081/nexus/service/local/nuget/nuget-proxy/Search()?$filter=IsLatestVersion&$orderby=DownloadCount%20desc,Id&$skip=0&$top=1000&searchTerm=''&targetFramework='net45'&includePrerelease=false 3. At the bottom of the XML reply, there's a skip link: After decoding from it being an XML attribute, and URL decoding, it will probably look like: http://localhost:8082/nexus/service/local/nuget/nuget-proxy/Search?searchterm=''&$filter=IsLatestVersion&$orderby=DownloadCount desc,Id&$top=960&$skiptoken=1871245,'Microsoft.AspNet.WebPages.WebData','Microsoft.AspNet.WebPages.WebData','3.2.3' 4. Visit that URL in a browser. 5. Nexus will, in turn, try to get appropriate content from Nuget.org - unfortunately, the Nexus-specific $skiptoken makes no sense to Nuget, which returns a 400 error, with a big exception in the Nexus console. FTR this is only visible to administrators, since the client is shielded from Nexus<->upstream errors; Nexus returns page 2 to the client just fine.",2 +"NEXUS-8878","06/18/2015 17:10:56","Change default nuget proxy remote storage URL to https","While testing NEXUS-8454, I noticed that the default nuget proxy remote storage URL was http://www.nuget.org/api/v2/. I was able to add the s (https://www.nuget.org/api/v2/) and test without issue. Maven's (Central) defaults to secure. I asked [~mprescott] and he said it was worth filing to add here too. Imagine this is a superquick change (probably could do it myself) however I wanted to triage in case anyone had any concerns. So here's the ticket. This is not a concern in NX2 and affects m4. I believe the default (CMA) repos were added in m4 but did not check older NX3 than m4 at this time.",0.5 +"NEXUS-8883","06/18/2015 22:04:31","Sorting search results by Repository errors","Testing NEXUS-8846, I noticed that sorting by repository errors. See attached (screen and dev console) and below (nexus log). No errors in JS console w/ debug on or off. I'm 99% sure this was not erroring before NEXUS-8846 but I did not back check at this time. I also did not check NX2. I decided to file seperately since sort does work and since [~alin] is on vacation in case someone else wants to take on this effort. Making priority minor as this is only important on base search and custom search. {quote} 2015-06-18 16:55:02,796-0400 ERROR [qtp2087290632-190] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Search.read, java-method: org.sonatype.nexus.coreui.SearchComponent.read org.elasticsearch.action.search.SearchPhaseExecutionException: Failed to execute phase [query], all shards failed; shardFailures {[S6eRMgmOTAulJtVqtJMthw][maven-central][0]: SearchParseException[[maven-central][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[maven-central][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][maven-releases][0]: SearchParseException[[maven-releases][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[maven-releases][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][maven-snapshots][0]: SearchParseException[[maven-snapshots][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[maven-snapshots][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][nuget-group][0]: SearchParseException[[nuget-group][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[nuget-group][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][nuget-hosted][0]: SearchParseException[[nuget-hosted][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[nuget-hosted][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][nuget.org-proxy][0]: SearchParseException[[nuget.org-proxy][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[nuget.org-proxy][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][sonatype-grid.release][0]: SearchParseException[[sonatype-grid.release][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[sonatype-grid.release][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][sonatype-grid.snapshot][0]: SearchParseException[[sonatype-grid.snapshot][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[sonatype-grid.snapshot][0]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][maven-central][1]: SearchParseException[[maven-central][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[maven-central][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][maven-releases][1]: SearchParseException[[maven-releases][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[maven-releases][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][maven-snapshots][1]: SearchParseException[[maven-snapshots][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[maven-snapshots][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][nuget-group][1]: SearchParseException[[nuget-group][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[nuget-group][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][nuget-hosted][1]: SearchParseException[[nuget-hosted][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[nuget-hosted][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][nuget.org-proxy][1]: SearchParseException[[nuget.org-proxy][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[nuget.org-proxy][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][sonatype-grid.release][1]: SearchParseException[[sonatype-grid.release][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[sonatype-grid.release][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][sonatype-grid.snapshot][1]: SearchParseException[[sonatype-grid.snapshot][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[sonatype-grid.snapshot][1]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][maven-central][2]: SearchParseException[[maven-central][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[maven-central][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][maven-releases][2]: SearchParseException[[maven-releases][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[maven-releases][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][maven-snapshots][2]: SearchParseException[[maven-snapshots][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[maven-snapshots][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][nuget-group][2]: SearchParseException[[nuget-group][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[nuget-group][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][nuget-hosted][2]: SearchParseException[[nuget-hosted][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[nuget-hosted][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][nuget.org-proxy][2]: SearchParseException[[nuget.org-proxy][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[nuget.org-proxy][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][sonatype-grid.release][2]: SearchParseException[[sonatype-grid.release][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[sonatype-grid.release][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][sonatype-grid.snapshot][2]: SearchParseException[[sonatype-grid.snapshot][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[sonatype-grid.snapshot][2]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][maven-central][3]: SearchParseException[[maven-central][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[maven-central][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][maven-releases][3]: SearchParseException[[maven-releases][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[maven-releases][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][maven-snapshots][3]: SearchParseException[[maven-snapshots][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[maven-snapshots][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][nuget-group][3]: SearchParseException[[nuget-group][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[nuget-group][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][nuget-hosted][3]: SearchParseException[[nuget-hosted][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[nuget-hosted][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][nuget.org-proxy][3]: SearchParseException[[nuget.org-proxy][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[nuget.org-proxy][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][sonatype-grid.release][3]: SearchParseException[[sonatype-grid.release][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[sonatype-grid.release][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][sonatype-grid.snapshot][3]: SearchParseException[[sonatype-grid.snapshot][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[sonatype-grid.snapshot][3]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][maven-central][4]: SearchParseException[[maven-central][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[maven-central][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][maven-releases][4]: SearchParseException[[maven-releases][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[maven-releases][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][maven-snapshots][4]: SearchParseException[[maven-snapshots][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[maven-snapshots][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][nuget-group][4]: SearchParseException[[nuget-group][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[nuget-group][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][nuget-hosted][4]: SearchParseException[[nuget-hosted][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[nuget-hosted][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][nuget.org-proxy][4]: SearchParseException[[nuget.org-proxy][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[nuget.org-proxy][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][sonatype-grid.release][4]: SearchParseException[[sonatype-grid.release][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[sonatype-grid.release][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; }{[S6eRMgmOTAulJtVqtJMthw][sonatype-grid.snapshot][4]: SearchParseException[[sonatype-grid.snapshot][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [Failed to parse source [{""from"":0,""size"":50,""query"":{""filtered"":{""filter"":{""bool"":{""must"":{""term"":{""format"":""maven2""}}}}}},""sort"":[{""repositoryName"":{""order"":""asc""}}]}]]]; nested: SearchParseException[[sonatype-grid.snapshot][4]: query[ConstantScore(BooleanFilter(+cache(format:maven2)))],from[0],size[50]: Parse Failure [No mapping found for [repositoryName] in order to sort on]]; } at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.onFirstPhaseResult(TransportSearchTypeAction.java:238) [na:na] at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction$1.onFailure(TransportSearchTypeAction.java:184) [na:na] at org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:565) [na:na] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_40] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_40] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {quote}",0.5 +"NEXUS-8884","06/18/2015 22:47:23","Most search fields have no partial matching ability","There are two issues with search fields that make them hard to use. # Most fields don’t partial match (e.g. searching for “aether” in the group field will not match “org.eclipse.aether”) # Fields that do wildcard only match tokens (e.g. searching for “aether” in the keyword field will match “aether-api”, but “aeth” will not match “aether-api”) Acceptance criteria: * All fields will behave the same as the keyword field ("""", *, booleans, etc are all added explicitly if the user wants them) *Technical Notes* * This approach may require a reindex. We should either do this automatically on upgrade, or provide a way for folks to reindex if they want the new functionality (the caveat is that this could cause support issues, since support will need to figure out if poor quality search results are stemming from the fact that people haven't reindexed yet). * Many of the fields that users can search are marked as (string, not_analyzed) which means that to do partial matching we need to use a wildcard query. * Another approach would be to do a re-index and use an ngram analyzer to get partial matching, but the first approach is simpler (if slower). The query would look something like this (not valid ES, just pseudo-code to show the structure): {code:java} { ""bool"": { ""filter"": { ""term"": { ""field"": ""format"", ""value"": ""maven2"" } }, ""must"": [{ ""bool"": { ""should"": { ""term"": { ""field"": ""somefield"", ""value"": ""somevalue"" }, ""wildcard"": { ""field"": ""somefield"", ""value"": ""*somevalue*"" } } }, { ... }] } }{code} We should also probably switch to a pure term filter if the user quotes the string so they have a way to escape partial matching.",5 +"NEXUS-8889","06/19/2015 23:22:12","Raw group repo throws exception trying to browse","Attempting to browse a Raw group repo throws this error: {code} 2015-06-19 11:08:29,241-0700 ERROR [qtp247020946-233] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Component.read, java-method: org.sonatype.nexus.coreui.ComponentComponent.read org.sonatype.nexus.repository.MissingFacetException: No facet of type StorageFacet attached to repository raw-group at org.sonatype.nexus.repository.manager.RepositoryImpl.facet(RepositoryImpl.java:322) [na:na] at org.sonatype.nexus.repository.Repository$facet$0.call(Unknown Source) [na:na] at org.sonatype.nexus.coreui.ComponentComponent.read(ComponentComponent.groovy:99) [na:na] at sun.reflect.GeneratedMethodAccessor297.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_45] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_45] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:201) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:121) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] {code}",0.5 +"NEXUS-8890","06/22/2015 19:19:57","Task state says ""Starting"" even when task is complete and refreshed","While testing NEXUS-8857, I noticed that after you had run a task and even after you clicked refresh (in the header), the task state said ""Starting"". I have seen this before (maybe talked to someone about it) but the test made me see it again. I did not see a ticket so am filing one to get this cleaned up. I do not believe it was caused by NEXUS-8857 fix however am linking for completion. [~bradbeck] noted he preferred another ticket as well. You can workaround this by leaving the page and returning (like click to HTTP and then back to Tasks) or by refreshing the browser (or more drastic ways=)). Steps to repro: 1) Create a task (which doesn't seem to matter) 2) Run said task 3) BUG: On the Summary page ""Status"" says ""Starting"". If you follow the Breadcrumb back to the ""Tasks"" page the ""Status"" of task says ""Starting"". If you click refresh (in the header) from either scenario, a note says ""Refreshed"" but the tasks say starting.",0.5 +"NEXUS-8894","06/24/2015 16:28:53","If CLM server is configured, but CLM server isn't running, capabilities UI will not render","Configure a CLM server under ""administration/clm"". Then shut down the CLM server. Now go to ""administration/capabilities"". This will fail with a UI timeout. This is particularly bad because there is no way to clear out the CLM server settings under ""administration/clm"", the UI won't let you. To fix this, you need to temporarily increase your UI timeout to be > 90 seconds, then go to the CLM capability (when it finally loads) and disable it.",0.5 +"NEXUS-8895","06/24/2015 17:18:41","Exception when clicking into Unattached asset details","While testing the Browse UI (NEXUS-8888 and various other tickets), I clicked into Unattached Assets and into details and got the attached errors (and it does not show more details). While NEXUS-8255 is not complete, I mentioned to [~krobinson] and he asked me to file seperately. This is that ticket. There is nothing in the nexus.log for this error (at default levels). This is a recent error, likely caused by initial NEXUS-8255 efforts, however, there were limited details shown before NEXUS-8255 efforts. Just stating this because I know this error does not occur in m4. This also does not occur in NX2.",0.5 +"NEXUS-8911","06/26/2015 20:24:31","releasing a yum enabled staging repository overwrites yum metadata in release repository","When a yum enabled staging repository is released it's yum metadata is copied into the target release repository. This is incorrect, it means that the only rpm's available through the release repository are the ones that were in staging until the ""createrepo"" command finishes running. The contents of the repodata directory should not be copied from the staging repository to the target release repository. Note that this also occurs with build promotion repositories. ",0.5 +"NEXUS-8913","06/29/2015 16:41:21","add elapsed request time to request.log","Our request logs log by default using the 'common' pattern: {{%h %l %u [%t] ""%r"" %s %b}} The {{%t}} field prints the response time instant. Example: 127.0.0.1 - - [29/Jun/2015:12:32:15 -0300] ""GET /nexus/service/local/lvo/nexus-pro/2.11.4-SNAPSHOT?_dc=1435591934977 HTTP/1.1"" 404 657 When correlating when the request is first received ( useful when coordinating requests with builds or other external scheduled jobs, it would be helpful to determine the elapsed time of the request from the request logs. This can be accomplished by using this pattern in logback-access.xml: {{%h %l %u [%t] ""%r"" %s %b %elapsedTime}} We should adjust the default request log pattern to include elapsed time. ",0.5 +"NEXUS-8914","06/29/2015 17:10:04","NX3 proxy fetches more than should","It seems we have a bug in ProxyFacetSupport: indicate verified is invoked only after remote responds with 304, but it never happens with servers not supporting conditional GETs. Also, on servers supporting conditional GETs, it will be (potentially close) GET request that will mark the cache content as ""verified"", not honoring ""maxItemAge"" to perform re-check. Problems in short: 1. - _refetches always_ if remote does not support conditional GET (as no 304 arrives) 2. - fetches _two times_ if remote does support conditional GET (as 304 will arrive on 2nd fetch, that is made conditional from cached content) 3. - fetches on every ""stale"" detected content if the format does not support lastModified and/or ETag. In this case _unconditional GET_ is issued, and remote item is refetched _over and over again, even if the locally cached one is same_. Fix for first two should be trivial in ProxyFacetSupport, just indicate verified on initial fetch too (200). For 3rd issue, proper Content support is needed.",1 +"NEXUS-8920","06/30/2015 18:28:55","archived request.log name format should be more easily recognized as a log file","Current Nexus request log archive name format is: {{request.log.%d{yyyy-MM-dd}.gz}} {noformat:title=Example archive names} request.log.2015-01-01.gz request.log.2015-01-02.gz request.log.2015-01-03.gz {noformat} When this is unpacked you end up with names like: {noformat:title=Example unpacked archive names} request.log.2015-01-01 request.log.2015-01-02 request.log.2015-01-03 {noformat} It is more convenient for names to end with .log so that they can be more easily recognized as log files by tools and shell. The default archive name could be changed to {{request-%d{yyyy-MM-dd}.log.gz}} which would result in names like this when unpacked: {noformat:title=Example new format unpacked archive names} request-2015-01-01.log request-2015-01-02.log request-2015-01-03.log {noformat} ",0.5 +"NEXUS-8922","06/30/2015 19:06:57","Seeing undefined: in NX.Permissions usage","... almost certainly a bug somewhere in how permissions are being used in the UI.",1 +"NEXUS-8924","07/01/2015 00:07:44","Proxy repo remote storage validation overly restrictive","Create a maven2 proxy repo, the allowed values for the remote storage location seem overly restrictive. Allowed: http://localhost:8082/nexus/content/groups/public/ Not allowed (but should be allowed, no?) http://strident:8082/nexus/content/groups/public/ Allowed: http://strident.com:8082/nexus/content/groups/public/",0.5 +"NEXUS-8927","07/01/2015 15:40:48","Messages slow to fully appear sometimes","I noticed that saving a repository has a slower save message appearing than other pages (see vid). Notibly it seems to pause about 1/2 through it's travel to appear and then hang for a brief period of time. This does not occur on other pages, so I feel something weird with repository. I tried creating a raw hosted and the same issue occurs so is not just Central (shown in vid). It was a little better tho, so either proxies may be slower or Central may be slower. I was waffling whether to file or not but am concerned something else might be going on that might cause this behavior (though nothing obvious on screen). I asked [~dsauble] who recommended I go ahead as we need to resolve performance related problems. This does occur in m4 in OSS, so is not caused by the link, as far as I can tell (was initially testing in Edgy PRO bundle). I did not check NX2 at this time. This occurs with debug on and off. Nothing notable in Console or log at default levels.",0.5 +"NEXUS-8929","07/01/2015 21:54:28","Browse UI requires repository-admin privileges","In order to use the Browse UI, you need repository-admin read privileges (like below example). This is contradictory to search which you just need repository-view-* privileges (you need these for Browse UI as well). I am pretty confident this is a bug, because anonymous by default cannot use Browse UI (because of this). By default, anonymous shows it has no permission to see any repositories in Browse UI. Bringing up at least for triage; in case not a bug, don't think intuitive so I think worth documenting. Browse UI is new to Edgy so does not affect older NX3. I did not check NX2 at this time. Example: {code} repository-admin-*-*-read {code}",0.5 +"NEXUS-8930","07/02/2015 11:24:26","outbound http connections may be immediately closed on 304 response with ETAG instead of pooled","This affects latest NX2 it seems. NX2 claims it will keep alive the connection (default with HTTP/1.1) and even ensures it with a header if client is HTTP/1.0 (as with that protocol level extra header {{Connection: keep-alive}} is needed), but then immediately drops connection on response is sent. This leaves no chance for connection pooling clients (like NX2/NX3, unlike Wagons) to properly handle connections, as connections returned to pool and believed to be alive will be actually immediately closed. OOTB Jetty 8 does not do this, this has to be something in NX2. Either fix the a) connection to remain alive if said so, or b) as simpler fix just add ""Connection: close"" header when client is HTTP/1.1 and prevent addition of (done by Jetty) ""Connection: keep-alive"" header when client is HTTP/1.0 Marked as affects 2.11.3, but it might affect other 2.x versions too.",1 +"NEXUS-8932","07/02/2015 13:25:48","NX3 conditional GET bugs","This issue gather multiple bugs present in NX3 related to conditional GET support: - Similarly to NX2 NEXUS-8930, NX3 sends too much headers violating the RFC - Response 304 to conditional GET via groups result in 404 final response ",1 +"NEXUS-8937","07/02/2015 21:02:36","LastModified time not updating","While testing NEXUS-8255, [~mcculls] noticed that in one of my tests, I had uploaded a SNAPSHOT pom and then uploaded it again to see if the fields were updating in the UI but that LastModified was not being updated either in the DB or in the UI. He writes: ""looking at the code in MavenFacetImpl it only updates the last-modified time if this is the first time the file was deployed, or the content attributes passed along with the payload contain a last-modified time. I couldn't spot anywhere that sets the last-modified time in the content attributes before they reached the put method, so this looks like a bug (or there's some code missing). This explains why you didn't see the last-modified time change when you deployed the file again. Also note that when you re-deploy a Maven artifact it will keep the same asset record, but update the blob field in that record to point to the new content."" Since this is a deeper issue than just asset details, I am filing seperately. I have not checked older NX3 at this time, nor have I checked NX2. I also haven't checked other repo types at this time either so only put the Maven component above.",0.5 +"NEXUS-8939","07/03/2015 16:13:36","Cannot create LDAP with specific settings","I just went to create LDAP and noticed that when configuring ""User and Group"", I could not save with Group Type being Dynamic or without mapping LDAP groups as roles. There was a validation firing that (if reading correctly) Group Member Format (a variable under Static Group configuration) was required. See attached and log snip below. I was able to change to Static Group configuration and create my LDAP. If you then go back and edit, you can make it dynamic group configuration or remove mapping LDAP groups as roles altogether, but you cannot remove the value from that field. If you do, it restores it to what you did before you saved. This occurs with ?Debug on and off. Editing post-creating is a pretty poor workaround and also 3 of our templates use dynamic groups so appear not to work with this as is, so leaving major. This worked in some builds of m4, so is at least semi-recent regression. I did not go back and check pre-Edgy so am not sure how recent. I also didn't check against NX2, tho this was working last time I attempted it, assuming NX3 specific. I don't believe this has anything to do with the linked issue, however, linking for thoroughness. {quote} 2015-07-03 10:57:50,101-0400 ERROR [qtp845392291-218] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: ldap_LdapServer.create, java-method: org.sonatype.nexus.ldap.internal.ui.LdapServerComponent.create com.orientechnologies.orient.core.exception.OValidationException: The field 'ldap_mapping.groupMemberFormat' cannot be null, record: ldap_mapping{emailAddressAttribute:mail,ldapGroupsAsRoles:false,groupBaseDn:null,groupIdAttribute:null,groupMemberAttribute:null,groupMemberFormat:null,groupObjectClass:null,userPasswordAttribute:,userIdAttribute:sAMAccountName,userObjectClass:user,ldapFilter:,userBaseDn:cn=users,userRealNameAttribute:cn,userSubtree:false,groupSubtree:false,userMemberOfAttribute:null} at com.orientechnologies.orient.core.record.impl.ODocument.validateField(ODocument.java:251) [na:na] at com.orientechnologies.orient.core.record.impl.ODocument.validate(ODocument.java:1932) [na:na] at com.orientechnologies.orient.core.record.impl.ODocument.validateEmbedded(ODocument.java:489) [na:na] at com.orientechnologies.orient.core.record.impl.ODocument.validateField(ODocument.java:302) [na:na] at com.orientechnologies.orient.core.record.impl.ODocument.validate(ODocument.java:1932) [na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:947) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:590) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:145) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2548) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2517) [na:na] at org.sonatype.nexus.ldap.internal.persist.orient.OrientDBLdapConfigurationSource.create(OrientDBLdapConfigurationSource.java:105) [na:na] at org.sonatype.nexus.ldap.internal.persist.DefaultLdapConfigurationManager.addLdapServerConfiguration(DefaultLdapConfigurationManager.java:133) [na:na] at org.sonatype.nexus.ldap.internal.persist.LdapConfigurationManager$addLdapServerConfiguration$0.call(Unknown Source) [na:na] at org.sonatype.nexus.ldap.internal.ui.LdapServerComponent.create(LdapServerComponent.groovy:121) [na:na] at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:201) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:121) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.3] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.3] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.3] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.3] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:130) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:92) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [org.eclipse.jetty.security:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [org.eclipse.jetty.servlet:9.2.9.v20150224] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.Server.handle(Server.java:497) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) [org.eclipse.jetty.server:9.2.9.v20150224] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [org.eclipse.jetty.io:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [org.eclipse.jetty.util:9.2.9.v20150224] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [org.eclipse.jetty.util:9.2.9.v20150224] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {quote}",0.5 +"NEXUS-8941","07/03/2015 19:14:05","Nuget packageId case sensitivity","Nuget presumes that packageId searches will be case insensitive, but our Orient/NuGet component metadata searches are case sensitive. Symptom: 1. Define a proxy repo for nuget.org 2. Request http://localhost:8081/repository/[repo]/NUGET.CORE/2.8.5 ..throws: Caused by: java.lang.IllegalStateException: Component metadata does not exist yet at com.google.common.base.Preconditions.checkState(Preconditions.java:173) [na:na] at com.sonatype.nexus.repository.nuget.internal.NugetGalleryFacetImpl$3.execute(NugetGalleryFacetImpl.java:273) [na:na] at org.sonatype.nexus.repository.storage.StorageFacetImpl.perform(StorageFacetImpl.java:249) [na:na] ... 92 common frames omitted What's happening is: 1. proxy facet looks for the component by the passed-in package id, 'NUGET.CORE'. 2. It find nothing. 3. NugetProxyFacet.fetch() obtains metadata for 'NUGET.CORE' '2.8.5' - nuget.org is case insensitive, and so returns the feed entry for NuGet.Core 2.8.5, which Nexus stores. 4. Nexus then requests content for NUGET.CORE 2.8.5 - nuget.org complies, but when Nexus tries to look up component metadata to attach the content to, it fails, because it's looking up NUGET.CORE.",1 +"NEXUS-8956","07/09/2015 18:38:56","Drilldown needs a clearer “back” affordance","People don’t trust the browser back button, so we need to provide a way to reset the drilldown that looks like it does what it says it does.",2 +"NEXUS-8957","07/09/2015 18:40:37","We need help text for everything","Here’s a list of places in the UI missing help text: + Strict content type validation (repository config) + Name (repository config, make it clear that we expect an ID, not a human-readable string.) -+ Raw repository (repository config/browse, need a better name and/or description)- Removed based on discussion on https://groups.google.com/a/sonatype.com/forum/?hl=en#!topic/sonatype-nexus-dev-group/2_GR2cC6jP0 + Query cache size/Nexus trust store (repository config, need better descriptions) + Not Found Cache enabled (repository config, the intent is clear but not what this does) (add here!)",1 +"NEXUS-8969","07/13/2015 22:32:20","Blobstore size calculations incorrect","Looks like the Blobstore is only reporting back the size of its metadata files and not the actual blob content size. The calculation is set to report on the parent directory of the db file, while the blobs themselves are stored in a sibling folder called 'content' ",0.5 +"NEXUS-8970","07/14/2015 16:05:36","org.sonatype.nexus.proxy.walker.WalkerException: Aborted walking on repository ID='npmjs' from path='/.nexus/trash/'.","Seeing same issue as Nexus-8248 but I am on 2.11.3 What is weird is I've been on 2.11.3 for over a week with NPM repository configured. This job runs daily and I've only received this error today, and any time I try manually running it today. {{Task ID: 2 Task Name: Empty the trash every morning Stack trace: org.sonatype.nexus.proxy.walker.WalkerException: Aborted walking on repository ID='npmjs' from path='/.nexus/trash/'. at org.sonatype.nexus.proxy.walker.DefaultWalker.reportWalkEnd(DefaultWalker.java:153) at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:118) at org.sonatype.nexus.proxy.wastebasket.DefaultWastebasket.purge(DefaultWastebasket.java:208) at org.sonatype.nexus.proxy.wastebasket.DefaultWastebasket.purgeAll(DefaultWastebasket.java:147) at org.sonatype.nexus.tasks.EmptyTrashTask.doRun(EmptyTrashTask.java:66) at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:163) at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) Caused by: org.sonatype.nexus.proxy.ItemNotFoundException: Request is marked as local-only, remote access not allowed from DefaultNpmProxyRepository(id=npmjs) at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem0(AbstractProxyRepository.java:1251) at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem(AbstractProxyRepository.java:1034) at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:760) at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:84) ... 15 more Caused by: org.sonatype.nexus.proxy.ItemNotFoundException: Request is marked as local-only, remote access not allowed from DefaultNpmProxyRepository(id=npmjs) at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.shouldTryRemote(AbstractProxyRepository.java:1050) at com.bolyuba.nexus.plugin.npm.proxy.DefaultNpmProxyRepository.shouldTryRemote(DefaultNpmProxyRepository.java:281) at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem0(AbstractProxyRepository.java:1068) ... 18 more }}",1 +"NEXUS-8971","07/14/2015 16:19:35","Maven2 group metadata handling bug","In short, the setup: group, that contains two members, one proxy and one hosted. The requested metadata is contained in a proxy (but is also deployed on same path in hosted repeatedly). This setup group should _never_ return 404, as the requested metadata does exists, even under load. Current code does not uses the fact that merged metadata content is _reusable_, and does an unneeded roundtrip to Storage that introduces concurrency issues with group cache. ",0.5 +"NEXUS-8972","07/14/2015 16:24:27","Modern testsuite's FormatClientSupport is not thread safe","This is a utility class used by all the ""modern"" ITs to derive format specific clients. While the fact it's single threaded did not bother so far, on implementing NEXUS-8839 Concurrency Hotspot ITs the problem popped out. Circumvention as done in Maven2Client is simple, but fixing the FormatClientSupport itself should be trivial too, we just need to decide what we want.",0.5 +"NEXUS-8974","07/14/2015 21:49:26","Yum updates to build promotion repositories are not propagated to their parent group repositories"," Create a yum enabled build promotion profile, and set it up so that it makes it's repositories appear in a yum enabled group repository. Promote a staging repository into the build promotion profile, then retrieve ""repodata/repomd.xml"" through the group repository. This works. Now promote a second staging repository into the build promotion repository, and retrieve the ""repodata/repomd.xml"" through the group repository again. The ""mergerepo"" command is not run, and the group repository still has the old yum metadata. I've verified this is still a problem in both 2.11.3 and 2.11.4. ",1 +"NEXUS-8985","07/16/2015 16:30:04","Error switching from second level detail to first level nav","Testing NEXUS-8848, I noticed that I changed from asset details to search another type (raw to maven) and got the attached error. On further exploration this error seems to fire anytime you switch from a second level detail (such as result from search or a repository from repositories) to another left nav item and does not seem search specific. Example: Select Repositories, select to edit an existing repository and select Blobstores. This error occurs with Debug on or off. Screens are with debug on. After the error occurs, you cannot see details any longer in the UI. You can navigate but no new data appears in the frame. Also expanding the dev console is largely unreadable (though since this occurs with debug off, I doubt this is related). Thus I am leaving this major. Refreshing the UI does fix this however. I did not check older versions of NX3 at this time. Since there are really no ""levels"" I recall in NX2, I doubt this affects NX2 but did not check at this time. Nothing in the nexus.log. Full JS: {quote} Uncaught TypeError: Cannot read property 'getElementsByTagName' of undefinedExt.define.onModelChanged @ VM2838 Drilldown.js?_dc=1437059614451:203Ext.define.selectModel @ VM2838 Drilldown.js?_dc=1437059614451:348Ext.define.navigateTo @ VM2838 Drilldown.js?_dc=1437059614451:323Ext.define.reselect @ VM2838 Drilldown.js?_dc=1437059614451:176componentListener.(anonymous function).resetdrilldown @ VM2838 Drilldown.js?_dc=1437059614451:101fire @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:10813Ext.define.dispatch @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:43613prototype.fireEventArgs @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:43707fireEvent @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:12200Ext.define.loadDrilldown @ VM2877 Drilldown.js?_dc=1437059614587:117fire @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:10813continueFireEvent @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:12236fireEventArgs @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:12214prototype.fireEventArgs @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:43704fireEvent @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:12200Ext.define.getRenderTree @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:30626Ext.define.render @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:30752Ext.define.renderItem @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:37990Ext.define.renderItems @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:37937Ext.define.renderChildren @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:38450Ext.define.invalidate @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:86323Ext.define.flushInvalidates @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:86161Ext.define.run @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:86604Ext.define.statics.flushLayouts @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:31606Ext.define.statics.resumeLayouts @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:31614Ext.resumeLayouts @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:34197Ext.define.add @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:40221Ext.define.onFeatureSelected @ VM2731 Content.js?_dc=1437059614272:117fire @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:10813Ext.define.dispatch @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:43613prototype.fireEventArgs @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:43707fireEvent @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:12200Ext.define.selectFeature @ VM2735 Menu.js?_dc=1437059614276:242Ext.define.onSelection @ VM2735 Menu.js?_dc=1437059614276:225fire @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:10813Ext.define.dispatch @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:43613prototype.fireEventArgs @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:43707createRelayer @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:12521fire @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:10813continueFireEvent @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:12236fireEventArgs @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:12214fireEvent @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:12200Ext.define.onSelectChange @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:136739Ext.define.doSingleSelect @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:100235Ext.define.doSelect @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:100079Ext.define.selectWithEvent @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:99796Ext.define.processSelection @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:136705Ext.define.onRowClick @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:136698fire @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:10813continueFireEvent @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:12236fireEventArgs @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:12214prototype.fireEventArgs @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:43704fireEvent @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:12200Ext.define.processUIEvent @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:102173Base.implement.callParent @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:4568Ext.define.processUIEvent @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:126587Ext.define.handleEvent @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:102096(anonymous function) @ VM3199:5Ext.apply.createListenerWrap.wrap @ VM2653 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1437059613505&debug=true:11583 {quote}",0.5 +"NEXUS-8987","07/16/2015 18:50:12","NuGet assets do not download with correct filename","Finishing asset detail page testing (NEXUS-8255), I noticed that NuGet assets were being listed and downloaded in the form of ""/SONATYPE.TEST/1.0"". If you rename the download to it's proper name (in this case original file was SONATYPE.TEST.1.0.nupkg) or even improper with a nupkg extension (tried test.nupkg) they work. So the data is there, I think maybe just malformed slightly somehow. However, as far as download goes, I imagine it'd be pretty annoying to NuGet users trying to get their assets this way. Left major because of this. Asset details are new to Edgy so does not affect older NX3. I did not check NX2 at this time, tho I suspect unaffected. Test performed with Debug off.",0.5 +"NEXUS-8989","07/16/2015 22:30:39","NuGet Component fetch from group repo does not respect repository ordering","The expectation is that if a component is present in more than one repository, the ordering of group members will determine which one is returned. Presently we just return the first matching record, regardless of the configuration, although the query executed is indeed different. Given a hosted repository to which I've published a component downloaded from a proxy, both of these queries return the same result regardless of the group membership configuration: {code} select from asset where (component.name = 'jQuery' AND component.version = '2.1.4') and (bucket.repository_name = 'nuget.org-proxy' or bucket.repository_name = 'nuget-hosted') GROUP BY name select from asset where (component.name = 'jQuery' AND component.version = '2.1.4') and (bucket.repository_name = 'nuget-hosted' or bucket.repository_name = 'nuget.org-proxy') GROUP BY name {code} Similarly, browsing a group repository will show the same component regardless of the group membership ordering. Test for this condition is presently @Ignore in NugetGroupIT, and should be re-enabled to confirm this when fixed.",2 +"NEXUS-8990","07/16/2015 23:33:04","Publishing to a hosted nuget repo affects the count of components in a proxy repo","I executed a count query against the default nuget.org-proxy repository, published a test package to nuget-hosted, and then re-executed the count query - and the count incremented. Reproduction: 1. Execute this query to see how many components are available in the nuget.org feed. {code} http://localhost:8081/repository/nuget.org-proxy/Search()/$count?$filter=IsLatestVersion&searchTerm=%27%27&targetFramework=%27net45%27&includePrerelease=false {code} 2. Publish SONATYPE.TEST.1.0.nupkg to the nuget-hosted repository. 3. Execute the count query again and note that it has incremented despite the activity happening on a different repo Test for this condition is presently commented out in NugetGroupIT(search for this ticket), and should be re-enabled to confirm this when fixed. ",1 +"NEXUS-9000","07/20/2015 23:07:14","NuGet group repository only shows content already cached in proxies","Might need discussion as to how we want this to behave, but presently queries to a NuGet group do not forward to proxies but only consult already cached data for proxies. This is definitely not the behaviour a client would expect when interacting with the group repo; the expectation is that queries to the group repo will do what is required to consult any member repositories and fulfill client requests transparently. ",0.5 +"NEXUS-9004","07/21/2015 22:19:11","Browse Repository scroll not infinite","Earlier today I built NX3 using NX3 and had the normal 3000+ assets in my system. I noticed while reviewing something unrelated that on Browse UI, I only saw As and Bs in my component list for my dev group and central repo. Similarly, in Browse UI for assets I only saw As and Bs. I checked internal repos and more stuff than As/Bs showed so the items are browsable. It appears that infinite scrolling is not infinite and it's stopping after 2.5-3 pages. See attached vid. I thought maybe this was NEXUS-8988 but the workaround given there (going to a working repo then back) does not fix this. Also, I don't believe this is an issue with inclusion and more an issue with not being able to see everything. Because this was working with NEXUS-8988, I believe this recent regression. The behavior persists even after a browser restart. It occurs with both Debug on and off. I see no errors in nexus log or js console (or dev console). Workaround would be to search, which is lame, but I gave minor priority since it is valid.",3 +"NEXUS-9005","07/22/2015 00:50:07","NuGet group repository does not respect latest version filters","When searching for components across members of a group repository, a component ID at 2 different versions (one in each member repository) both report that they are the latest version in the generated feed, which is logically impossible. Recreation: - publish SONATYPE.TEST.1.0.nupkg to a hosted repo - publish SONATYPE.TEST.1.1.nupkg to another hosted repo - search for SONATYPE.TEST on a group repo containing both of the above host repos - observe that both entries claim to be for the latest version of the component Test for this condition is presently commented out in NugetGroupIT(search for this ticket), and should be re-enabled to confirm this when fixed. *Acceptance Criteria:* XML feed should only contain one latest version of a given package *Note:* Browse functionality works as is and hasn't been touched  ",3 +"NEXUS-9007","07/22/2015 13:53:59","RepositoryCombobox#includeAnEntryForAllRepositories() fails on UI","Seems that tasks having descriptors using {{RepositoryCombobox#includeAnEntryForAllRepositories()}} causes UI errors, rendering UI unusable.",0.5 +"NEXUS-9008","07/22/2015 15:17:42","On discard, filter remains but filtered items restore","I noticed that when I filtered by an item (in this case realm list) and discarded (button at bottom), the filter remained but the list items restored. This is strange because it subsequently appears the filter is broken (not filtering). I believe it should clear the filter or not make any changes to the list. I don't feel strongly one fix or the other. I did not check older NX3 or NX2 at this time. Noticed this with Debug on.",2 +"NEXUS-9011","07/23/2015 22:13:14","NX3 logger creating is not actually creating loggers on server","When creating a logger in the UI, no remote communication is being done to inform the server that it has a new logger. Update seems to work, so the work-around now is to create a logger and then update it. We should understand why this broke, as this feature is critical to development.",2 +"NEXUS-9016","07/27/2015 15:11:39","Sort fails when you drill in, drill out, then attempt to sort a grid","Demo: http://take.ms/y5ZXa This bug only occurs in ?debug mode. This bug appears to be tied to infinite scrolling lists only, so only browse and search are affected. Looking at the trace, this may be a bug with the fix Sencha gave us to a grid issue we filed awhile back. https://support.sencha.com/index.php#ticket-22557 {code:javascript|title=console.trace()} log @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:8098Ext.Error.Ext.extend.statics.raise @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:7376Ext.define.getById @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:77817Ext.define.getStoreRecord @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:100374Ext.define.pruneIf @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:100352Ext.define.refresh @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:101164Base.implement.callParent @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:4568Ext.define.refresh @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:102304Base.implement.callParent @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:4568Ext.define.refresh @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:115245fire @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:10813continueFireEvent @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:12236fireEventArgs @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:12214prototype.fireEventArgs @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:43704fireEvent @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:12200Ext.define.onPageMapClear @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:77391fire @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:10813continueFireEvent @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:12236fireEventArgs @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:12214fireEvent @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:12200Ext.define.clear @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:23245Base.implement.callParent @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:4568Ext.define.clear @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:23566Base.implement.callParent @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:4568Ext.define.clear @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:75507Ext.define.sort @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:77583Ext.define.sort @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:121016Ext.define.toggleSortState @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:120996Ext.define.onTitleElClick @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:120968Ext.define.onHeaderCtEvent @ Ticket_22557_2.js?_dc=1438006269609:19(anonymous function) @ VM12728:6wrap @ baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1438006268659&debug=true:11583 {code}",2 +"NEXUS-9024","07/28/2015 20:03:11","Endpoint to retrieve asset and component models by ID","The asset and component lists in the UI are infinite. Because we can’t guarantee that a given model has been loaded into these stores, we need a way to retrieve them from the backend directly, by ID. This is needed when loading a bookmarked URL in the UI. If we can’t retrieve the model, we can’t show the corresponding view in the drilldown. I’ve stubbed this for now: https://github.com/sonatype/nexus-oss/commit/204f43634f470427053b9cdd0d138fbba85cdd07",2 +"NEXUS-9026","07/31/2015 16:23:07","orientdb may not fully recover from a restore process due to OCommandExecutionException: Class 'OUSER' was not found in current database","If Nexus is forcefully killed during the startup process, while the OrientDB ( used by NPM in Nexus 2.x ) is being loaded, the database will not be properly closed and will start recovery on next startup. The problem is, it is possible the automated recovery process may not fully recover the database. The recovery fails with {{OQueryParsingException: Error on parsing query at position #6: Error on parsing query Query: OUser where name = 'admin' limit 1}}. This subsequently leaves the NPM plugin features unusable. The only workaround appears to be renaming/deleting the db/npm directory and have Nexus recreate it from scratch. For example: {noformat} jvm 1 | 2015-07-28 22:06:37,951-0400 INFO [jetty-main-1] *SYSTEM com.orientechnologies - OrientDB auto-config DISKCACHE=13,617MB (heap=683MB os=16,348MB disk=295,254MB) < forcefully stop / kill -9 nexus process here > {noformat} On restart, Nexus tries to recover the db and it mostly succeeds but ultimately fails: {noformat} jvm 2 | 2015-07-28 22:07:06,446-0400 INFO [jetty-main-1] *SYSTEM com.orientechnologies - OrientDB auto-config DISKCACHE=13,617MB (heap=683MB os=16,348MB disk=294,856MB) jvm 2 | 2015-07-28 22:07:08,089-0400 WARN [jetty-main-1] *SYSTEM com.orientechnologies.orient.core.storage.impl.local.OSingleFileSegment - {db=npm} segment file 'database.ocf' was not closed correctly last time jvm 2 | 2015-07-28 22:07:08,174-0400 WARN [jetty-main-1] *SYSTEM com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=npm} Storage npm was not closed properly. Will try to restore from write ahead log. jvm 2 | 2015-07-28 22:07:08,174-0400 INFO [jetty-main-1] *SYSTEM com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=npm} Looking for last checkpoint... jvm 2 | 2015-07-28 22:07:08,371-0400 INFO [jetty-main-1] *SYSTEM com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=npm} FULL checkpoint found. jvm 2 | 2015-07-28 22:07:08,372-0400 INFO [jetty-main-1] *SYSTEM com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=npm} Data restore procedure from full checkpoint is started. Restore is performed from LSN OLogSequenceNumber{segment=0, position=5827} jvm 2 | 2015-07-28 22:07:08,376-0400 WARN [jetty-main-1] *SYSTEM com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=npm} Record com.orientechnologies.orient.core.storage.impl.local.paginated.wal.OCheckpointEndRecord{lsn=OLogSequenceNumber{segment=0, position=5839}} will be skipped during data restore. jvm 2 | 2015-07-28 22:07:08,378-0400 WARN [jetty-main-1] *SYSTEM com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=npm} Non tx operation was used during data modification we will need index rebuild. jvm 2 | 2015-07-28 22:07:08,400-0400 INFO [jetty-main-1] *SYSTEM com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=npm} Storage data restore was completed wrapper | Waiting to start... jvm 2 | 2015-07-28 22:07:08,934-0400 INFO [jetty-main-1] *SYSTEM com.orientechnologies.orient.core.index.OIndexManagerShared - {db=npm} Wait till indexes restore after crash was finished. jvm 2 | 2015-07-28 22:07:09,237-0400 INFO [OrientDB rebuild indexes] *SYSTEM com.orientechnologies.orient.core.index.OIndexManagerShared$RecreateIndexesTask - {db=npm} 0 indexes were restored successfully, 0 errors jvm 2 | 2015-07-28 22:07:09,238-0400 INFO [jetty-main-1] *SYSTEM com.orientechnologies.orient.core.index.OIndexManagerShared - {db=npm} Indexes restore after crash was finished. jvm 2 | 2015-07-28 22:07:09,297-0400 ERROR [jetty-main-1] *SYSTEM com.bolyuba.nexus.plugin.npm.service.internal.orient.OrientMetadataStore - Life-cycle operation failed jvm 2 | com.orientechnologies.orient.core.exception.OQueryParsingException: Error on parsing query at position #6: Error on parsing query jvm 2 | Query: OUser where name = 'admin' limit 1 jvm 2 | -----------^ jvm 2 | at com.orientechnologies.orient.core.sql.filter.OSQLTarget.(OSQLTarget.java:76) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at com.orientechnologies.orient.core.sql.OSQLEngine.parseTarget(OSQLEngine.java:440) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.parse(OCommandExecutorSQLSelect.java:200) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.parse(OCommandExecutorSQLSelect.java:78) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.parse(OCommandExecutorSQLDelegate.java:56) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.parse(OCommandExecutorSQLDelegate.java:37) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:1181) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at com.orientechnologies.orient.core.sql.query.OSQLQuery.run(OSQLQuery.java:71) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at com.orientechnologies.orient.core.sql.query.OSQLSynchQuery.run(OSQLSynchQuery.java:85) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at com.orientechnologies.orient.core.query.OQueryAbstract.execute(OQueryAbstract.java:33) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at com.orientechnologies.orient.core.metadata.security.OSecurityShared.getUser(OSecurityShared.java:493) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at com.orientechnologies.orient.core.metadata.security.OSecurityShared.getUser(OSecurityShared.java:215) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at com.orientechnologies.orient.core.metadata.security.OSecurityShared.authenticate(OSecurityShared.java:169) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at com.orientechnologies.orient.core.metadata.security.OSecurityProxy.authenticate(OSecurityProxy.java:87) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.open(ODatabaseDocumentTx.java:260) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at com.bolyuba.nexus.plugin.npm.service.internal.orient.OrientMetadataStore.doStart(OrientMetadataStore.java:107) ~[nexus-npm-repository-plugin-2.11.4-01/:na] jvm 2 | at org.sonatype.sisu.goodies.lifecycle.LifecycleSupport$Handler.doStart(LifecycleSupport.java:70) ~[goodies-lifecycle-1.9.jar:1.9] jvm 2 | at org.sonatype.sisu.goodies.lifecycle.LifecycleHandlerContext$MainMap_Starting.started(LifecycleHandlerContext.java:255) ~[goodies-lifecycle-1.9.jar:1.9] jvm 2 | at org.sonatype.sisu.goodies.lifecycle.LifecycleHandlerContext.started(LifecycleHandlerContext.java:57) ~[goodies-lifecycle-1.9.jar:1.9] jvm 2 | at org.sonatype.sisu.goodies.lifecycle.LifecycleSupport.start(LifecycleSupport.java:129) ~[goodies-lifecycle-1.9.jar:1.9] jvm 2 | at com.bolyuba.nexus.plugin.npm.service.internal.orient.OrientMetadataStoreLifecycle.on(OrientMetadataStoreLifecycle.java:51) [nexus-npm-repository-plugin-2.11.4-01/:na] .... jvm 2 | Caused by: com.orientechnologies.orient.core.exception.OQueryParsingException: Error on parsing query at position #6: Error on parsing query jvm 2 | Query: OUser where name = 'admin' limit 1 jvm 2 | -----------^ jvm 2 | at com.orientechnologies.orient.core.sql.filter.OSQLTarget.(OSQLTarget.java:76) ~[na:na] jvm 2 | at com.orientechnologies.orient.core.sql.OSQLEngine.parseTarget(OSQLEngine.java:440) ~[na:na] jvm 2 | at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.parse(OCommandExecutorSQLSelect.java:200) ~[na:na] jvm 2 | at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.parse(OCommandExecutorSQLSelect.java:78) ~[na:na] jvm 2 | at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.parse(OCommandExecutorSQLDelegate.java:56) ~[na:na] jvm 2 | at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.parse(OCommandExecutorSQLDelegate.java:37) ~[na:na] jvm 2 | at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:1181) ~[na:na] jvm 2 | at com.orientechnologies.orient.core.sql.query.OSQLQuery.run(OSQLQuery.java:71) ~[na:na] jvm 2 | at com.orientechnologies.orient.core.sql.query.OSQLSynchQuery.run(OSQLSynchQuery.java:85) ~[na:na] jvm 2 | at com.orientechnologies.orient.core.query.OQueryAbstract.execute(OQueryAbstract.java:33) ~[na:na] jvm 2 | at com.orientechnologies.orient.core.metadata.security.OSecurityShared.getUser(OSecurityShared.java:493) ~[na:na] jvm 2 | at com.orientechnologies.orient.core.metadata.security.OSecurityShared.getUser(OSecurityShared.java:215) ~[na:na] jvm 2 | at com.orientechnologies.orient.core.metadata.security.OSecurityShared.authenticate(OSecurityShared.java:169) ~[na:na] jvm 2 | at com.orientechnologies.orient.core.metadata.security.OSecurityProxy.authenticate(OSecurityProxy.java:87) ~[na:na] jvm 2 | at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.open(ODatabaseDocumentTx.java:260) ~[na:na] jvm 2 | at com.bolyuba.nexus.plugin.npm.service.internal.orient.OrientMetadataStore.doStart(OrientMetadataStore.java:107) ~[na:na] jvm 2 | at org.sonatype.sisu.goodies.lifecycle.LifecycleSupport$Handler.doStart(LifecycleSupport.java:70) ~[goodies-lifecycle-1.9.jar:1.9] jvm 2 | at org.sonatype.sisu.goodies.lifecycle.LifecycleHandlerContext$MainMap_Starting.started(LifecycleHandlerContext.java:255) ~[goodies-lifecycle-1.9.jar:1.9] jvm 2 | at org.sonatype.sisu.goodies.lifecycle.LifecycleHandlerContext.started(LifecycleHandlerContext.java:57) ~[goodies-lifecycle-1.9.jar:1.9] jvm 2 | at org.sonatype.sisu.goodies.lifecycle.LifecycleSupport.start(LifecycleSupport.java:129) ~[goodies-lifecycle-1.9.jar:1.9] jvm 2 | at com.bolyuba.nexus.plugin.npm.service.internal.orient.OrientMetadataStoreLifecycle.on(OrientMetadataStoreLifecycle.java:51) ~[na:na] jvm 2 | ... 54 common frames omitted jvm 2 | Caused by: com.orientechnologies.orient.core.exception.OCommandExecutionException: Class 'OUSER' was not found in current database jvm 2 | at com.orientechnologies.orient.core.sql.filter.OSQLTarget.extractTargets(OSQLTarget.java:262) ~[na:na] jvm 2 | at com.orientechnologies.orient.core.sql.filter.OSQLTarget.(OSQLTarget.java:67) ~[na:na] jvm 2 | ... 74 common frames omitted {noformat}",1 +"NEXUS-9031","08/03/2015 21:18:46","Errors after logging in from anonymous to some pages","While on a browse repository asset detail page anonymously, I logged in as admin and saw an error. I was able to get the same error logging into a component detail page. I also saw errors (though a different one) logging in to the file list (before details) as well as the component list (before file list on browse Components). Despite the error, everything appears fine to me. This also does not occur when you directly hit the URL so seems indirectly related to what I was testing. I decided to file one ticket as the behavior is identical, despite the differences in error; I suspect there will be two very similar fixes. If you'd like this broken out let me know. If this seems familiar, NEXUS-8728 is almost the exact same thing for search but no longer occurs in search. I did not check older NX3 or NX2 at this time. This occurs with debug on or off. Asset details error: {quote} Uncaught TypeError: Cannot read property 'getView' of undefined VM258 nexus-rapture-plugin-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.define.onModelChanged @ VM258 nexus-rapture-plugin-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 (anonymous function) @ VM262 nexus-coreui-plugin-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.apply.callback @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.cmd.derive.onProxyLoad @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.cmd.derive.processResponse @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 (anonymous function) @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 (anonymous function) @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.cmd.derive.runCallback @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.cmd.derive.onData @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.apply.callback @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.cmd.derive.onComplete @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.cmd.derive.onStateChange @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 (anonymous function) @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 {quote} File list and component list error: {quote} Uncaught TypeError: Cannot read property 'getStore' of undefined 2VM258 nexus-rapture-plugin-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.define.selectModel @ VM258 nexus-rapture-plugin-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 (anonymous function) @ VM258 nexus-rapture-plugin-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 fire @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 continueFireEvent @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 fireEventArgs @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 a.fireEventArgs @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 fireEvent @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.cmd.derive.onProxyLoad @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.cmd.derive.processResponse @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 (anonymous function) @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 (anonymous function) @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.cmd.derive.runCallback @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.cmd.derive.onData @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.apply.callback @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.cmd.derive.onComplete @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 Ext.cmd.derive.onStateChange @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 (anonymous function) @ VM246 baseapp-prod.js?_v=3.0.0-SNAPSHOT&_dc=1438631658809:1 {quote}",0.5 +"NEXUS-9046","08/05/2015 22:28:32","remove codehaus snapshots from default configuration","The codehaus snapshots repo is gone, we should remove it from our default configuration.",0.5 +"NEXUS-9087","08/17/2015 16:39:15","Logging in from anonymous searching has weird redraw","While testing NEXUS-9031, I tangentially checked from a custom search logged in anonymously, logging in to make sure all areas were covered (search is the last area currently outside of component and asset browse you can access not being logged in). When I did this, I noticed a weird redraw (see attached). This occurs no matter what custom search level you are on (overall type search, inside a component, inside an asset). It occurs with debug on and off. I further noticed that if you open the developer console or the javascript console, the page corrects itself. Refreshing also corrects the page. I have not checked against NX2 at this time.",5 +"NEXUS-9088","08/17/2015 19:15:07","Unselecting form checkboxes causes discard and save state to mess up","I noticed that when I went to put a repository offline, right after I went to navigate away, I got a discard changes prompt. On repro attempt, I noticed when I unselected any checkboxes on the form, the save buttons remain enabled and the discard prompts fire. If you discard however, you will return to a screen where everything is saved NOT discarded. This is pretty confusing. See attached movie, let me know if unclear. It's even more confusing that it does not appear to affect the opposite way (selecting checkboxes) or using other field types (that I saw/tried). While I originally saw this on repository, I was able to reproduce using Capabilities, so it's not repository specific. I did not check older NX3 or NX2 at this time. Test done with debug off.",1 +"NEXUS-9089","08/17/2015 20:39:15","Be more opinionated about Docker HTTP and HTTPS config options","Docker repositories may be accessed in four basic configurations: * Using the default URL we provide (doesn’t support push/pull with Docker) * Using the default URL _or_ HTTP (when NX is behind a secure proxy) * Using the default URL _or_ HTTPS (intended for a proxy-less scenario) * Using the default URL _or_ HTTP _or_ HTTPS We need to make these options more explicit in the UI. There are a few things we could do to make the UI clearer: * List every URL that a user can use to interact with a repository (not just the default URL) * Briefly describe how we expect each kind of URL to be used (supplemented by online docs) * Put the HTTP and HTTPS fields in an optional fieldset, to make it clear that you don’t need one to retrieve images from Nexus (in fact, the only reason you need HTTP or HTTPS is if you want to push/pull images to Nexus using the Docker CLI) * HTTPS is the preferred way of interacting with Nexus using the Docker CLI. Consider saying this in the help text, or selecting it by default (once the optional fieldset has been checked).",2 +"NEXUS-9090","08/17/2015 21:35:07","IE(11): Errors & non-functional pages after minimal site use","In IE11, when I go to create a repository, on select a repository type, I am getting the attached errors. I had limited success bypassing this with debug on however it does occur with debug on as well. I have had 100% success rate reproducing this without debug on. I have not seen this in Chrome either Windows or MacOSX, so assume this is IE related. From JS console: ""SCRIPT5007: Unable to get property 'removeAll' of undefined or null reference File: Drilldown.js, Line: 624, Column: 11"" I did not check older NX3 or NX2 at this time. I am fairly sure I've been able to create repos in NX3 (and NX2) at some point in IE however. Leaving major because of this. Workaround is obviously use another browser.",0.5 +"NEXUS-9093","08/18/2015 21:09:28","Docker repo admin form always treated as 'dirty'","If you've navigated to a Docker repo admin screen it is automatically treated as dirty even though no changes are made. This is annoying as you can't view the config and navigate away without a modal warning that changes will be lost. ",0.5 +"NEXUS-9094","08/18/2015 21:45:24","Adding certificate to trust store does not close modal","[~alin] noted earlier today that he had noticed that when adding a certificate to a proxy repository (via repository administration), that the modal to add the certificate did not close. He and [~dsauble] do not believe this is intentional so I am filing a ticket. I did not go back and check older NX3 (or NX2) at this time however the current behavior is not familiar. My repro test was done with debug off however I doubt that matters. Let any of us know if unclear.",0.5 +"NEXUS-9095","08/18/2015 21:52:07","Removing certificate from trust store errors","I tried to remove a certificate from the trust store via the repository admin and got the attached error. I am 95% sure this worked at some point but did not check older NX3 (or NX2) at this time. This occurs with debug on and off. Screen/snip are with debug on. Removing the certificate via SSL _does_ work so that's the workaround. JS Console: {quote} Uncaught TypeError: model.get is not a function VM433 SslCertificates.js?_dc=1439930849262:134 Ext.define.getDescription @ VM433 SslCertificates.js?_dc=1439930849262:134 Ext.define.deleteModel @ VM433 SslCertificates.js?_dc=1439930849262:298 fire @ VM312 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1439930848524&debug=true:10813 Ext.define.dispatch @ VM312 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1439930848524&debug=true:43613 prototype.fireEventArgs @ VM312 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1439930848524&debug=true:43707 fireEvent @ VM312 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1439930848524&debug=true:12200 Ext.define.fireHandler @ VM312 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1439930848524&debug=true:50078 Ext.define.onClick @ VM312 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1439930848524&debug=true:50064 (anonymous function) @ VM839:6 Ext.apply.createListenerWrap.wrap @ VM312 baseapp-debug.js?_v=3.0.0-SNAPSHOT&_dc=1439930848524&debug=true:11583 {quote}",1 +"NEXUS-9097","08/19/2015 14:25:13","Realm dropdown initially disabled on Anonymous page","[~jdillon] noticed that on the Security>Anonymous page the Realm list dropdown initially shows no items in it unless you go to the Security>Realms page first. This can be reproed both by logging in directly to http://localhost:8081/#admin/security/anonymous or by logging in normally and navigating to Security>Anonymous before going to Security>Realms. Then click on the realm dropdown. See vid. Both of us recall seeing this or something akin before but could not find a related ticket. I suspect this affects older versions of NX3 because of this but did not back check at this time. This does not affect NX2 because the setup is different. Testing done with debug off.",1 +"NEXUS-9101","08/20/2015 18:35:07","Apply Codahale metrics to Facets","There's a limitation in codahale's guice integration that restricts the use of @Timed (and related) annotations to plain components. It won't instrument assisted-inject factories. As a result, we can't use Codahale annotations for facet methods, which is big limitation given NX3's repository architecture.",1 +"NEXUS-9109","08/23/2015 14:57:03","Initial navigation to browse assets/components does not load list","When navigating to browse repository assets/components the first time, the list of assets/components is not loaded. The list is loaded on subsequent navigations and when using a bookmark URL. This problem does not exhibit when using {{?debug}} in the URL or when using the browser's debug/developer mode.",0.5 +"NEXUS-9114","08/25/2015 16:36:26","Support Zip page prompts for discard","I noticed when I created a Support Zip (via Admin>Support) that when I removed some of the check boxes (I left ""System information report"" as well as the two Options) then closed the browser or navigated away I was prompted to discard changes or go back. This page is not able to be saved to my knowledge, so I think this prompt is out of place. Test done with debug off. NX2 is not affected by this. I did not check older NX3.",0.5 +"NEXUS-9121","08/27/2015 02:16:36","Update security entity bits to use use common entity support bits","The entities and orientdb usage of things in nexus-security should be able to use the nexus-common provided Entity interface and allow the impls to use EntityAdapter support classes.",2 +"NEXUS-9127","08/28/2015 21:09:05","Should not be allowed to delete assets from a group repository","There’s a delete button when viewing an asset in a group repository. We don’t support delete in that scenario, so the button shouldn’t be there, and if we do try to use it an NPE is thrown since the Asset id doesn't exist in the group repo bucket. Acceptance Criteria: - Remove the button from group repositories! NOTE: - The information to remove this _easily_ is not currently available, we'd have to figure something out to indicate your are in a group repository {quote} 2015-10-02 13:50:52,366-0400 INFO [qtp1124904898-174] admin org.sonatype.nexus.coreui.ComponentComponent - Deleting asset: null 2015-10-02 13:50:52,371-0400 ERROR [qtp1124904898-174] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Component.deleteAsset, java-method: org.sonatype.nexus.coreui.ComponentComponent.deleteAsset java.lang.NullPointerException: null at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210) [com.google.guava:18.0.0] at org.sonatype.nexus.repository.storage.StorageTxImpl.deleteAsset(StorageTxImpl.java:421) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.deleteAsset(StorageTxImpl.java:417) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:267) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:59) [na:na] at com.sun.proxy.$Proxy155.deleteAsset(Unknown Source) [na:na] at org.sonatype.nexus.repository.storage.StorageTx$deleteAsset$9.call(Unknown Source) [na:na] at org.sonatype.nexus.coreui.ComponentComponent.deleteAsset(ComponentComponent.groovy:289) [na:na] at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:201) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:121) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:101) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) [org.eclipse.jetty.servlet:9.3.3.v20150827] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.3.v20150827] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1156) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.3.v20150827] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1088) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.3.v20150827] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:245) [org.eclipse.jetty.io:9.3.3.v20150827] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.3.v20150827] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.3.v20150827] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.3.v20150827] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.3.v20150827] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.3.v20150827] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.3.v20150827] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {quote}",1 +"NEXUS-9158","09/09/2015 14:08:39","Help text in routing rules is wrong","The help text on routing rules is incorrect. It says that the path in the expression ""will include the repository name"". This is wrong. It also implies that a leading "".*"" is needed in the path before the start of the group ID, this is also wrong. This was previously fixed in [-NEXUS-3583-|https://issues.sonatype.org/browse/NEXUS-3583] , so somehow this regressed.",0 +"NEXUS-9161","09/09/2015 23:34:34","Numerical drop down rendering issue","The numerical drop down for Docker connector ports looses the lower outline when a value is defined in the control. This looks broken to a user.",0.5 +"NEXUS-9163","09/10/2015 14:52:16","Save button remains enabled after changes to LDAP users/groups are saved","Demo: http://take.ms/ClOBU Despite what the messaging says, the changes _are_ saved. Only the *User and group* tab is affected.",0.5 +"NEXUS-9168","09/11/2015 15:37:38","Going to custom search from non-parent has continual mask","I noticed that if I went to Custom Search from any of the other child searches (Docker, Maven, NuGet, Raw) I got a continual loading mask that did not go away. If you go from Search parent or outside stuff (such as Welcome or Browse) it works. This occurs with Debug on and off and nothing in the log/js console shows (though I mull if it's really continual that's why). This occurs with contents in the repos or with a fresh (content free) install. None of the other child searches seem affected in this way. I've attached a screen since it's about the same info as a vid, but if you want a vid let me know. I did not check older NX3 or NX2 at this time.",0.5 +"NEXUS-9170","09/11/2015 17:22:30","'Locally cached' status doesn't update when downloading NuGet assets for the first time","When NuGet searches are performed, the search cache is primed with data from the result but the actual binaries are not yet downloaded. When you navigate to the Assets view for one of these and click the download link the content is fetched, but the status shown on the screen does not update until after you navigate away and back. The refresh button does nothing in this context. The expectation is that the info about the asset should be updated, which might include a refresh of the store after the content is fetched. Recreation steps: - execute a search against our nuget.org proxy repo: curl -u admin:admin123 -X GET -v ""http://localhost:8081/repository/nuget.org-proxy/Search()?\$filter=IsLatestVersion&searchTerm='Web'&targetFramework='net45'&includePrerelease=false&\$top=65"" - Browse in the UI to any of the results of the above search; on a newly installed system this should be all results - note that 'Locally cached' is false - click the path link and download the asset - observe that the UI does not update 'Locally cached' and other related info (File size and Blob Ref)",1 +"NEXUS-9173","09/11/2015 21:55:34","IE(11): Column sort arrows on smaller columns collide with text","See attached (from Blobstores page). On smaller columns in IE(11), the sort arrow collides with the text. I noticed this first on Support>Analytics>Events where the default column sizes are pretty small (lots of data) and the initial sort (Timestamp) is affected. This does not happen in Chrome (Windows7) so this seems to be an IE specific issue. Working browsers have the arrow on the right and if the column gets too small, not shown at all. Being that the sort arrow is not first and on the same line, this is what I would have expected. Workaround, widen the column. I am pretty sure I have seen this before but did not see a ticket. Did not test older NX3 or NX2 at this time. Debug was off during this test. NOTE: Maybe talk to Sencha about this one",0.5 +"NEXUS-9174","09/11/2015 23:01:13","Docker search against group is incorrectly sorted","Setup: - docker group docker-all exposed at 18443 - group contains empty hosted repo and proxy to Docker Hub Expectation: Search results for a specific term like 'ubuntu' are the same Observed: Not the same at all. All official results that show up in direct search to Docker Hub are omitted. E.g. the official ubuntu image is missing. Typically those have the biggest number of stars and are the desired ones. ",0.5 +"NEXUS-9181","09/15/2015 17:34:17","Clicking to run and running a scheduled task shows repository field briefly as required","I noticed that when you click to run a scheduled task (before running) and when you run a scheduled task, the repository field briefly displays it's required despite it being filled in. No other required field does this as far as I can tell. This seems familiar but I did not see a ticket regarding this already. I did not check older NX3 or NX2 at this time. See vid, let me know if unclear.",0.5 +"NEXUS-9183","09/15/2015 19:39:47","npm Performance ITs","Add npm hosted, group and proxy performance ITs to the performance-testsuite.",3 +"NEXUS-9211","09/21/2015 21:09:14","Roles page warns of read permissions when it can be used","While running through security, I noticed that if you have just Roles permission, you get a warning that you cannot read privilges. While this is true, it is not necessary to create a role. Similarly, I think the placement of the warning is confusing. You get the warning before you enter the place where the fact you cannot read potentially matters (drilling down into/creating the role). Note, that the users page has a similar issue when it comes to listing roles however that page CANNOT be used without, so there is no ticket for that. The combination of the ability for it to be used and confusing warning are causing me to file. See attached screen, let me know if unclear. I had debug off during this test. No errors appeared in the js console. Below appeared in the nexus.log. I did not check older NX3 or NX2 at this time. {quote} 2015-09-17 11:58:47,887-0400 ERROR [pool-6-thread-10] joedragons org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Privilege.read, java-method: org.sonatype.nexus.coreui.PrivilegeComponent.read org.apache.shiro.authz.AuthorizationException: User is not permitted: nexus:privileges:read at org.sonatype.nexus.security.authz.ExceptionCatchingModularRealmAuthorizer.checkPermission(ExceptionCatchingModularRealmAuthorizer.java:66) [na:na] at org.apache.shiro.mgt.AuthorizingSecurityManager.checkPermission(AuthorizingSecurityManager.java:137) [na:na] at org.apache.shiro.subject.support.DelegatingSubject.checkPermission(DelegatingSubject.java:205) [org.apache.shiro.core:1.2.4] at org.apache.shiro.authz.aop.PermissionAnnotationHandler.assertAuthorized(PermissionAnnotationHandler.java:74) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:84) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:67) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:201) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.DefaultJsonRequestProcessorThread.processRequest(DefaultJsonRequestProcessorThread.java:72) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.ssm.SsmJsonRequestProcessorThread.processRequest(SsmJsonRequestProcessorThread.java:43) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread.access$1(ExtDirectJsonRequestProcessorThread.java:1) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread$1.call(ExtDirectJsonRequestProcessorThread.java:59) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread$1.call(ExtDirectJsonRequestProcessorThread.java:1) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletScopes$3.call(ServletScopes.java:232) [com.google.inject:4.0.0] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread.processRequest(ExtDirectJsonRequestProcessorThread.java:73) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.DefaultJsonRequestProcessorThread.call(DefaultJsonRequestProcessorThread.java:56) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.DefaultJsonRequestProcessorThread.call(DefaultJsonRequestProcessorThread.java:30) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.SNAPSHOT] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_40] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_40] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_40] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] Caused by: org.apache.shiro.authz.AuthorizationException: Not authorized to invoke method: public java.util.List org.sonatype.nexus.coreui.PrivilegeComponent.read() at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:90) [na:na] ... 26 common frames omitted {quote}",0.5 +"NEXUS-9212","09/21/2015 21:13:32","Capabilities: Save/discard does not disable after save","I noticed that after saving a Capability change _on the Summary tab_ that the Save/Discard buttons remain enabled. This does not happen on the Settings tab, so I surmise this may have been fixed one place (by [-NEXUS-8833-|https://issues.sonatype.org/browse/NEXUS-8833] ?) but not another. Similar tickets have definately existed (see some linked). There are no errors in the JS console/nexus.log. Debug was off during this test. I did not check older NX3 or NX2 at this time.",0.5 +"NEXUS-9215","09/22/2015 18:58:09","Extend search/browse results to show levels more cleanly","While reviewing NPM, I noticed looking at browse/search results all the json details were smushed together making IMO a tough reading experience. In fact, I believe it's much easier to read the json file itself (the contents are the same but the whitespace/linebreaks are not stripped). [Alin Dreghiciu|https://issues.sonatype.org/secure/ViewProfile.jspa?name=alin] noted that 'we implemented ""nice"" display of attributes only for 1 level' and if extended it would show nicer. He also noted that some docker attributes have the same issue. This is an improvement ticket in that regard. I included a screen of current npm as well as a screen of current NuGet (which looks much better; though not a fair comparison provides a vision of something to strive towards). NPM browse/search is new to NX3 and to Fabtastic so no back checking was done. I do not recall seeing the docker portion myself (implemented in m5, new to NX3), so did not attach screens/cases however if I run across it, I will try and remember to do so.",2 +"NEXUS-9217","09/22/2015 22:56:29","Deleting an NuGet asset then repushing nupkg errors","Just noticed that if I delete a nuget asset then repush the nupkg to get the asset back it gives me the below error. If I delete the repo and push there is no error nor is there an error the first time, so I assume this Nexus and not the package. In the offchance this is intentional/expected behavior, I wanted to note I found the error strange. It reads like it's missing a download count however that doesn't make any sense to me since those kinds of attributes would seem to always be read or never (not the second time and fail). I did not check older NX3 or NX2 at this time. I was on MacOSX using curl to push, an unlikely use case however I did that both times (the first successful and the second errorful). I also did not check Windows at this time. {quote} 2015-09-22 17:48:03,931-0400 ERROR [qtp658827638-557] admin com.sonatype.nexus.repository.nuget.internal.NugetPushHandler - Unknown error java.lang.IllegalStateException: Missing: {attributes::nuget} version_download_count at com.google.common.base.Preconditions.checkState(Preconditions.java:173) [com.google.guava:18.0.0] at org.sonatype.nexus.common.collect.AttributesMap.require(AttributesMap.java:190) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.collect.AttributesMap.require(AttributesMap.java:208) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.collect.AttributesMap.require(AttributesMap.java:217) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at com.sonatype.nexus.repository.nuget.internal.NugetGalleryFacetImpl.maintainAggregateInfo(NugetGalleryFacetImpl.java:521) [na:na] at com.sonatype.nexus.repository.nuget.internal.NugetGalleryFacetImpl.maintainAggregateInfo(NugetGalleryFacetImpl.java:502) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:54) [org.sonatype.nexus.transaction:3.0.0.SNAPSHOT] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:45) [org.sonatype.nexus.transaction:3.0.0.SNAPSHOT] at com.sonatype.nexus.repository.nuget.internal.NugetGalleryFacetImpl.put(NugetGalleryFacetImpl.java:334) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:267) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at com.sonatype.nexus.repository.nuget.internal.NugetPushHandler.storePayload(NugetPushHandler.java:76) [na:na] at com.sonatype.nexus.repository.nuget.internal.NugetPushHandler.push(NugetPushHandler.java:63) [na:na] at com.sonatype.nexus.repository.nuget.internal.NugetPushHandler.handle(NugetPushHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:41) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:101) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) [org.eclipse.jetty.servlet:9.3.3.v20150827] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.3.v20150827] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1156) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.3.v20150827] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1088) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.3.v20150827] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:245) [org.eclipse.jetty.io:9.3.3.v20150827] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.3.v20150827] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.3.v20150827] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.3.v20150827] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.3.v20150827] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.3.v20150827] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.3.v20150827] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {quote}",0.5 +"NEXUS-9219","09/23/2015 14:55:03","Deleting a npm asset then republishing errors","I noticed that if I publish then delete the related assets (via browse assets/components UI) and publish again that I am getting the below error. This happens despite allow redeploy being on. If I do not delete the republish works as does the first publish. Debug was off during this test. NPM is new to Fabtastic so no backcheck of NX3 is possible. I did not check NX2 at this time. {quote} 2015-09-22 17:36:46,247-0400 WARN [qtp658827638-536] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure java.lang.NullPointerException: null at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.attachBlob(StorageTxImpl.java:489) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:267) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:59) [na:na] at com.sun.proxy.$Proxy154.attachBlob(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHostedFacetImpl.putTarball(NpmHostedFacetImpl.java:158) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHostedFacetImpl.putPackageRoot(NpmHostedFacetImpl.java:119) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:54) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:45) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHostedFacetImpl.putPackage(NpmHostedFacetImpl.java:86) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHostedFacet$putPackage$0.call(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:141) [groovy-all:2.4.4] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$_closure3.doCall(NpmHandlers.groovy:123) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy120.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$_closure1.doCall(NpmHandlers.groovy:89) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy120.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:101) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) [org.eclipse.jetty.servlet:9.3.3.v20150827] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.3.v20150827] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1156) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.3.v20150827] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1088) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.3.v20150827] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:245) [org.eclipse.jetty.io:9.3.3.v20150827] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.3.v20150827] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.3.v20150827] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.3.v20150827] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.3.v20150827] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.3.v20150827] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.3.v20150827] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {quote} STEPS: 1) Setup NPM hosted repo 2) npm publish (I used my own creation, ala [https://docs.sonatype.com/display/Nexus/NPM+Testing] ) 3) Go to browse asset UI and delete all assets in the NPM hosted repo 4) npm publish; BUG: WARN in log, 500 on console, no republish is done",0.5 +"NEXUS-9221","09/23/2015 18:50:40","Strict Content Validation prevents npm install","Running https://docs.sonatype.com/display/Nexus/NPM+Testing proxy test against NX3, I found that I was getting the below errors (500s) when installing insight-brain. After reading them, I tried again with strict content validation off (proxy) and everything worked. This is reproducable by following the guide steps after clearing npm cache (if you don't clear npm cache, ala npm cache clean, after successful install, it continues to be successful). One deviance from the guide is I have not checked groups yet, so my configuration (.npmrc) was to proxy. I do not think this matters but if I remember and this is not addressed, I will check once I get to groups. I have not seen this elsewhere in NX3 and npm is new to Fabtastic so I did no NX3 back checking. This does not affect NX2 (testguide passes with file checking on). NOTE: This happens with 2 different files. Both retry 3 times before giving up and the install fails. {quote} npm http 500 http://localhost:8081/repository/npmproxy/marked npm ERR! registry error parsing json npm info retry will retry, error on last attempt: SyntaxError: Unexpected token < npm info retry npm info retry npm info retry 500 - Sonatype Nexus npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry
npm info retry npm info retry npm info retry Sonatype Nexus npm info retry npm info retry OSS 3.0.0-SNAPSHOT npm info retry
npm info retry npm info retry
npm info retry
npm info retry npm info retry Error 500 npm info retry Internal Server Error npm info retry
npm info retry
npm info retry
npm info retry javax.servlet.ServletException: org.sonatype.nexus.repository.InvalidContentException: Detected content type [text/html], but expected [application/json]: marked.json npm info retry
npm info retry
npm info retry
npm info retry npm info retry npm info retry npm info retry {quote} & (2 occurances) {quote} npm http 500 http://localhost:8081/repository/npmproxy/jade npm ERR! registry error parsing json npm info retry will retry, error on last attempt: SyntaxError: Unexpected token < npm info retry npm info retry npm info retry 500 - Sonatype Nexus npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry
npm info retry npm info retry npm info retry Sonatype Nexus npm info retry npm info retry OSS 3.0.0-SNAPSHOT npm info retry
npm info retry npm info retry
npm info retry
npm info retry npm info retry Error 500 npm info retry Internal Server Error npm info retry
npm info retry
npm info retry
npm info retry javax.servlet.ServletException: org.sonatype.nexus.repository.InvalidContentException: Detected content type [text/html], but expected [application/json]: jade.json npm info retry
npm info retry
npm info retry
npm info retry npm info retry npm info retry npm info retry {quote} Errors from nexus.log {quote} 2015-09-23 11:38:39,499-0400 WARN [qtp1623599577-217] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure org.sonatype.nexus.repository.InvalidContentException: Detected content type [text/html], but expected [application/json]: marked.json at org.sonatype.nexus.repository.storage.DefaultContentValidator.determineContentType(DefaultContentValidator.java:95) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmContentValidator.determineContentType(NpmContentValidator.java:60) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.determineContentType(StorageTxImpl.java:573) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.createBlob(StorageTxImpl.java:478) [na:na] at sun.reflect.GeneratedMethodAccessor263.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:267) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:59) [na:na] at com.sun.proxy.$Proxy160.createBlob(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmFacetUtils.toBlob(NpmFacetUtils.java:128) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmFacetUtils.savePackageRoot(NpmFacetUtils.java:304) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.doPutPackageRoot(NpmProxyFacetImpl.java:182) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:54) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:45) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.putPackageRoot(NpmProxyFacetImpl.java:162) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.store(NpmProxyFacetImpl.java:84) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:163) [na:na] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:48) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed$0.call(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$_closure10.doCall(NpmHandlers.groovy:201) [na:na] at sun.reflect.GeneratedMethodAccessor261.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [na:na] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [na:na] at com.sun.proxy.$Proxy159.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.partial.PartialFetchHandler.handle(PartialFetchHandler.java:58) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.negativecache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed$0.call(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$_closure1.doCall(NpmHandlers.groovy:90) [na:na] at sun.reflect.GeneratedMethodAccessor258.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [na:na] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [na:na] at com.sun.proxy.$Proxy159.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:101) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) [org.eclipse.jetty.servlet:9.3.3.v20150827] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.3.v20150827] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1156) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.3.v20150827] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1088) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.3.v20150827] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:245) [org.eclipse.jetty.io:9.3.3.v20150827] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.3.v20150827] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.3.v20150827] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.3.v20150827] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.3.v20150827] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.3.v20150827] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.3.v20150827] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] 2015-09-23 11:38:40,002-0400 INFO [qtp1623599577-228] admin com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl - Storing package: jade 2015-09-23 11:38:40,023-0400 WARN [qtp1623599577-228] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure org.sonatype.nexus.repository.InvalidContentException: Detected content type [text/html], but expected [application/json]: jade.json at org.sonatype.nexus.repository.storage.DefaultContentValidator.determineContentType(DefaultContentValidator.java:95) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmContentValidator.determineContentType(NpmContentValidator.java:60) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.determineContentType(StorageTxImpl.java:573) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.createBlob(StorageTxImpl.java:478) [na:na] at sun.reflect.GeneratedMethodAccessor263.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:267) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:59) [na:na] at com.sun.proxy.$Proxy160.createBlob(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmFacetUtils.toBlob(NpmFacetUtils.java:128) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmFacetUtils.savePackageRoot(NpmFacetUtils.java:304) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.doPutPackageRoot(NpmProxyFacetImpl.java:182) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:54) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:45) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.putPackageRoot(NpmProxyFacetImpl.java:162) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.store(NpmProxyFacetImpl.java:84) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:163) [na:na] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:48) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed$0.call(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$_closure10.doCall(NpmHandlers.groovy:201) [na:na] at sun.reflect.GeneratedMethodAccessor261.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [na:na] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [na:na] at com.sun.proxy.$Proxy159.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.partial.PartialFetchHandler.handle(PartialFetchHandler.java:58) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.negativecache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed$0.call(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$_closure1.doCall(NpmHandlers.groovy:90) [na:na] at sun.reflect.GeneratedMethodAccessor258.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [na:na] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [na:na] at com.sun.proxy.$Proxy159.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:101) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) [org.eclipse.jetty.servlet:9.3.3.v20150827] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.3.v20150827] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1156) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.3.v20150827] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1088) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.3.v20150827] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.3.v20150827] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:245) [org.eclipse.jetty.io:9.3.3.v20150827] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.3.v20150827] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.3.v20150827] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.3.v20150827] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.3.v20150827] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.3.v20150827] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.3.v20150827] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {quote}",1 +"NEXUS-9223","09/23/2015 21:37:21","Remove doc references to sonatype-work folder","It is now internal in the Nexus folder data .. so all text about separation and such should also be updated",1 +"NEXUS-9243","09/28/2015 14:30:26","Can't create external LDAP Role mapping","I have a LDAP instance and I am able to verify user mapping with it. Under Security -> Roles I push Create role -> External role mapping -> LDAP I get Uncaught TypeError: a.setItemName is not a function (https://mydockerhub.example.com/static/rapture/nexus-coreui-plugin-prod.js?_v=3.0.0-b2015091801:1)",0.5 +"NEXUS-9285","10/01/2015 18:52:40","> placement in wrong place","While demoing Tuesday, the team noticed that on Search the > sign that usually is at the end of the row on search to indicate that you can click and see more was not in the last ""column"" but in the second to last column. This does not occur on normal search and in fact seems to only occur when you have a component twice in different repositories like attached screen (dated 10/1). This was demoed in NPM and that is how I reproduced it - creating two npm hosted repos and publishing the same package to both and then searching on the name. In addition, I tangentially noticed similar behavior on the Capabilities screen right out of the box. The differences seem to be that it does not take any special circumstances to get it to break and the > is in the second column instead of the ""last"". See attached screen (dated 9/30). I was waffling whether this should be two issues or one. I conferred with [~dsauble] who said start with one. Daniel suspects as I do, that the Capabilities issue (at least) is recent regression. I have not checked older NX3 or NX2 at this time. Test performed with debug off. Nothing in the log or JS console.",1 +"NEXUS-9286","10/01/2015 19:01:42","Specific actions in search can cause list not to load","When testing npm, I just noticed a very similar thing to NEXUS-9109 (pre-fix). I had a bunch of npm components and was doing a non-custom keyword search. Searching for ""test"" shows over a page worth of component results. I searched for ""testproject1"" and there was one result (as expected, I had created it). Limiting to ""testp"" shows no results (because of lack of wildcard/* - aka NEXUS-8884). However, then limiting back to ""test"" seemed to show no results. After a couple times reproing this, I noticed a scroll on the right side. This occurs despite the fix for NEXUS-9109. See attached vids. Setup/config steps: //setup of data 1) Setup your npm instance as https://docs.sonatype.com/display/Nexus/NPM+Testing (.npmrc edits and nexus repos). WARN: Due to not committed fix turn strict content validation off for Proxy or step 4 will fail to build. 2) Download user package from https://issues.sonatype.org/browse/NEXUS-8043 and unzip 3) From that directory, run Kelly's script (https://gist.github.com/kellyrob99/8e86227da5c8fd7d7a30) to get everything into Nexus Hosted. NOTE: This takes a while. Some will error but most should go through = ""+ {package} "" [no errors or subsequent/following lines]. Can recheck browse assets/components for npmhosted if you're unsure. 4) Following https://docs.sonatype.com/display/Nexus/NPM+Testing, test hosted and proxy. Note repository differences in configuration of package local. This further populates each repo; I did 2 hosted tests. Let me know if you need more details here. Trying not to retype what's already documented //performing bug (as vid) 5) Go to Search 6) Type in ""test"" 7) After results, adjust to ""testproject1"" (or whatever you named your hosted package) 8) After result, adjust to ""testp"". Should see no results because of lack of wildcard symbol. 9) After a few seconds, adjust to ""test"". No results show. Scroll shows (on my machine/setup). Scrolling reveals results.",3 +"NEXUS-9293","10/03/2015 16:52:20","add a task to purge dangling docker images","Typically we build images tagged as ""latest"" after SCM change automatically in CI and we push them to registry. It is basically the same as with SNAPSHOT deployed by maven. As result there are many ""dangling"" images that in our case take significant amount of space. Usually when you re-build image, meaning you tag newly build image with an already existing tag, you will see ""dangling"" image in ""docker images"" output. And you would delete it with: *_docker rmi $(docker images -q -f dangling=true)_* Basically what we need is something similar to scheduled task named ""Remove Snapshots From Repository"" for removing old SNAPSHOTs deployed by maven. For example Docker registry V2, provides maintenance function called ""upload purging"" for this purpose. See [https://docs.docker.com/registry/configuration/] Acceptance Criteria: * A user with sufficient privileges will be able to schedule a task to delete orphaned Docker layers ** This should be able to run on Hosted and Proxy NOTE: * To figure out which layers are orphaned, you need to look at existing manifests to see essentially which layers are not referenced * More info on how Docker is handling deletes: [https://github.com/docker/distribution/blob/master/ROADMAP.md#deletes] TECHNICAL NOTE: * Do not purge any layer newer than when the task started running",5 +"NEXUS-9302","10/06/2015 18:19:38","Administration cog icon may not be initially visible after successful sign in","# Let Nexus UI time out, on the Repository list screen # Sign in # Notice that there's no configuration cog # Sign out # Sign in again ( or refresh browser tab/window) # Notice there's a cog now. Happened on commit dad4714 NOTE: - Let's look into this, the proposed solution is to remove it but we want to make sure this doesn't have ripple effects",1 +"NEXUS-9311","10/08/2015 21:05:40","NPM group json shows last uploaded not ordered","While reviewing group ordering, I uploaded the same npm project into two different hosted directories and had those hosted directories in a group. I noticed that the json information in the UI for the project via the group showed the second project that I had uploaded (see 12.33 screen). However, because of the ordering I expected it to show the first json. The metadata did show the proper ordering so that ticket passed (see 12.34 screen). I spoke with [~cstamas] and he said to file and he would review/debug. He noted that the json is(may be) going away with https://github.com/sonatype/nexus-internal/pull/230 which may make this difficult to repro and/or test. Test done with debug off. npm is new to Fabtastic and I did not check any other repo types in NX3. I did not check NX2 at all.",1 +"NEXUS-9314","10/09/2015 15:54:50","System Information does not wrap (well) but cannot scroll","Just noticed that in my system information, some of the fields are longer, however do not wrap after one page width (at least not at my maximum laptop size [1440]). There is however no scroll available. Workarounds are to copy the line and paste it into an external document or to click download. Both of those are an additional step to someone who might just want to read this info. Test done with debug off. I did not check older NX3 or NX2 at this time.",0.5 +"NEXUS-9317","10/09/2015 21:07:36","Docker search can show too much from Nexus hosted/groups","I just ran a search ""docker search 192.168.1.4:18075/jprjr/docker-tinyfs"" with the following results: {code} bash-3.2$ docker search 192.168.1.4:18075/jprjr/docker-tinyfs NAME DESCRIPTION STARS OFFICIAL AUTOMATED jprjr/docker-tinyfs A small image (5.5MB) made using buildroot. 4 [OK] 192.168.1.4:18075/jprjr/docker-tinyfs:latest 0 192.168.1.4:18075/library/hello-world:latest 0 192.168.1.4:18075/library/ubuntu:latest 0 192.168.1.4:18075/sonatype/nexus:latest 0 {code} It seems to show the proxied docker item as well as each docker hosted image I have in my hosted repo. The same occurs for just searching the hosted repo (without the proxy result). Narrowing the search seems to give the correct results, making me wonder if searching the broader item is somehow including / as something to be searched (though just for hosted as there are any number of proxied items with / out there). This was untestable in NX3 because of NEXUS-9159, however, spoke with [~krobinson] and decided to give it a distinct ticket rather than reopen that one soas not to cloudy the waters. Docker does not exist in NX2 so cannot be checked there. I am leaving this major as I can imagine this will render results less and less useful the more things you have in the hosted repo. You also cannot perform this exact search in the NX3 search UI because of NEXUS-8801 so the workaround is partial search. NOTE: - Could be tokenizing the / in the image name",0.5 +"NEXUS-9328","10/14/2015 17:42:57","Docker and context path","It is not clear if our Docker support works with a context path configured in org.sonatype.nexus.cfg The following steps need to be taken - test if it works or not - decide if we want it to work or not (if thats even possible) - update docker chapter in documentation accordingly - update section about configuring context path accordingly - answer http://stackoverflow.com/questions/33021350/trouble-connecting-to-docker-registry-stored-on-nexus-3-preview-on-azure-vm ",0.5 +"NEXUS-9350","10/20/2015 18:47:57","logback-overrides not respected always","[~alin] noticed that he set the org.apache.http.wire logger to TRACE, restarted nexus, and the logger value of org.apache.http.wire was reset to ERROR. I was able to repro this but it does not happen for all loggers. I checked logback-overrides.xml and the values are defined there but for some reason it is not picked up. We discussed whether this was a ""feature"" or not and also discussed if it has to do with customized loggers (and potentially the change from NEXUS-9327). When testing NEXUS-9327 I did not include restarting in the test=\ Despite that discussion I did not check older NX3 at this time, nor did I check NX2. Debug was off during this test.",1 +"NEXUS-9351","10/20/2015 22:20:18","Logger related(?) error at top of console after reset","I noticed this line at the top of my nexus.log when I restarted my nexus: 'ERROR in ch.qos.logback.core.joran.action.PropertyAction - In element, either the ""file"" attribute alone, or the ""resource"" element alone, or both the ""name"" and ""value"" attributes must be set.' Earlier I had rebuilt and written up NEXUS-9350 and not done anything else noteworthy. I was subsequently able to repro this by building a new nexus, starting it, resetting logs to default level and restarting nexus. As far as I could tell this did not occur on the initial post-install start. I did not check older NX3 or NX2 at this time. Debug was off during this test.",0.5 +"NEXUS-9353","10/20/2015 22:53:39","bin/nexus-run helper app does not function if installer had unselected service start","While testing the installer, I ran a basic setup but unchecked 'Start service' from the advanced options (Service tab). At the end ""Completing the Sonatype Nexus Setup Wizard"", I kept 'Create Desktop Icons' checked. When I double clicked the icon, I got the attached errors (one on screen, the other in console log). I first noticed this on Mac running the .sh file, then subsequently in Linux CentOS GNOME. I was unable to test this in CentOS KDE due to an error with the icon not creating. These errors occur regardless of if Nexus is started or not. Running with start service checked seems to work.",0.5 +"NEXUS-9355","10/20/2015 23:09:39","Installer does not create desktop icon in CentOS KDE","While testing the installer (nexus-3.0.0-SNAPSHOT-unix.sh), I ran a basic setup and at the end ""Completing the Sonatype Nexus Setup Wizard"", I kept 'Create Desktop Icons' checked. On CentOS KDE the icon did not create. I tried several permutations of installs and no dice. This blocked testing of several issues I was trying to test in Linux. On CentOS GNOME it did create so nothing is currently blocked however, I am filing at least because I believe it's worth documenting something not working when it is checked. Marking minor however I guess it's arguable if you're using CentOS KDE=) -- Recommendation to send to install4j. Review with Joe to see if increasing the logging levels gives better information.",0.5 +"NEXUS-9370","10/29/2015 15:15:12","Impossible to map LDAP groups if remote server's query limit is reached","Active Directory will only return a certain number of results for an LDAP query. This means that the external role mapping UI will not show all available groups in the drop list box. In Nexus 2.x there are workarounds to this problem as documented here: [Nexus does not list all avaliable LDAP groups in external role mapping dialog|https://support.sonatype.com/entries/30579397] In Nexus 3 the external role mapping is done via a non-editable drop-list control. So there is no workaround, if the LDAP group you need isn't in the list it cannot be mapped. ",1 +"NEXUS-9371","10/29/2015 20:17:46","Browse asset sort is case sensitive for some repo types","I just noticed that Browse Assets sort by name sorted in a case sensitive way. See attached. Specifically, caps showed after numbers but before lower case. Components is not affected. I dug around and found NEXUS-8844 which seems to have fixed Components (before there was a differnentiation). I believe this should be the same for assets. I am marking trivial because the assets are all there and some may disagree this is how it should be anyway (but it is currently inconsistent which I believe is at least confusing). Debug was ON during this test. I did not check older versions of NX3. I do not believe this issue affects NX2 (but NEXUS-8844 might have).",1 +"NEXUS-9372","10/30/2015 02:39:17","repodata/repomd.xml isn't recognized as metadata in YUM proxy repository","Currently the _repodata/repomd.xml_ path is handled as regular item in proxied repository. and its age is checked by _getItemMaxAge()_ instead of _getMetadataMaxAge()_. So the max age of _repodata/repomd.xml_ and the max age of RPM files are same that can be configured as ""Item Max Age"" in the configuration. I think that checking the age of _repodata/repomd.xml_ with _getMetadataMaxAge()_ is a right thing to do",0.5 +"NEXUS-9375","10/30/2015 23:01:58","v1 docker proxy assets 404 on download click","While testing the docker branch, I noticed that assets from the docker proxy labelled v1 were 404ing on download. v2 assets were ok. [~krobinson] noted that the URL contained an extra /v1/images. Removing it caused the download to work. I am leaving major because the workaround is not intuitive. See vid. This is regression from m5 where this works. You can (currently) get v1 assets by pulling hello-world or ubuntu. You can (currently) get v2 assets by pulling baselibrary/ubuntu. Docker is not in NX2 so this does that affect that.",0.5 +"NEXUS-9426","11/11/2015 18:39:42","npm repository URLs error","When you attempt to browse the URLs displayed for npm repositories in the Manage Repositories list (via Repository->Repositories) you get error 400s for hosted and group and error 404 for proxy. We modified other non-browsable repositories to link to the component/asset browse section and browsable repositories to work. npm seems to have neither. This occurs in m6 where npm for NX3 was introduced. I did not check NX2 at this time.",0.5 +"NEXUS-9437","11/13/2015 10:15:07","unable to start nexus when run_as_user is set","There is a serious problem starting the m6 release on ubuntu server without X11 installed and the documentation is not up to date. After unpacking nexus-installer-3.0.0-m6-unix-archive.tar.gz on my server I changed run_as_user in nexus.rc. I tried to start it with *./nexus-3.0.0-b2015110601/bin/nexus run* su: invalid option -- 'D' Usage: su [options] [LOGIN] Options: -c, --command COMMAND pass COMMAND to the invoked shell -h, --help display this help message and exit -, -l, --login make the shell a login shell -m, -p, --preserve-environment do not reset environment variables, and keep the same shell -s, --shell SHELL use SHELL instead of the default in passwd After debuging the scipt I tried to start the Nexus server outside the script with nexus@node01:*/opt/nexus$ /usr/lib/jvm/java-8-oracle/jre/bin/java -server -Dinstall4j.jvmDir=/usr/lib/jvm/java-8-oracle/jre -Dexe4j.moduleName=/opt/nexus/nexus-3.0.0-b2015110601/bin/nexus -Dinstall4j.launcherId=245 -Dinstall4j.swt=false -Di4jv=0 -Di4jv=0 -Di4jv=0 -Di4jv=0 -Di4jv=0 -Xms256M -Xmx768M -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass -Djava.net.preferIPv4Stack=true -Dkaraf.home=. -Dkaraf.base=. -Dkaraf.etc=etc -Djava.util.logging.config.file=etc/java.util.logging.properties -Dkaraf.data=data -Dkaraf.instances=data/instances -Djava.io.tmpdir=data/tmp -Dkaraf.startLocalConsole=false -Di4j.vpt=true -classpath /opt/nexus/nexus-3.0.0-b2015110601/.install4j/i4jruntime.jar:/opt/nexus/nexus-3.0.0-b2015110601/lib/karaf.jar:/opt/nexus/nexus-3.0.0-b2015110601/lib/karaf-org.osgi.core.jar:/opt/nexus/nexus-3.0.0-b2015110601/lib/karaf-jmx-boot.jar:/opt/nexus/nexus-3.0.0-b2015110601/lib/karaf-jaas-boot.jar:/opt/nexus/nexus-3.0.0-b2015110601/lib/karaf-nexus-branding.jar com.install4j.runtime.launcher.UnixLauncher run 9d17dc87 org.apache.karaf.main.Main* java.util.NoSuchElementException at java.util.LinkedList.removeFirst(LinkedList.java:270) at com.exe4j.runtime.util.ArgumentStack.popString(ArgumentStack.java:14) at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:37) java.util.NoSuchElementException Exception in thread ""main"" java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it. at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204) at java.awt.Button.(Button.java:152) at com.exe4j.runtime.util.MessageBox.addChoice(MessageBox.java:151) at com.exe4j.runtime.util.MessageBox.addChoice(MessageBox.java:163) at com.install4j.runtime.launcher.ErrorHandler.displayGuiErrorMessage(ErrorHandler.java:14) at com.install4j.runtime.launcher.ErrorHandler.reportError(ErrorHandler.java:22) at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:71) ",1 +"NEXUS-9439","11/13/2015 14:35:48","deadlock between mergeropo and staging promotion","A GET request comes into a group repository which triggers a yum metadata merge. It can't proceed because it can't get a lock to schedule the task: {quote} qtp1444610073-5921 id=5921 state=WAITING - waiting on <0x631ba521> (a java.util.concurrent.FutureTask$Sync) - locked <0x631ba521> (a java.util.concurrent.FutureTask$Sync) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303) at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:248) at java.util.concurrent.FutureTask.get(FutureTask.java:111) at org.sonatype.scheduling.DefaultScheduledTask.get(DefaultScheduledTask.java:260) at org.sonatype.nexus.yum.internal.YumGroupImpl.getYumRepository(YumGroupImpl.java:91) at org.sonatype.nexus.yum.internal.MergeMetadataRequestStrategy.onHandle(MergeMetadataRequestStrategy.java:90) at org.sonatype.nexus.proxy.repository.AbstractRepository.checkRequestStrategies(AbstractRepository.java:1201) at org.sonatype.nexus.proxy.repository.AbstractRepository.checkConditions(AbstractRepository.java:1193) at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:590) at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:155) at org.sonatype.nexus.content.internal.ContentServlet.doGet(ContentServlet.java:376) at org.sonatype.nexus.content.internal.ContentServlet.service(ContentServlet.java:342) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:288) at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:278) at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) 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:125) 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:125) 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:125) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.sonatype.nexus.web.internal.SecurityFilter.executeChain(SecurityFilter.java:90) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) {quote} It can't get a lock to do this because another thread has the default configuration lock because it is promoting a staging repository. This thread can't proceed because it is trying to acquire a lock held by the first thread: {quote} pxpool-1-thread-4 id=124 state=WAITING - waiting on <0x13ccef4e> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) - locked <0x13ccef4e> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) owned by qtp1444610073-5921 id=5921 at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:867) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1197) at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:945) at org.sonatype.nexus.yum.internal.YumGroupImpl.markDirty(YumGroupImpl.java:109) at org.sonatype.nexus.yum.internal.EventsRouter.on(EventsRouter.java:96) at sun.reflect.GeneratedMethodAccessor209.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.sonatype.sisu.goodies.eventbus.internal.guava.EventHandler.handleEvent(EventHandler.java:80) at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.dispatch(EventBus.java:329) at org.sonatype.sisu.goodies.eventbus.internal.DefaultGuavaEventBus.dispatch(DefaultGuavaEventBus.java:34) at org.sonatype.sisu.goodies.eventbus.internal.ReentrantGuavaEventBus.dispatchQueuedEvents(ReentrantGuavaEventBus.java:57) at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.post(EventBus.java:281) at org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus.post(DefaultEventBus.java:78) at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.prepareForSave(AbstractGroupRepository.java:125) at org.sonatype.nexus.configuration.AbstractConfigurable.onEvent(AbstractConfigurable.java:105) at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.sonatype.sisu.goodies.eventbus.internal.guava.EventHandler.handleEvent(EventHandler.java:80) at org.sonatype.sisu.goodies.eventbus.internal.guava.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:49) at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.dispatch(EventBus.java:329) at org.sonatype.sisu.goodies.eventbus.internal.DefaultGuavaEventBus.dispatch(DefaultGuavaEventBus.java:34) at org.sonatype.sisu.goodies.eventbus.internal.ReentrantGuavaEventBus.dispatchQueuedEvents(ReentrantGuavaEventBus.java:57) at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.post(EventBus.java:281) at org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus.post(DefaultEventBus.java:78) at org.sonatype.nexus.configuration.application.DefaultNexusConfiguration.applyConfiguration(DefaultNexusConfiguration.java:339) - locked org.sonatype.nexus.configuration.application.DefaultNexusConfiguration@1a90baa2 at org.sonatype.nexus.configuration.application.DefaultNexusConfiguration.saveConfiguration(DefaultNexusConfiguration.java:363) - locked org.sonatype.nexus.configuration.application.DefaultNexusConfiguration@1a90baa2 at com.sonatype.nexus.staging.internal.DefaultStagingRepositoryManager.setRepositoryGroupStaged(DefaultStagingRepositoryManager.java:265) at com.sonatype.nexus.staging.internal.task.RepositoryPromoteTask$PromoteOperation.perform(RepositoryPromoteTask.java:200) at com.sonatype.nexus.staging.internal.task.OperationTaskSupport.executeOperations(OperationTaskSupport.java:434) at com.sonatype.nexus.staging.internal.task.OperationTaskSupport.doCall(OperationTaskSupport.java:415) at com.sonatype.nexus.staging.internal.task.RepositoryPromoteTask.doCall(RepositoryPromoteTask.java:365) at com.sonatype.nexus.staging.internal.task.RepositoryPromoteTask.doCall(RepositoryPromoteTask.java:1) at com.sonatype.nexus.staging.internal.task.TaskSupport.call(TaskSupport.java:37) at com.sonatype.nexus.staging.internal.task.StagingTaskSupport.call(StagingTaskSupport.java:133) at com.sonatype.nexus.staging.internal.task.StagingBackgroundTask.execute(StagingBackgroundTask.java:67) at com.sonatype.nexus.staging.internal.task.NexusTaskSupport.doRun(NexusTaskSupport.java:52) at com.sonatype.nexus.staging.internal.task.NexusTaskSupport.doRun(NexusTaskSupport.java:1) at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:163) at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) {quote}",0.5 +"NEXUS-9446","11/17/2015 17:36:29","Email validation in 3.0-m6","Looks like the email validation is being a bit too strict - my email address is mlaccetti@uncharted.software, but when creating a user in 3.0-m6, the email is marked as invalid.",0.5 +"NEXUS-9452","11/19/2015 14:11:55","valid npm package names not unescaped properly","Sadly, there is a package in the npm registry with a ""/"" in it's name. Direct access of this works via npm, the slash is escaped: https://registry.npmjs.org/@reactivex%2frxjs Retrieving this package through a nexus proxy does not work, the slash is unescaped. Inbound request to nexus: {quote} http://localhost:8081/nexus/content/repositories/npm-proxy/@reactivex%2frxjs {quote} Outbound request from nexus: {code} 2015-11-18 18:05:07,842-0600 DEBUG [qtp2043206070-82] admin remote.storage.outbound - [npm-proxy] GET https://registry.npmjs.org/@reactivex/rxjs {code} So the ""%2f"" is getting un-escaped back into a ""/"". This issue is reproducible in 2.11.4-01 and 3.0m6.",1 +"NEXUS-9461","11/20/2015 21:32:33","Blocking repository does nothing","Just performed the following events in a fresh build of Gnarly: * ""Invalidated cache"" (now one button post-NEXUS-9182) * Cleared local .m2 repository folder * Marked default maven central proxy repository blocked * Hit http://localhost:8081/repository/maven-central/abbot/abbot/0.13.0/abbot-0.13.0.pom The pom was returned. Unless I am really confused I believe block setting is not working. I attempted the same test except instead of being blocked I disconnected from the internet and got back the (expected) 502 error. I tried again but did not clear cache and was able to see the pom (so it was cached). I attempted this in m6 and experienced the same behavior so do not believe it related to NEXUS-9182. No errors in log, debug was off during these tests. I did not check NX2 at this time. If this turns out to be NOTABUG, I would like to recommend we reevaluate the help and documentation text to be a smidge more clear.",0.5 +"NEXUS-9468","11/23/2015 19:06:40","Clicking away from a scheduled task prompts for discard despite no changes","If you have an existing non-manual scheduled task (iow a task with a start time set) if you click into it to see details then click away without making any adjustments you are prompted to discard changes or remain on the page. If you remain then click the discard button the start time goes blank and you are able to traverse away without prompt (on weekly schedule, the day to run the tasks also clears). Leaving minor since this is especially confusing since that field is required. This does not affect manual tasks because they have no start time. I did not check older NX3 or NX2 at this time however I do not believe it was related to the change (discovered while testing link) since it occurred in m6. [~jdillon] also noticed this while performing the change itself (and relayed in an email). Debug was off during this test.",0.5 +"NEXUS-9470","11/23/2015 20:46:57","Adjusting a schedule task updates last run and last result fields","I noticed that when you have a scheduled (non-manual) task, if you update the start time, on the tasks list the ""Last run"" shown is the time you saved the update not the last time the task was actually run. Similarly the last result shows ""Cancelled"" even if you have never run the task before. [~jdillon] also noticed this on his work on NEXUS-7797. I have not checked older NX3 or NX2 at this time. Debug was off during this test. Leaving minor since it could ""erase"" useful data. NOTES: - Could be because the API is too narrow to deal with this interaction - Likely need to group some of these issues together so that we revisit the API if needed - Quartz might not be keeping the date correctly?",2 +"NEXUS-9472","11/23/2015 21:40:38","Hourly scheduled tasks can not run when UI next reports","While testing, I noticed an hourly scheduled task not running (see attached). On follow up test I was able to get it to run. I am able to reproduce this intermittancy consistantly by making the start time for the scheduled task in the past. For example, the one from the screenshot, I set to 1:30 (AM) before remembering that this was military (24-hour clock) time. Nexus is smart and updates ""next run"" to the next hour, however, it seems the task never fires. If you have the start time in the future it seems to work fine. [~jdillon] noticed similar in his NEXUS-7797 revamp I believe. He wrote: {quote} Start time: 00:45 logs show: 2015-11-02 15:31:35,024-0800 INFO [qtp1974005016-47] admin org.sonatype.nexus.quartz.internal.orient.OrientJobStore - Store trigger: newTrigger=Trigger 'nexus.f81853fe-869e-4646-8a1a-4416bbabe031': triggerClass: 'org.quartz.impl.triggers.SimpleTriggerImpl calendar: 'null' misfireInstruction: 0 nextFireTime: Mon Nov 02 00:45:00 PST 2015, replaceExisting=false UI shows: Next run Mon Nov 02 2015 15:45:00 GMT-0800 (PST) {quote} I actually do not see this log message line, but I believe it's the same issue after his comment in NEXUS-7797 in response to my test notes. I did not check older NX3 or NX2 at this time. Debug was off during these tests.",1 +"NEXUS-9474","11/24/2015 15:42:26","Restore Task's notification email help text","While testing scheduled tasks and email server, I configured a notification email against a scheduled task and on run did not see it send. After reading, I found that this notification email only sends when a scheduled task fails. To me this was not intuitive. NX2 has helper text as follows ""The email address where a mail will be sent in case that task execution will fail"". I am not sure why this was not moved over (would have saved me time/confusion) so making ticket to do so. I did verify the mail does send when the task fails.",0.5 +"NEXUS-9486","11/25/2015 19:17:08","Last accessed not updating consistently","[~mprescott] noticed that raw hosted last accessed in the UI did not appear to be updating. He asked me to check. I noticed similar behavior but I did notice it updating sometimes. Mostly it seems to be updating once and then stop. I however noticed similar behavior with a maven pom so am not convinced it's specific to raw. In addition, what is displayed in the UI seems to match what is shown in the DB. Rather than delve further, on discussion with Michael, he believes it's worth filing and have someone investigate while tracing through the code. If I can provide further information/support please let me know. I did not back check older NX3 (or NX2) at this time. Debug was off during my testing.",0.5 +"NEXUS-9493","11/26/2015 00:24:40","NPM search does not find components with dash in name","When using the preconfigured npm search with e.g. coffee-script no results are returned even if coffee-script is available locally. In Maven search commons-io on the other hand works.",2 +"NEXUS-9500","12/02/2015 23:05:00","make capability validation message for URL type fields consistent and less confusing","Base URL capability has a validation message for the URL field ""must be a valid URL"" - rest of the site has 'This field should be a URL in the format ""http://www.example.com""'. I looked to make it consistent but couldn't find it in github so I am ticketing instead. I made this a bug rather than an improvement because I think the level of confusion is potentially high if you enter ""www.example.com"" and it asks for a ""valid URL"". I did not check older NX3 or NX2 at this time.",0.5 +"NEXUS-9502","12/03/2015 18:37:57","NuGet proxy repository responds with 502 status instead of 404 for missing content","Noticed this when I typed in the wrong version populating content into a nuget repo for testing. The code explicitly throws an IOException when remote content isn't found. I would (perhaps naively) expect that this would just result in a 404. Truncated exception from log shown below: {code} 2015-12-03 10:10:29,465-0800 WARN [qtp54656185-342] admin com.sonatype.nexus.repository.nuget.internal.proxy.NugetFeedFetcher - Status code 404 contacting https://www.nuget.org/api/v2/Packages(Id='jQuery',Version='7.0.4') 2015-12-03 10:10:29,467-0800 WARN [qtp54656185-342] admin com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyFacet - Failed to fetch: jQuery/7.0.4 java.io.IOException: Package content not found in remote repository at com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyFacet.fetch(NugetProxyFacet.java:72) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:169) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:48) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:41) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] {code} This was triggered with a request against the api for a version that does not exist: http://localhost:8081/repository/nuget.org-proxy/jQuery/7.1.4",0.5 +"NEXUS-9505","12/04/2015 21:23:07","NFC Duration of -1 cripples repository","1) Go to NX3, create or edit a proxy 2) Set the 'Not Found Cache TTL' to -1 3) Click Save Notice that the log fills up with continually repeating exceptions, and the repo appears to be in an unusable state: https://gist.githubusercontent.com/mrprescott/efd54cb2863acca1f358/raw/1566907249d4c8cfed747ecf846aa408b2d5f970/nfc_ttl_-1.txt",0.5 +"NEXUS-9523","12/09/2015 16:10:42","Starting to leave the browser with a dirty page but staying can break the UI","I noticed that if you can break the Nexus UI (no content or breadcrumbs show until browser refresh) by performing the following steps: 1) Start filling out a newly created scheduled task by selecting a task frequency 2) Go to close the browser. On prompt, choose to stay on page. 3) Navigate away from the page. On prompt, choose to discard changes. BUG: Subsequent UI breadcrumbs and page content is broken. This restores when you refresh the browser. See vid. As far as I can tell this is something specific to the Tasks and Task frequency field. I atttempted the same test in Capabilities and had no issue. I attempted the same test in Tasks but with a repository field (also a dropdown) and had no issue. Because of this and the workaround to refresh to fix, I am filing minor. Debug was off initially during these checks but I turned it on and saw no errors in the console. Also no errors in the log. I did not check older NX3 or NX2 at this time.",2 +"NEXUS-9541","12/16/2015 16:31:02","allow setting java.naming.referral for LDAP connections","Nexus 2.11.4-01 We're trying to force the referral setting of LDAP to 'ignore' for all connections instead of the default 'follow'. According to NEXUS-5870 we should be able to inject additional properties into the LDAP connection context by setting nexus.ldap.env. That works - *except* for referral. In org.sonatype.security.ldap.realms.DefaultLdapContextFactory.getSetupEnvrironment() You can see the additional properties are added just fine and then the referral setting is overwritten. Is there a way of setting this in the LDAP configuration? Thanks",1 +"NEXUS-9544","12/16/2015 19:52:30","Hang on analyzing stops all further analysis","While testing NEXUS-8239, I noticed (#6) that occasionally one of my repos would get ""stuck"" on ""Analyzing..."". Also all the healthcheck tasks end up ""Blocked"" so no further analysis of any type can be done. Workaround I've found is if you remove Healthcheck from repos, eventually it'll ""unlock"" and finish analyzing. [~alin] attempted a fix based around findings with nuget and asked me to recheck. I noticed this again (post-fix) with no nuget involved, just Maven. Attached is a support.zip. If there's anything else I can provide please let me know. I have not found a reproducable case for this yet but still seems an issue. Original #6 text: {quote} Joe: 6) Twice now, I've been hung at the ""Analyzing..."" state. I suspect there may be a conflict with having multiple repos analyzed at once. I don't have a repoducable scenario (yet). This may also be an issue with tasks conflicts that Tamas is working on however the quartz entries in the Nexus log shows everything waiting (while the UI shows everything as blocked). Hopefully can run it down. Alin: Accidentally I got the same state and looks like it happens when RHC task fails. E.g. I get now an ""java.lang.IllegalStateException: Missing: {attributes::checksum} sha1"" Looking into it Alin: I merged a fix related to nuget assets sha1, https://github.com/sonatype/nexus-internal/pull/385, so please retest if you still get stuck in ""Analysing..."" {quote}",1 +"NEXUS-9545","12/16/2015 20:31:57","concurrent requests to ruby proxy at /api/v1/dependencies resource using the same url can hang","Configure a rubygems.org proxy repository Send concurrent requests to this url. /nexus/content/repositories/rubygems.org/api/v1/dependencies?gems=gem_version,rake,nexus,gherkin,cucumber,bundler,qa_lib_store,qa_steps_support_jruby,qa_steps_files_jruby,qa_steps_remote_jruby,qa_steps_httpcalls_jruby,qa_lib_dbservices_jruby,qa_gridconfig_jruby - nexus sends outbound requests one at a time for the same url - most of these timeout after 30 seconds - client starts to get 503 and 500 responses for some requests - thread dumps show multiple threads waiting for uid locks The same test using Nexus 2.5 and OSS rubygems plugin worked fine in this scenario",1 +"NEXUS-9547","12/16/2015 21:26:11","Content type validation blocks some docker fetching","Looking at a support issue I attempted *docker pull 192.168.1.3:18079/ksdn117/test-page* (proxy pull) and got this: {code} ... b3e2623757ce: Error pulling dependent layers Error pulling image (latest) from 192.168.1.3:18079/ksdn117/test-page, HTTP code 500 {code} The below error was present in the logs. {quote} 2015-12-11 10:09:09,996-0500 WARN [qtp913947442-124] *UNKNOWN org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure org.sonatype.nexus.repository.InvalidContentException: Detected content type [text/html], but expected [application/json]: /v1/images/b3e2623757ce549a3898fe1b64a52be833fe93b95517e65a97f0913ec4060f7a/json.json at org.sonatype.nexus.repository.storage.DefaultContentValidator.determineContentType(DefaultContentValidator.java:95) [na:na] at org.sonatype.nexus.repository.docker.internal.DockerContentValidator.determineContentType(DockerContentValidator.java:61) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.determineContentType(StorageTxImpl.java:631) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.createBlob(StorageTxImpl.java:522) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.setBlob(StorageTxImpl.java:596) [na:na] at sun.reflect.GeneratedMethodAccessor93.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_60] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:267) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:59) [na:na] at com.sun.proxy.$Proxy153.setBlob(Unknown Source) [na:na] at org.sonatype.nexus.repository.docker.internal.DockerFacetUtils.saveAsset(DockerFacetUtils.java:303) [na:na] at org.sonatype.nexus.repository.docker.internal.DockerFacetUtils.saveAsset(DockerFacetUtils.java:292) [na:na] at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.doPutAsset(DockerProxyFacetImpl.java:471) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:54) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [na:na] at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.putLayerMetadata(DockerProxyFacetImpl.java:577) [na:na] at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.store(DockerProxyFacetImpl.java:187) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:171) [na:na] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:48) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at org.sonatype.nexus.repository.docker.internal.V1Handlers$_closure20.doCall(V1Handlers.groovy:296) [na:na] at sun.reflect.GeneratedMethodAccessor103.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_60] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy120.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at org.sonatype.nexus.repository.docker.internal.V1Handlers$_closure19.doCall(V1Handlers.groovy:268) [na:na] at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_60] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy120.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.partial.PartialFetchHandler.handle(PartialFetchHandler.java:58) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at org.sonatype.nexus.repository.docker.internal.V1Handlers$_closure12.doCall(V1Handlers.groovy:181) [na:na] at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_60] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy120.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at org.sonatype.nexus.repository.docker.internal.V1Handlers$_closure18.doCall(V1Handlers.groovy:248) [na:na] at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_60] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy120.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.negativecache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at org.sonatype.nexus.repository.docker.internal.V1Handlers$_closure17.doCall(V1Handlers.groovy:243) [na:na] at sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_60] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy120.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.b2015110601] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.b2015110601] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.b2015110601] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:101) [org.sonatype.nexus.core:3.0.0.b2015110601] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.b2015110601] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.5.v20151012] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.5.v20151012] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.5.v20151012] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.5.v20151012] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261) [org.eclipse.jetty.io:9.3.5.v20151012] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.5.v20151012] at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:192) [org.eclipse.jetty.io:9.3.5.v20151012] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261) [org.eclipse.jetty.io:9.3.5.v20151012] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.5.v20151012] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.5.v20151012] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.5.v20151012] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.5.v20151012] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.5.v20151012] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.5.v20151012] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60] {quote} All works with strict content type validation off. This is NOT the issue the user was seeing, however, does show a possible issue with content type validation and docker.",1 +"NEXUS-9551","12/18/2015 20:47:42","installing gems with long dependency chains can trigger IOException File name too long","Using bundler in particular, installing a gem through a rubygems proxy repository in Nexus can cause Nexus to return a 404 response and print java.io.IOException: File name too long in the logs. ",1 +"NEXUS-9559","12/24/2015 14:37:57","npm version not found results in error 500","Noticed that if you hit an npm component whose versions does not exist (cannot be found) you get the attached error 500. This is different than NuGet (for example) where you get an error 404 (as I expected). I asked [~cstamas] and he asked me to ticket as this is not expected behavior. Can reproduce fairly easily by creating an npm proxy (to npmjs.org) and hitting a component with a version that doesn't exist (example: http://localhost:8081/repository/npmproxy/npm/-/npm-18.1.25.tgz) There is an error in the nexus.log as well (below) however it appears appropriate (warning the package isn't found) to me. {quote} 2015-12-24 09:33:00,347-0500 WARN [qtp479482432-288] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure java.lang.RuntimeException: java.io.IOException: Could not find package npm version for npm-18.1.25.tgz at com.google.common.base.Throwables.propagate(Throwables.java:160) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.getUrl(NpmProxyFacetImpl.java:127) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:198) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:163) [na:na] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:48) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyRecipe$_closure1.doCall(NpmProxyRecipe.groovy:141) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [na:na] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [na:na] at com.sun.proxy.$Proxy157.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.partial.PartialFetchHandler.handle(PartialFetchHandler.java:58) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.negativecache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$1.handle(NpmHandlers.java:110) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:70) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:101) [org.sonatype.nexus.core:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.5.v20151012] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.5.v20151012] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.5.v20151012] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.5.v20151012] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261) [org.eclipse.jetty.io:9.3.5.v20151012] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.5.v20151012] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.5.v20151012] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.5.v20151012] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.5.v20151012] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.5.v20151012] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.5.v20151012] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] Caused by: java.io.IOException: Could not find package npm version for npm-18.1.25.tgz at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.retrievePackageVersionTx(NpmProxyFacetImpl.java:301) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:54) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.retrievePackageVersion(NpmProxyFacetImpl.java:285) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.getUrl(NpmProxyFacetImpl.java:123) [na:na] ... 116 common frames omitted {quote} I did not check older NX3 or NX2 at this time. Debug was off during this testing effort.",1 +"NEXUS-9572","01/04/2016 17:16:29","do not allow arbitrary http access through docker repository specific ports","If you configure a port on a docker repository, you can also access the rest of Nexus through this port, including the UI. You can also configure the port to be the same as an existing connector defined manually in jetty.xml. You cannot configure the port to be the same as another docker repository connector. Regardless, this is much more access than a docker specific repository port implies. Suggest we limit accessible URLs through a docker repository port to only those known to map correctly to docker repositories. Alternately, do we have a use case for allowing to use the same port as one configured in the jetty configuration files manually? The only benefit might be that one might want to reduce the ports to be managed through firewalls. However does this lead to potential exposure to URL conflicts with other parts of Nexus?",1 +"NEXUS-9573","01/04/2016 17:44:49","all proxied repository items should have ""remoteUrl"" attribute set","All the cached/proxied items in NX2 should have ""remoteUrl"" attribute set. Known affected formats so far: * npm This is the bug in ""alternative"" npm specific transport, that is used by NPM to circumvent some format peculiarities (and NX2 core deficiencies). Acceptance Criteria: * all formats should be reviewed (and fixed where needed) for lack of attribute",2 +"NEXUS-9599","01/05/2016 22:50:25","LDAP's Verify User Mapping shows badly formed results","Noticed that in Gnarly the ""Verify user mapping"" results from LDAP show results however, there's no modal title, columns or close button and the results are half off the screen and unscrollable to. You can however close the modal with the escape key as a workaround (though there's no workaround I see to seeing the full results or sorting). This behavior is specific to Gnarly as it works correctly in m6. I've included screens of both. [~fmilens] noted this was this way when he started work on NEXUS-9370. There were a couple LDAP fixes in Gnarly however none I saw/believe specific to this button/modal. Debug was off during this test. I cleared my browser cache before each attempt to be sure nothing odd was caching.",0.5 +"NEXUS-9605","01/07/2016 19:18:39","Task last run and last result not persisted correctly","The last run time of scheduled tasks is not persisted correctly. The symptom is that a task runs(starts) on a regular schedule ( ie. weekly) and may have a last run time that is much farther in the past than the actual last start of the task. h4. Expected When a task is started and then running while Nexus is stopped, then on restart - last run time shows when that task was last started - last result duration will be time of server shutdown ( or very close to it) minus (-) last start time - last result will NOT be ""Ok"" since the task was abruptly stopped while running by server shutdown. Error may not be good enough either. Need a state that suggests task was forcibly stopped, not by a request from the UI or REST call, but server shutdown, clean or otherwise.",2 +"NEXUS-9610","01/07/2016 22:11:29","Eliminate Ext JS tech debt","Things to address: * -Replace toolbar hack which renders the border in feature header- (implemented in migration2 branch) * -Use {{statics}} to manage modal sizes- (implemented in migration2 branch) * Prefer {{initComponent}} to class refs ([#451|https://github.com/sonatype/nexus-internal/pull/451]) (implemented in master)",1 +"NEXUS-9618","01/08/2016 20:12:54","rubygems proxy repository not found cache not consulted","Configure this: rubygems-group ( group repo ) - rubygems.org-proxy -> https://rubygems.org ( member ) Connect to nexus with JMX to monitor the path cache ( see attached ) Object Count attribute. Configure remote.storage.outbound logger to DEBUG and tail nexus.log. Request a non-existent gem file. curl -v -o /dev/null http://localhost:8081/nexus/content/groups/rubygems-group/gems/fake-5.0.1.gem Expected 404 response. Notice the path-cache Object Count is now 1. Delete the cache item to prove that was the path that was cached curl -v -o /dev/null -X DELETE http://localhost:8081/nexus/service/local/data_cache/repositories/rubygems.org/content/gems/fake-5.0.1.gem -u admin:admin123 Notice the Object Count is 0. Request the gem two more times. Notice the Object Count becomes 1 as expected. {noformat} jvm 1 | 2016-01-08 15:36:24,705-0400 DEBUG [qtp922056297-85] anonymous remote.storage.outbound - [rubygems.org] GET http://rubygems.org/gems/fake-5.0.1.gem jvm 1 | 2016-01-08 15:36:24,911-0400 DEBUG [qtp922056297-85] anonymous remote.storage.outbound - [rubygems.org] Following 302 redirect http://rubygems.org/gems/fake-5.0.1.gem -> http://rubygems.global.ssl.fastly.net/gems/fake-5.0.1.gem jvm 1 | 2016-01-08 15:36:25,082-0400 DEBUG [qtp922056297-85] anonymous remote.storage.outbound - [rubygems.org] GET http://rubygems.org/gems/fake-5.0.1.gem -> HTTP/1.1 404 Not Found; 377.2 ms jvm 1 | 2016-01-08 15:36:27,494-0400 DEBUG [qtp922056297-84] anonymous remote.storage.outbound - [rubygems.org] GET http://rubygems.org/gems/fake-5.0.1.gem jvm 1 | 2016-01-08 15:36:27,599-0400 DEBUG [qtp922056297-84] anonymous remote.storage.outbound - [rubygems.org] Following 302 redirect http://rubygems.org/gems/fake-5.0.1.gem -> http://rubygems.global.ssl.fastly.net/gems/fake-5.0.1.gem jvm 1 | 2016-01-08 15:36:27,659-0400 DEBUG [qtp922056297-84] anonymous remote.storage.outbound - [rubygems.org] GET http://rubygems.org/gems/fake-5.0.1.gem -> HTTP/1.1 404 Not Found; 165.0 ms {noformat} Notice in the nexus.log, nexus sends the request remote 2 times when only 1 time was expected. ---- Effectively this means the not-found cache for rubygems proxy repositories is used, but not consulted.",1 +"NEXUS-9634","01/12/2016 15:46:33","/service/local/staging/bulk/promote resource does not check drop privilege","h3. Problem If a user is not granted the Staging: Drop Repository privilege, they can still drop a repository upon release of that repository using the /service/local/staging/bulk/promote resource. h3. Reproduce Configure a user `sonatype` with UI Basic and a custom staging role: {noformat} sonatype default ui-basic custom-staging custom-staging custom-staging Staging without drop privilege 55 46 14 staging-admin-read staging-start staging-admin-stage staging-profile-repositories staging-rule-types staging-ruleset-read staging-admin-promote 1 repository-all staging-profile-read staging-promote 6 {noformat} The user can login to the UI and view the staging repository list. The Drop button is disabled, implying they do not have the drop permission. However the Release button is not disabled as expected. The Release confirmation dialog includes a checkmark to Automatically Drop a repository upon release. When selected, the repository is dropped upon release, despite the user not having Staging: Drop Repository privilege. h3. Expected The bulk/promote resource should only perform the release if the drop checkbox is not selected ( payload implies do not drop) when the user does not have permission to drop a repository. The UI should display a permission error. Keep in mind the maven staging plugin also uses this resource. ",0.5 +"NEXUS-9636","01/12/2016 18:27:37","revert Basic auth realm name change introduced in 2.12.0","The Nexus Basic Auth realm name changed in version 2.12.0 due to unintended branding changes. This could affect some use cases where the exact name of the realm was depended on, so we restored the original name to ""Sonatype Nexus Repository Manager"" Related issue: https://issues.sonatype.org/browse/OSSRH-19926",1 +"NEXUS-9637","01/12/2016 19:10:14","rubygems proxy repository does not respect Artifact Max Age for gem files","h3. Reproduce Configure the following: rubygems-group - rubygems-proxy ( -> http://rubygems.org ) rubygems-proxy is configured with Artifact Max Age: -1 Item Max Age: 1440 Configure remote.storage.outbound logger at DEBUG level. Request a gem file through the group found on rubygems.org curl -u admin:admin123 http://localhost:8081/nexus/content/repositories/rubygems-group/gems/spreadsheet-1.1.1.gem -o /dev/null -v This should return 200 response with correct content, and nexus should go remote since it does not have it cached yet. Confirm the file is now cached at sonatype-work/nexus/storage/rubygems-proxy/gems/s/spreadsheet-1.1.1.gem Make the same request again. Nexus goes remote again for the same file. h3. Expected Since Artifact Max Age is -1, and the gem is already cached, Nexus should not go remote again until the actual gem file itself is no longer in the proxy repository cache or the max age for the specific gem is expired. Nexus should always check local first and serve it if present in storage. Once found, it should not continue to check any other member repositories of a group for the same gem. Make sure Artifact Max Age works when the proxy is accessed directly also, or there is an equivalent request which requires resolution of the specific gem file requested. ",1 +"NEXUS-9640","01/14/2016 04:41:02","infinite timeout on sockets performing CONNECT tunneling through a HTTP Proxy server","h3. Problem Sockets which perform CONNECT tunneling have an infinite timeout. These sockets could be used whenever Nexus makes a secure TLS connection through a proxy server - for example certificate retriever, automatic routing, repository status checker, etc. https://en.wikipedia.org/wiki/HTTP_tunnel#HTTP_tunneling_without_using_CONNECT h3. Symptoms Thread dumps contain unexplained RUNNABLE threads stuck on socketRead which never go away. {noformat} proxy-3-thread-1 id=83 state=RUNNABLE (running in native) at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:170) at java.net.SocketInputStream.read(SocketInputStream.java:141) at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:136) at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:152) at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:270) at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140) at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57) at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:260) at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:161) at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:153) at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:271) at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123) at org.apache.http.impl.execchain.MainClientExec.createTunnelToTarget(MainClientExec.java:455) at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380) at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195) at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86) at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108) at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.doExecuteRequest(HttpClientRemoteStorage.java:569) at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.executeRequest(HttpClientRemoteStorage.java:521) at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.executeRequestAndRelease(HttpClientRemoteStorage.java:634) at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.checkRemoteAvailability(HttpClientRemoteStorage.java:371) at org.sonatype.nexus.proxy.storage.remote.AbstractHTTPRemoteRepositoryStorage.isReachable(AbstractHTTPRemoteRepositoryStorage.java:50) at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.isRemoteStorageReachable(AbstractProxyRepository.java:1679) at org.sonatype.nexus.proxy.repository.AbstractProxyRepository$RemoteStatusUpdateCallable.call(AbstractProxyRepository.java:1653) at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Locked synchronizers: count = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@38b38b36 {noformat} Alternative stack which one may see ( stepping through a debugger can prove the socket being used in this stack also has infinite timeout ). Note the call to 'upgrade' the connection: {noformat} proxy-3-thread-273 id=14969 state=RUNNABLE (running in native) at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:170) at java.net.SocketInputStream.read(SocketInputStream.java:141) at sun.security.ssl.InputRecord.readFully(InputRecord.java:465) at sun.security.ssl.InputRecord.read(InputRecord.java:503) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) - locked java.lang.Object@191ccd2e at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) at org.sonatype.nexus.apachehttpclient.NexusSSLConnectionSocketFactory.createLayeredSocket(NexusSSLConnectionSocketFactory.java:150) at org.apache.http.impl.conn.HttpClientConnectionOperator.upgrade(HttpClientConnectionOperator.java:175) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.upgrade(PoolingHttpClientConnectionManager.java:334) at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:398) at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195) at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86) at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108) at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.doExecuteRequest(HttpClientRemoteStorage.java:569) at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.executeRequest(HttpClientRemoteStorage.java:521) at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.executeRequestAndRelease(HttpClientRemoteStorage.java:634) at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.checkRemoteAvailability(HttpClientRemoteStorage.java:396) at org.sonatype.nexus.proxy.storage.remote.AbstractHTTPRemoteRepositoryStorage.isReachable(AbstractHTTPRemoteRepositoryStorage.java:50) at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.isRemoteStorageReachable(AbstractProxyRepository.java:1679) at org.sonatype.nexus.proxy.repository.AbstractProxyRepository$RemoteStatusUpdateCallable.call(AbstractProxyRepository.java:1653) at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Locked synchronizers: count = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@61e7f15c {noformat} h3. Reproduce - an auto-blocking enabled proxy repository with https remote url - an HTTP proxy server in Nexus which handles CONNECT tunnel upgrade of the proxy server connection to the secure TLS remote url ( proxy servers must support this if they are to be used with Nexus ) - the HTTP Proxy server hangs on the CONNECT/initial handshake Simple reproduce is configure Charles Proxy throttling to have Download and Upload speeds of zero ( 0 ). Another alternative is have something listening on the proxy server port which never responds to CONNECT. For example use [bane|https://github.com/danielwellman/bane]. {noformat} bane -a 8888 NeverRespond {noformat} Then refresh the Nexus repository list or reboot Nexus. This causes a status check and a CONNECT which hangs forever. {noformat} jvm 1 | 2016-01-14 00:26:49,569-0400 INFO [proxy-3-thread-1] *SYSTEM org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage - Initializing remote transport for proxy repository ""Central"" [id=central]... jvm 1 | 2016-01-14 00:26:49,576-0400 INFO [RepositoryStatusChecker-central] *SYSTEM org.sonatype.nexus.proxy.maven.maven2.M2Repository-central - Next attempt to auto-unblock the ""Central"" (id=central) repository by checking its remote peer health will occur in 5 minutes. jvm 1 | 2016-01-14 00:26:49,582-0400 DEBUG [proxy-3-thread-1] *SYSTEM org.sonatype.nexus.apachehttpclient.Hc4ProviderImpl - http proxy setup with host 'localhost' jvm 1 | 2016-01-14 00:26:49,607-0400 DEBUG [proxy-3-thread-1] *SYSTEM com.sonatype.central.secure.nexus.plugin.internal.SecureCentralServiceImpl - Base URI: https://secure.central.sonatype.com:443 jvm 1 | 2016-01-14 00:26:49,607-0400 DEBUG [proxy-3-thread-1] *SYSTEM com.sonatype.central.secure.nexus.plugin.internal.SecureCentralServiceImpl - Service URI: https://secure.central.sonatype.com:443/service jvm 1 | 2016-01-14 00:26:49,609-0400 DEBUG [proxy-3-thread-1] *SYSTEM remote.storage.outbound - [central] HEAD https://repo1.maven.org/maven2/ jvm 1 | 2016-01-14 00:26:49,609-0400 DEBUG [proxy-3-thread-1] *SYSTEM org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage - Invoking HTTP HEAD method against remote location https://repo1.maven.org/maven2/ jvm 1 | 2016-01-14 00:26:49,619-0400 DEBUG [proxy-3-thread-1] *SYSTEM org.apache.http.client.protocol.RequestAddCookies - CookieSpec selected: ignoreCookies jvm 1 | 2016-01-14 00:26:49,621-0400 DEBUG [proxy-3-thread-1] *SYSTEM org.apache.http.client.protocol.RequestAuthCache - Auth cache not set in the context jvm 1 | 2016-01-14 00:26:49,622-0400 DEBUG [proxy-3-thread-1] *SYSTEM org.sonatype.nexus.apachehttpclient.Hc4ProviderImpl$ManagedClientConnectionManager - Connection request: [route: {tls}->http://localhost:8888->https://repo1.maven.org:443][total kept alive: 0; route allocated: 0 of 20; total allocated: 0 of 200] jvm 1 | 2016-01-14 00:26:49,634-0400 DEBUG [proxy-3-thread-1] *SYSTEM org.sonatype.nexus.apachehttpclient.Hc4ProviderImpl$ManagedClientConnectionManager - Connection leased: [id: 0][route: {tls}->http://localhost:8888->https://repo1.maven.org:443][total kept alive: 0; route allocated: 1 of 20; total allocated: 1 of 200] jvm 1 | 2016-01-14 00:26:49,635-0400 DEBUG [proxy-3-thread-1] *SYSTEM org.apache.http.impl.execchain.MainClientExec - Opening connection {tls}->http://localhost:8888->https://repo1.maven.org:443 jvm 1 | 2016-01-14 00:26:49,637-0400 DEBUG [proxy-3-thread-1] *SYSTEM org.apache.http.impl.conn.HttpClientConnectionOperator - Connecting to localhost/127.0.0.1:8888 jvm 1 | 2016-01-14 00:26:49,638-0400 DEBUG [proxy-3-thread-1] *SYSTEM org.apache.http.impl.conn.HttpClientConnectionOperator - Connection established 127.0.0.1:58576<->127.0.0.1:8888 jvm 1 | 2016-01-14 00:26:49,640-0400 DEBUG [proxy-3-thread-1] *SYSTEM org.apache.http.headers - http-outgoing-0 >> CONNECT repo1.maven.org:443 HTTP/1.1 jvm 1 | 2016-01-14 00:26:49,640-0400 DEBUG [proxy-3-thread-1] *SYSTEM org.apache.http.headers - http-outgoing-0 >> User-Agent: Nexus/2.12.0-01 (PRO; Mac OS X; 10.11.2; x86_64; 1.8.0_45) jvm 1 | 2016-01-14 00:26:49,640-0400 DEBUG [proxy-3-thread-1] *SYSTEM org.apache.http.headers - http-outgoing-0 >> Host: repo1.maven.org jvm 1 | 2016-01-14 00:26:49,640-0400 DEBUG [proxy-3-thread-1] *SYSTEM org.apache.http.headers - http-outgoing-0 >> Proxy-Connection: Keep-Alive {noformat} h3. Supplemental Connections which do not use CONNECT ( plain http urls ) but attempt to use the Nexus HTTP proxy server which does not respond do have their socket timeout set correctly and respect the standard retries and connect timeout settings in Nexus. h3. Workaround Use the plain HTTP remote url of the target repository if one is available. This bypasses CONNECT and the problem. Do not configure your HTTP proxy or firewall to hang socket connections. ",2 +"NEXUS-9652","01/15/2016 16:41:09","xml:base URL in proxied yum metadata files is not rewritten","The ""base:xml"" URL's in proxied yum metadata (repomd/repodata.xml) are no longer rewritten. This is a regression from 2.11.0. Reproduce steps: # Set up 2.9.1 with base URL forced (this is needed to get base:url set in the metadata) # Add a hosted yum repository into 2.9.1, populate it with something. # Now set up 2.12.0 with a yum enabled proxy. Observe that proxied metadata has xml:base URL of the remote: {code:XML} 1452869080 bdc5e634c890e48f3e30ed99ce39ec19e93c057be28b391a9b786a527e00270d 88e9e1509ddbe17b977d9a3e6da66b6ae76717ac8c4aed248220e1fb5908f304 1452869080 429 1482 {code} This is a regression, in NEXUS-6702 a fix was put in place to remove the xml:base URL from the proxied repomd.xml file. Note that this will not just affect proxies of older Nexus versions, any remote metadata that has ""base:xml"" URL set in it's metadata will be affected.",1 +"NEXUS-9664","01/15/2016 22:39:37","Docker usage with self signed certs","We have users struggling with this. Usage of insecure config parameter and so on should at least be mentioned. ",1 +"NEXUS-9670","01/18/2016 19:39:25","Make ESC work in modal dialogs","Modal dialogs can’t be quit by hitting ESC when the “x” icon is not shown. This is the default behavior for most of our modals, and should not be due to accessibility/usability reasons. From Jason: I belive we should use the window.closable:true feature to gain ESC functionality at the expense of the additional (x). I have no issue with the 2 buttons which do the same thing in this case. I prefer it actually. But abs want to ensure that ESC works properly and to hack in our own impl for this would be bloated waste and would rely on private internals of Ext.window.Window which could cause problems for any upgrade. Acceptance: * Modal dialogs can be quit with the ESC button * Choosing to quit a dialog should result in no state change to the system. ** It is essentially the same as Cancel",2 +"NEXUS-9705","01/21/2016 00:50:18","expire cache task on rubygems repositories may lead to /api/v1/dependecies api performance degradation","h3. Problem Expiring Cache on a rubygems proxy repository can cause Nexus to make a single HEAD and GET request for every gem and dependency gem referenced by a single request listing gems to */api/v1/dependencies?gems=*. Before the Expire cache task is run, Nexus will not do this. Instead it passes the request to the remote as received. For example: - request /api/v1/dependencies?gems=foo,bar - Nexus passes this single request as is, to any remote repository it is proxying - Expire Cache on the Nexus repository - sending the same request to Nexus causes Nexus to send both a HEAD and a GET as follows: HEAD /api/v1/dependencies?gems=foo GET /api/v1/dependencies?gems=foo HEAD /api/v1/dependencies?gems=bar GET /api/v1/dependencies?gems=bar For long lists of gems, the many additional outbound requests can lead to a significant drop in response time as compared to when the single request is passed through to the remote 'as is'. I've attached a jmeter test one can use the reproduce the issue. The attachment also contains a nexus log, conf directory, and csv format of performance data before and after expiring cache. The key log lines in the attached nexus.log are as follows: {noformat} START 2016-01-20 16:52:30,566-0400 DEBUG [qtp699358581-561] org.eclipse.jetty.server.Server - REQUEST /nexus/content/groups/rubygems.org-group/api/v1/dependencies on AsyncHttpConnection@4b6fa6fb,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=-5,l=34,c=0},r=1 STOP 2016-01-20 16:56:17,246-0400 DEBUG [qtp699358581-556] org.eclipse.jetty.server.Server - RESPONSE /nexus/content/groups/rubygems.org-group/api/v1/dependencies 200 handled=true EXPIRE CACHE TASK RUN TEST RUN 2 START 2016-01-20 16:59:38,230-0400 DEBUG [qtp699358581-561] org.eclipse.jetty.server.Server - REQUEST /nexus/content/groups/rubygems.org-group/api/v1/dependencies on AsyncHttpConnection@25b9627a,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=-5,l=34,c=0},r=1 TEST RUN 2 STOP 2016-01-20 17:06:11,864-0400 DEBUG [qtp699358581-265] org.eclipse.jetty.server.Server - RESPONSE /nexus/content/groups/rubygems.org-group/api/v1/dependencies 200 handled=true {noformat} As you can see, it takes 3m47s for the first run, the second run takes 6m33 seconds for the same set of 20 requests repeated 10 times.",1 +"NEXUS-9717","01/22/2016 19:51:05","NuGet custom search shows no results if you come to a custom search with results","Just noticed that my custom nuget search had no results, despite the fact I had uploaded components earlier. I was able to repro this behavior by coming into the custom nuget search from another custom search that had results. If you enter the custom search from a fresh page load or from another custom search with no results everything displays correctly. See attached vid. I did not test older versions of NX3 at this time nor did I check NX2.",1 +"NEXUS-9730","01/25/2016 18:21:04","licensing UI should show distinction between recent connections and total licensed users","We believe that there is some confusion in the field introduced by the Licensed Connections: field in the Licensing screen of NX2. We license by Users even though we provide a connection count and report as a mechanism for judging compliance. Current Screen: !https://sonatype.aha.io:443/attachments/token/2e8f7e1177bda3609e23501d1fe46c0d219dd4b663ea3f7e142b5d7b3785e56c! Acceptance Criteria: # Split this into two fields: ## Licensed Users ### ""1000 Licensed Users"" ## Connections ### ""X Connections""",1 +"NEXUS-9739","01/26/2016 21:53:01","Logging creation message box not fully displayed","Noticed that when creating a logger the created message box does not show the right border or the close X as the other creation (and deletion, and saving, etc) message boxes do. I find it unlikely this is intentionally inconsistent because even deletion on the same page shows this border/X. Filing for eventual investigation. See attached. NOTE: Screen is NOT cutoff. I did not check older NX3 at this time. This does not affect NX2 (checked 2.12.0-01). Debug was off during this check. I also noted this does not happen with Tasks creation (same build).",2 +"NEXUS-9741","01/27/2016 19:37:55","invalid npm search results in 404 error page rather than a handled error","[~jyoung] noticed in NX3 when you search for an unknown component it returns our 404 html rather than the handled error. Example of current: {code} npm install asdfasdfasdfasdfasdfasdf npm ERR! registry error parsing json npm ERR! Darwin 15.0.0 npm ERR! argv ""node"" ""/usr/local/bin/npm"" ""install"" ""asdfasdfasdfasdfasdfasdf"" npm ERR! node v0.12.4 npm ERR! npm v3.5.3 npm ERR! Unexpected token < npm ERR! npm ERR! npm ERR! 404 - Nexus Repository Manager npm ERR! npm ERR! npm ERR! npm ERR! npm ERR! npm ERR! npm ERR! npm ERR! npm ERR!
npm ERR! npm ERR! npm ERR! Nexus Repository Manager npm ERR! npm ERR! PRO 3.0.0-SNAPSHOT npm ERR!
npm ERR! npm ERR!
npm ERR!
npm ERR! npm ERR! Error 404 npm ERR! Not Found npm ERR!
npm ERR!
npm ERR!
npm ERR! Not Found npm ERR!
npm ERR!
npm ERR!
npm ERR! npm ERR! npm ERR! npm ERR! npm ERR! npm ERR! If you need help, you may report this error at: npm ERR! npm ERR! Please include the following file with any support request: npm ERR! /Users/null/sonatype/insight-brain/insight-brain-service/npm-debug.log {code} Example of expected: {code} npm install asdfasdfasdfasdfasdfasdf npm ERR! Darwin 15.0.0 npm ERR! argv ""node"" ""/usr/local/bin/npm"" ""install"" ""asdfasdfasdfasdfasdfasdf"" npm ERR! node v0.12.4 npm ERR! npm v3.5.3 npm ERR! code E404 npm ERR! 404 Package '@foo/bar' not found : repository npm ERR! 404 npm ERR! 404 'repository' is not in the npm registry. npm ERR! 404 You should bug the author to publish it (or use the name yourself!) npm ERR! 404 npm ERR! 404 Note that you can also install from a npm ERR! 404 tarball, folder, http url, or git url. npm ERR! Please include the following file with any support request: npm ERR! /Users/null/sonatype/insight-brain/insight-brain-service/npm-debug.log {code} After checks with [~cstamas] and [~jhesse], he asked me to file if I saw the same (which I do). I did not back check older versions of NX3, but I recall seeing this for a while and just assumed it was as it was supposed to be. Might be we deployed this way. I did not check NX2 at this time.",1 +"NEXUS-9745","01/28/2016 20:59:02","URL hostname displayed in repository list cannot be influenced by incoming HTTP headers","h3. Problem Login to Nexus 3 at a host name other than localhost. The URL column always lists a hostname matching the hostname that the internal host IP resolves to. In some cases this is literally the IP address that Jetty is listening on, in most cases this is literally 'localhost'. The point is that the host name does not match the Host headers for the inbound requests rendering the UI. This means that X-Forwarded-Host values and Host header values have no influence over the URL hostname, making copying and using the URL fundamentally useless for real use cases such as using it with tools. h3. Expected Nexus should render the URL with the hostname/IP address being used during access. Nexus should not render a URL that has no useful purpose to an end user.",2 +"NEXUS-9754","02/02/2016 00:26:34","External Realm (LDAP, Crowd) cache duration setting","*Background* NX2 allows for the configuration of the LDAP query cache duration (as per http://books.sonatype.com/nexus-book/reference/ldap-sect-enterprise.html). This is pretty important to control the impact of a busy repo manager onto the LDAP server. The NX3 apparently does have cache support, but lack the ability to control the duration. *Acceptance* * NX3 admins can configure the LDAP query cache duration ** *REFINE* the definition of this field - what zero or -1 means, for instance * The 2x-3x upgrade process brings this setting over from NX2",3 +"NEXUS-9770","02/10/2016 11:53:33","""User not found"" warning on assign roles to LDAP users ","When trying to assign a role to a ldap user (ldap2), a warning is given stating that ""User (ldap2) not found"", but also states that role mapping were updated. Moving to another page, you have to discard the change, but when you go back to that ldap users setting, you can see that the role was assigned.",1 +"NEXUS-9774","02/10/2016 16:50:27","UI javascript files are not compressed/minimized","h3. Problem Noticed all the Javascript files that are requested using the UI ( ExtJS) are not of the compressed/condensed form in 2.12.0-01 - previous releases had these compressed to improve UI loading times. h3. Expected Javascript files for the UI should be minimized to improve loading times/reduce bandwidth",0.5 +"NEXUS-9776","02/10/2016 21:12:11","LDAP user profile fields are editable (they shouldn't be)","The fields in an LDAP user's profile n Nexus 3 are all editable, and the save button is enabled. This shouldn't be the case, LDAP user information is read only. This was a mapped external user.",1 +"NEXUS-9785","02/11/2016 19:27:46","Nexus startup no longer logs the edition","Nexus had a single log line you could grep for Nexus startup AND determine the edition being started. OSS {noformat} jvm 1 | Initializing Sonatype Nexus 2.11.4-01 {noformat} PRO {noformat} jvm 1 | Initializing Sonatype Nexus Professional 2.11.4-01 {noformat} Now the edition is no longer present and there is no simple way to determine which edition of Nexus the log is from. In 2.12.0-01, both editions print this: {noformat} jvm 1 | Initializing Nexus Repository Manager 2.12.0-01 {noformat} h3. Expected Support staff need a way to quickly determine the edition being used only based on a single line of the log file. When this is especially important is during startup where errors may prevent getting a complete support bundle. h3. Workarounds - look at the plugins being loaded ( one per plugin) - from the reduced number of these log lines, one can guess that OSS is being used. - grep for {{org.sonatype.nexus.bootstrap.ConfigurationBuilder - nexus-app}} and look at the app directory - the path printed at that line may include something like nexus-2.12.0-01-bundle instead of nexus-professional-2.12.0-01-bundle h3. Other Ideas If the new line format must be kept, add a new log line with the text ""Nexus Pro"" so that our old method of grepping for edition can work.",0.5 +"NEXUS-9786","02/12/2016 08:57:12","IllegalArgumentException Tar does not contains /package.json rebuilding metadata for some npm packages","I have a pair of npm repository. One of them is a proxy repo to http://registry.npmjs.org Other is a hosted repo, that is a mirror of the first. Artifacts from first repo is copying to the second. And than I build metadata on second hosted repository I see error, that some artifact Tar does not contains /package.json (see error.txt attach) What else, if I unpack a pair of artifact, I can see that they have different structures. ftp-0.3.6.tgz - I can see on hosted repository, ftp-0.3.9.tgz - I couldn't see and have error 2016-02-12 11:14:06 INFO [ool-1-thread-13] - com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor - Failed to extract or malformed package.json from npmjs:/ftp/-/ftp-0.3.9.tgz {noformat} 2016-02-12 11:14:06 INFO [ool-1-thread-13] - com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor - Failed to extract or malformed package.json from npmjs:/ftp/-/ftp-0.3.7.tgz java.lang.IllegalArgumentException: Tar does not contains /package.json? at com.google.common.base.Preconditions.checkArgument(Preconditions.java:148) ~[guava-16.0.1.jar:na] at com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor.extractPackageJson(RecreateMetadataWalkerProcessor.java:189) ~[na:na] at com.bolyuba.nexus.plugin.npm.hosted.RecreateMetadataWalkerProcessor.onCollectionExit(RecreateMetadataWalkerProcessor.java:112) ~[na:na] at org.sonatype.nexus.proxy.walker.DefaultWalker.onCollectionExit(DefaultWalker.java:325) [nexus-core-2.12.0-01.jar:2.12.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:226) [nexus-core-2.12.0-01.jar:2.12.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.12.0-01.jar:2.12.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walkRecursive(DefaultWalker.java:209) [nexus-core-2.12.0-01.jar:2.12.0-01] at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:89) [nexus-core-2.12.0-01.jar:2.12.0-01] at com.bolyuba.nexus.plugin.npm.hosted.DefaultNpmHostedRepository.recreateNpmMetadata(DefaultNpmHostedRepository.java:109) [nexus-npm-repository-plugin-2.12.0-01/:na] at com.bolyuba.nexus.plugin.npm.task.NpmHostedMetadataRebuildTask.doExecute(NpmHostedMetadataRebuildTask.java:50) [nexus-npm-repository-plugin-2.12.0-01/:na] {noformat}",1 +"NEXUS-9787","02/12/2016 12:46:55","Exception installing JNA native bundle on Windows 2012","http://stackoverflow.com/questions/35163442/cannot-run-sonatype-nexus-repository-manager-3-0-on-windows-2012 {code} ERROR: Bundle com.sun.jna [5] Error starting mvn:net.java.dev.jna/jna/4.0.0 (org.osgi.framework.BundleException: Unable to resolve com.sun.jna [5](R 5.0): missing requirement [com.sun.jna [5](R 5.0)] osgi.native; (|(&(osgi.native.osname~=win32)(osgi.native.processor~=x86))(& ... ... ... ... (osgi.native.processor~=ppc))))] at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111) at org.apache.felix.framework.Felix.startBundle(Felix.java:2117) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) at java.lang.Thread.run(Unknown Source) {code}",0.5 +"NEXUS-9788","02/12/2016 17:52:50","case insensitive matched userids do not map assigned roles","Per NEXUS-4115, Nexus needs to allow case insensitive userid matching. There is a bug in nexus 3 LDAP user role mapping where this fails. Create an LDAP configuration as in the attached screenshots and map an LDAP user with 'test0002' user id. Assign the user the nx-admin role. You can successfully authenticate with this user as expected with *test0002*, *TEST0002*, or *tEsT002*, however the roles are not mapped correctly unless you use the exact case userid that was mapped `test0002`. This results in being able to signin into the UI using any case, but not seeing the Administration cog or getting any admin privileges unless using an exact case match to *test0002*. h3. Expected Correctly map all roles to a successfully authenticated user.",1 +"NEXUS-9790","02/16/2016 12:55:37","REST client JerseyArtifactMaven does not properly handle packaging parameter","https://github.com/sonatype/nexus-public/pull/1 The packaging parameter is populated with the version currently. This looks like a typo. Unsure of where the client code is on master, but this is observed in nexus 2.x for the {{nexus-client-core}} {{org/sonatype/nexus/client/internal/rest/jersey/subsystem/JerseyArtifactMaven.java}}",0.5 +"NEXUS-9838","02/18/2016 03:53:06","Invalid scope specification for Docker hub authentication","*Description* ---- The Docker proxy recipe for Docker hub may perform a pull using the v1 API for the registry, but not v2. The basis for this following explanation is the [Docker Registry v2 authentication via central service|https://docs.docker.com/registry/spec/auth/token/] and [Docker Registry v2 Bearer token specification|https://docs.docker.com/registry/spec/auth/jwt/]. When attempt to perform a pull from an official library {code:bash} $ docker pull centos:5 {code} The following log entries are produced (with some information not included) {quote} 2016-02-17 19:40:27,269-0700 Fetching: GET https://registry-1.docker.io/v2/centos/manifests/5 HTTP/1.1 2016-02-17 19:40:28,034-0700 Fetching: GET https://auth.docker.io/token?service=registry.docker.io&scope=repository:centos:pull HTTP/1.1 2016-02-17 19:40:28,482-0700 Response: HttpResponseProxy{ HTTP/1.1 200 OK [Content-Type: application/json, Date: Thu,18 Feb 2016 02:40:28 GMT, Content-Length: 1358, Strict-Transport-Security: max-age=31536000] ResponseEntityProxy{[Content-Type: application/json,Content-Length: 1358,Chunked: false]}} 2016-02-17 19:40:28,628-0700 Error: GET /v2/centos/manifests/5: 401 - ... access to the requested resource is not authorized {quote} When the same sequence is performed manually, the result, obviously, remains the same. When authenticating anonymously the following access is included in the resultant JWT token {code:json} { ""access"": [] } {code} The request that should be made is the following {quote} https://auth.docker.io/token?service=registry.docker.io&scope=repository:library/centos:pull {quote} Notice the inclusion of the library and the result when the token is requested is {code:json} { ""access"": [ { ""type"": ""repository"", ""name"": ""library/centos"", ""actions"": [ ""pull"" ] } ] } {code} The request for the manifest should also include library {quote} GET /v2/library/centos/manifests/5 {quote} The documentation for 3.0 alludes to the library in _section 9.10. Pulling Images_. However, the examples do not include the library and, when not included, the application, as it should, reverts to v1 and produces the following warning {quote} $ docker pull private-registry:18444/centos:5 ... private-registry:18444/centos: this image was pulled from a legacy registry. Important: This registry version will not be supported in future versions of docker. {quote} *Suggested Actions* ---- In order to avoid confusion * the documentation should be updated to explain the need to include the library registry * the code should be updated to include library when not specified in the pull request *Workaround* ---- In order to avoid falling back to v1 and the warning message, include the library when needed. {quote} $ docker pull private-registry:18444/library/centos:5 {quote}",3 +"NEXUS-9841","02/18/2016 15:02:34","Pre-defined central proxy has incorrect maximum component age","The bundled/pre-defined maven proxy for Maven central has Maximum Component age configured to 1440. But the help text says that ""release repositories should use -1"". Maven central is a release repository and should then use -1 and not 1440.",0.5 +"NEXUS-9842","02/18/2016 16:15:23","Some fields allow adding but not removal via keyboard","I noticed recently, that on fields which are for numbers that have arrows to increase or decrease, that you can add numbers to them via keyboard but you cannot remove them via delete. So, in attached screen (for example) I can make Connection/Socket timeout equal to 2 by typing 2 into the field. I can subsequently make it 20 by adding a 0. But I cannot make it 2 again by deleting the 0. If you do this, nothing happens. Workaround is to use the arrow keys which can be annoying to impossible with bigger numbers (like docker port). You can now also workaround using provisional scripting. ADDENDUM: It was noticed while this was in progress you can also workaround this issue by highlighting the number and overwriting it. I checked m6 and this does not occur there so I believe recent regression. I did not check m7 or older NX3 at this time. I also did not check NX2 at this time. Debug was off during this test.",0.5 +"NEXUS-9843","02/19/2016 12:41:29","improve logging when a retry is made in response to remote socket exceptions","I have latest Nexus OSS version 2.12.0-01. It seems that connection reset during download causing problem. Re-try is not happing. This can be tested with Smartbearsoftware (Soapui) Maven repository http://smartbearsoftware.com/repository/maven2/ When I try to download this file with browser through Nexus OSS server and connection reset is received from smartbearsoftware url, Nexus does not re-try (for example like Chrome browser or wget works): http://smartbearsoftware.com/repository/maven2/com/smartbear/soapui/soapui/5.1.0/soapui-5.1.0.jar",0.5 +"NEXUS-9844","02/19/2016 15:50:37","Wrong max component age pre-set for release Maven proxy","When creating a Maven Proxy repository it is set as release type by default. However, max component age is then pre-set to 1440 but should be -1 according to the help text. I think that the Max component age should be set automatically to the recommended value when selecting either release (-1) or snapshot (1440). Not sure how to handle mixed. If not I suspect that a lot of people will have a not-so-good value here. * If the user enters a value manually, then changing the version policy should not override a value they've already entered.",0.5 +"NEXUS-9847","02/22/2016 21:07:29","Content validation fails when pushing images from Docker 1.8.2 on RHEL/CentOS 7","Pushing images from Docker 1.8.2 into Nexus 3.0m7 fails with a content validation error. Disabling file content validation seems to fix this problem. I've captured this in a Charles Proxy session, output is attached. ",2 +"NEXUS-9853","02/23/2016 18:07:37","Creating a second ""duplicate"" blobstore errors and deletes the path","While testing the new provisioning API, I created a blobstore for a second time in a test to make sure updates could not be made. Script was: {code} blobStore.createFileBlobStore('test6','/Users/jtom/Documents/Work/temp') {code} The second time I ran this it gave the below error. In addition to this, I noticed that the location I gave /Users/jtom/Documents/Work/temp was deleted (folder and contents). The error didn't concern me as much as the deletion, which caused a bunch of test/temp data to be removed. In a real world scenario, it seems possible to accidentially delete your entire blobstore this way. This occurs if you do this from the UI as well as if you do this from the provisioning script. In the event you do this, you also see an error on the screen. I did not include this below but can if you like. I did not check this in older versions of NX3. Blobstores did not exist in NX2 so there's no check there. Note, you MUST use the same name and location. If you use a distinct name, no deletion/error occurs. Please be very careful reproing/testing this and make sure you don't care about the contents of whatever path you use. Luckily I didn't do /Users/jtom/ or something more broad spanning. Scary stuff. {quote} 2016-02-23 13:04:56,246-0500 ERROR [Karaf local console user karaf] org.apache.karaf.shell.support.ShellUtil - Exception caught while executing command javax.script.ScriptException: javax.script.ScriptException: com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record repository_blobstore{name:test6,type:File,attributes:[1]}: found duplicated key 'test6' in index 'repository_blobstore_name_idx' previously assigned to the record #20:6 RID=#20:6 at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:130) [na:na] at org.sonatype.nexus.internal.script.ScriptServiceImpl.eval(ScriptServiceImpl.java:153) [na:na] at org.sonatype.nexus.common.script.ScriptService$eval$1.call(Unknown Source) [na:na] at org.sonatype.nexus.internal.script.ScriptAction.execute(ScriptAction.groovy:119) [na:na] at org.apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:83) [na:na] at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:67) [na:na] at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:87) [na:na] at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:480) [na:na] at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:406) [na:na] at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) [na:na] at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:182) [na:na] at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:119) [na:na] at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:94) [na:na] at org.apache.karaf.shell.impl.console.ConsoleSessionImpl.run(ConsoleSessionImpl.java:270) [na:na] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] Caused by: javax.script.ScriptException: com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record repository_blobstore{name:test6,type:File,attributes:[1]}: found duplicated key 'test6' in index 'repository_blobstore_name_idx' previously assigned to the record #20:6 RID=#20:6 at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:326) [na:na] at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:124) [na:na] ... 14 common frames omitted Caused by: com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record repository_blobstore{name:test6,type:File,attributes:[1]}: found duplicated key 'test6' in index 'repository_blobstore_name_idx' previously assigned to the record #20:6 at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.checkEntry(OIndexTxAwareOneValue.java:224) [na:na] at com.orientechnologies.orient.core.index.OClassIndexManager.checkIndexedPropertiesOnCreation(OClassIndexManager.java:341) [na:na] at com.orientechnologies.orient.core.index.OClassIndexManager.checkIndexes(OClassIndexManager.java:592) [na:na] at com.orientechnologies.orient.core.index.OClassIndexManager.onRecordBeforeCreate(OClassIndexManager.java:410) [na:na] at com.orientechnologies.orient.core.hook.ODocumentHookAbstract.onTrigger(ODocumentHookAbstract.java:226) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.callbackHooks(ODatabaseDocumentTx.java:1069) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeSaveRecord(ODatabaseDocumentTx.java:1966) [na:na] at com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:159) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2568) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:121) [na:na] at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1768) [na:na] at com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1759) [na:na] at org.sonatype.nexus.orient.entity.EntityAdapter.writeEntity(EntityAdapter.java:187) [na:na] at org.sonatype.nexus.orient.entity.EntityAdapter.addEntity(EntityAdapter.java:215) [na:na] at org.sonatype.nexus.internal.blobstore.BlobStoreConfigurationStoreImpl.create(BlobStoreConfigurationStoreImpl.java:82) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.internal.blobstore.BlobStoreManagerImpl.create(BlobStoreManagerImpl.java:139) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.blobstore.api.BlobStoreManager$create$6.call(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [na:na] at org.sonatype.nexus.internal.provisioning.BlobStoreApiImpl.createFileBlobStore(BlobStoreApiImpl.groovy:40) [na:na] at org.sonatype.nexus.BlobStoreApi$createFileBlobStore.call(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) [na:na] at Script34.run(Script34.groovy:10) [na:na] at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:323) [na:na] ... 15 common frames omitted {color:red}Error executing command: javax.script.ScriptException: com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record repository_blobstore{name:test6,type:File,attributes:[1]}: found duplicated key 'test6' in index 'repository_blobstore_name_idx' previously assigned to the record #20:6 RID=#20:6{color} {quote}",1 +"NEXUS-9856","02/25/2016 08:14:45","running rebuild npm hosted metadata scheduled task can change repository value","I make several scheduled task with type Rebuild hosted npm metadata/ Choose different repository on them. Run one of tasks. I see that Repository parameters is change in all Rebuild hosted npm metadata tasks and value of Repository in all tasks is a value from last run schedule. ",0.5 +"NEXUS-9862","02/25/2016 21:10:02","support npm dist-tag command","*Acceptance* * NXRM supports {{npm dist-tag add}}, {{npm dist-tag ls}}, {{npm dist-tag rm}} * A user can add multiple tags to a package * A user can install by tag (with 'latest' being the default) * in general, this command behaves as described in https://docs.npmjs.com/cli/dist-tag * npm dist-tag ls should work against proxy, hosted and group repositories. * npm dist-tag add, rm should work against hosted repositories.",5 +"NEXUS-9863","02/25/2016 23:57:22","Change order of LDAP connections does not refresh list","Follow these steps to replicate: - Create ldap configuration A, it will have order value of 1 - Create LDAP configuration B, it will have order value of 2 - Press 'Change order' button - in the dialog change it so that B is above A (B has value 1, A value 2) - Press save Observe how the order in the list is NOT changed. Now press the refresh icon in the UI nav bar. The order is changed to the correct value.",0.5 +"NEXUS-9865","02/26/2016 14:29:39","InvalidPathException prevents installing gems when Nexus is running on Windows","Install Nexus 2.12.0-01 on Windows. [Install Nexus 2.12.0-01 rubygems rollup patch.|https://support.sonatype.com/hc/en-us/articles/216185198-Nexus-Repository-Manager-2-12-0-01-RubyGems-plugin-rollup-patch] Create a Rubygems proxy repo to https://rubygems.org Create a Rubygems group repo with the proxy repo as member. Install Rubygems on Windows. Add the group repo as a source ie. gem sources --add http://localhost:8081/nexus/content/repositories/ruby-group Remove the default source (optional) gem sources --remove https://rubygems.org Issue a command to install a gem. gem install bundle Client response is: {noformat} C:\Users\IEUser\ruby>gem install bundle ERROR: Could not find a valid gem 'bundle' (>= 0) in any repository ERROR: Possible alternatives: bundle {noformat} Stack Trace in nexus.log is: {noformat} jvm 1 | 2016-02-26 10:20:17,324-0400 WARN [qtp29285196-91] anonymous org.sonatype.nexus.plugins.ruby.proxy.DefaultProxyRubyRepository - Failed URL retrieve/cache: https://rubygems.org/ jvm 1 | java.nio.file.InvalidPathException: Illegal char at index 122: C:\Users\IEUser\Downloads\nexus-professional-2.12.0-01-bundle\sonatype-work\nexus\storage\rubygems-org\api\v1\dependencies ?gems=bundle jvm 1 | at sun.nio.fs.WindowsPathParser.normalize(Unknown Source) ~[na:1.8.0_40] jvm 1 | at sun.nio.fs.WindowsPathParser.parse(Unknown Source) ~[na:1.8.0_40] jvm 1 | at sun.nio.fs.WindowsPathParser.parse(Unknown Source) ~[na:1.8.0_40] jvm 1 | at sun.nio.fs.WindowsPath.parse(Unknown Source) ~[na:1.8.0_40] jvm 1 | at sun.nio.fs.WindowsFileSystem.getPath(Unknown Source) ~[na:1.8.0_40] jvm 1 | at java.io.File.toPath(Unknown Source) ~[na:1.8.0_40] jvm 1 | at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage.resolveFile(DefaultFSLocalRepositoryStorage.java:167) ~[nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage.getFileFromBase(DefaultFSLocalRepositoryStorage.java:193) ~[nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at org.sonatype.nexus.proxy.storage.local.fs.DefaultFSLocalRepositoryStorage.containsItem(DefaultFSLocalRepositoryStorage.java:311) ~[nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractRepository.getResultingActionOnWrite(AbstractRepository.java:724) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doCacheItem(AbstractProxyRepository.java:904) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveRemoteItem(AbstractProxyRepository.java:1422) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem0(AbstractProxyRepository.java:1151) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem(AbstractProxyRepository.java:1034) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:760) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at org.sonatype.nexus.plugins.ruby.proxy.DefaultProxyRubyRepository.retrieveItem(DefaultProxyRubyRepository.java:211) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.doRetrieveItems(AbstractGroupRepository.java:451) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at org.sonatype.nexus.plugins.ruby.group.GroupNexusStorage.setup(GroupNexusStorage.java:97) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.plugins.ruby.group.GroupNexusStorage.doRetrieve(GroupNexusStorage.java:81) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.plugins.ruby.group.GroupNexusStorage.retrieve(GroupNexusStorage.java:70) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.ruby.layout.ProxiedGETLayout.dependencyFile(ProxiedGETLayout.java:38) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.api.ApiV1DependenciesCuba.on(ApiV1DependenciesCuba.java:53) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.State.nested(State.java:61) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.api.ApiV1Cuba.on(ApiV1Cuba.java:46) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.State.nested(State.java:61) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.api.ApiCuba.on(ApiCuba.java:49) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.State.nested(State.java:61) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.RootCuba.on(RootCuba.java:66) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.State.nested(State.java:61) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.RubygemsFileSystem.visit(RubygemsFileSystem.java:84) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.ruby.cuba.RubygemsFileSystem.get(RubygemsFileSystem.java:60) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.plugins.ruby.NexusRubygemsFacade.get(NexusRubygemsFacade.java:60) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.plugins.ruby.group.DefaultRubyGroupRepository.retrieveItem(DefaultRubyGroupRepository.java:128) [nexus-ruby-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:592) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:155) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at org.sonatype.nexus.content.internal.ContentServlet.doGet(ContentServlet.java:381) [nexus-content-plugin-2.12.0-01/:na] jvm 1 | at org.sonatype.nexus.content.internal.ContentServlet.service(ContentServlet.java:347) [nexus-content-plugin-2.12.0-01/:na] jvm 1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) [javax.servlet-3.0.0.v201112011016.jar:na] jvm 1 | at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:288) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:278) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.sonatype.nexus.web.internal.SecurityFilter.executeChain(SecurityFilter.java:90) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [shiro-core-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.2.3.jar:1.2.3] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:135) [nexus-licensing-plugin-2.12.0-01/:na] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.yammer.metrics.web.WebappMetricsFilter.doFilter(WebappMetricsFilter.java:76) [metrics-web-2.2.0.jar:na] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.CommonHeadersFilter.doFilter(CommonHeadersFilter.java:69) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.ErrorPageFilter.doFilter(ErrorPageFilter.java:71) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:66) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterPipeline.dispatch(NexusGuiceFilter.java:56) [nexus-core-2.12.0-01.jar:2.12.0-01] jvm 1 | at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:132) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:129) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:206) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:129) [guice-servlet-3.1.10.jar:3.1.10] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476) [jetty-servlet-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501) [jetty-servlet-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) [jetty-security-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429) [jetty-servlet-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at com.yammer.metrics.jetty.InstrumentedHandler.handle(InstrumentedHandler.java:200) [metrics-jetty-2.2.0.jar:na] jvm 1 | at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.server.Server.handle(Server.java:370) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) [jetty-http-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) [jetty-http-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696) [jetty-io-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53) [jetty-io-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [jetty-util-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [jetty-util-8.1.16.v20140903.jar:8.1.16.v20140903] jvm 1 | at java.lang.Thread.run(Unknown Source) [na:1.8.0_40] {noformat}",0.5 +"NEXUS-9870","02/29/2016 18:39:35","rewrite ssl tips for Docker","I recently created new advice for using SSL with Docker. https://support.sonatype.com/hc/en-us/articles/217542177 Now we need to rewrite the book section https://books.sonatype.com/nexus-book/3.0/reference/docker.html#_tips_for_ssl_certificate_usage",0.5 +"NEXUS-9872","02/29/2016 20:20:34","misconfigured docker proxy URL should log more details about critical failures at default log levels","Create a Docker proxy repository using [https://registry.hub.docker.com|https://registry.hub.docker.com/] instead of [https://registry-1.docker.io|https://registry-1.docker.io/] . Do a pull with docker and the nexus.log will contain some WARN messages that are not helpful to understand what is wrong. {noformat} 2016-02-29 16:08:38,091-0400 WARN [qtp454729937-1139] *UNKNOWN org.sonatype.nexus.repository.docker.internal.V1Handlers - Error: GET /v1/repositories/library/centos/tags/latest: 400 - org.sonatype.nexus.repository.docker.internal.V1Exception$InvalidJson: Invalid data 2016-02-29 16:08:38,095-0400 WARN [qtp454729937-1139] *UNKNOWN org.sonatype.nexus.repository.docker.internal.V1Handlers - Error: GET /v1/repositories/library/centos/tags/latest: 404 - org.sonatype.nexus.repository.docker.internal.V1Exception$TagNotFound: Tag not found 2016-02-29 16:08:38,095-0400 WARN [qtp454729937-1139] *UNKNOWN org.sonatype.nexus.repository.docker.internal.V1Handlers - Error: GET /v1/repositories/library/centos/tags/latest: 404 - org.sonatype.nexus.repository.docker.internal.V1Exception$TagNotFound: Tag not found {noformat} The Docker client merely reports the image is not found. {noformat} $ docker pull nexus.sonatype-support.com:19401/centos Using default tag: latest Pulling repository nexus.sonatype-support.com:19401/centos Tag latest not found in repository nexus.sonatype-support.com:19401/centos {noformat} Now change the ROOT logger to DEBUG in nexus and you get more exact information that the remote content is not in the expected format, albeit the error is still obfuscated even for a nexus administrator: {noformat} 2016-02-29 16:01:03,500-0400 DEBUG [qtp454729937-887] *UNKNOWN org.sonatype.nexus.repository.cache.NegativeCacheFacetImpl - Removing PathNegativeCacheKey{path='/v1/repositories/centos/images'} from negative-cache of RepositoryImpl$$EnhancerByGuice$$733028cc{type=proxy, format=docker, name='docker-hub'} 2016-02-29 16:01:03,501-0400 WARN [qtp454729937-887] *UNKNOWN com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinary - Error deserializing record with id #11:57 send this data for debugging: AAphc3NldC0AAAA6LwAAADwxAAAAQysAAABJNwAAAAABAAABsTkAAAHXOwAAAdo9AAAB5T8AAAJAABIQDGRvY2tlco6o9enlVAgHCmNhY2hlAAAAgAwHEGNoZWNrc3VtAAAAmwwHDmNvbnRlbnQAAAEfDAcMZG9ja2VyAAABOgwCBxpsYXN0X3ZlcmlmaWVkAAAAlQbWqODp5VQEBwhzaGExAAAAtAcHDHNoYTI1NgAAAN0HUDNkZTQ5MTU3MGQ3YTQ4NDNjZDFjOGQzYTZiZTUwOGJkODZhMGU4NGOAATI5MjM5MTIxNjYwMjYzZGM3NDU5MDkxZmZiMzg5OThmNjAyMThhNmFkMjBjOGZhODQ5ZmEzOTUxYjM1NTU5Y2YCBxpsYXN0X21vZGlmaWVkAAABNAbEqeDp5VQEBxxjb250ZW50X2RpZ2VzdAAAAWEHBxRhc3NldF9raW5kAAABqgeOAXNoYTI1NjoyOTIzOTEyMTY2MDI2M2RjNzQ1OTA5MWZmYjM4OTk4ZjYwMjE4YTZhZDIwYzhmYTg0OWZhMzk1MWIzNTU1OWNmDElNQUdFU0p2MS9yZXBvc2l0b3JpZXMvbGlicmFyeS9jZW50b3MvaW1hZ2Vztr0BFHRleHQvcGxhaW6yAWRlZmF1bHRARDg5M0U2MEMtOUY0MTc5ODEtMEI4NDAxNEQtOTlFODhGQ0UtQjY5NkU2NDE6OGZiOWEyNTEtNDYwMi00N2M2LThiN2YtN2MwMTM5NzU5YzIzjqj16eVU SLF4J: Failed toString() invocation on an object of type [org.sonatype.nexus.repository.view.Response] com.orientechnologies.orient.core.exception.ODatabaseException: Database instance is not set in current thread. Assure to set it with: ODatabaseRecordThreadLocal.INSTANCE.set(db); at com.orientechnologies.orient.core.db.ODatabaseRecordThreadLocal.get(ODatabaseRecordThreadLocal.java:51) at com.orientechnologies.orient.core.record.ORecordAbstract.getDatabase(ORecordAbstract.java:240) at com.orientechnologies.orient.core.record.impl.ODocument.getGlobalPropertyById(ODocument.java:2155) at com.orientechnologies.orient.core.record.impl.ODocumentInternal.getGlobalPropertyById(ODocumentInternal.java:60) at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.getGlobalProperty(ORecordSerializerBinaryV0.java:280) {noformat} h3. Problem For unexpected conditions, Nexus WARN level nexus.log message is not providing enough detail at default log levels in order to diagnose the real problem. This leads to a support ticket and investigation. h3. Expected When the configured Docker registry URL does not respond in the expected manner according to the supported API, then Nexus should log a more exact WARN level message with stack trace or better summary message describing the problem. WARN or ERROR Log messages about critical failures should not merely repeat what a client tool message already explains. *Note that [https://registry.hub.docker.com|https://registry.hub.docker.com/] is NOT a valid endpoint for supported API* Suggested log message instead of ""Tag not found"" or ""invalid data"" _when the remote does not return valid data_: {noformat} log.warn(""Is the remote url a valid {} endpoint? Remote URL {} did not return the expected API response: {}"", ""docker"", absolute_remote_URL, exception.getMessage()); {noformat} It is debateable, that a 500 error be returned to the client instead of 404 when Nexus is knowingly misconfigured. However it is standard practice that when Nexus cannot find content for whatever reason, it returns 404. ( the fix keeps 404 being returned )",1 +"NEXUS-9873","02/29/2016 21:13:55","If there is only one blobstore then just select it in the new repository screen","Every time I create a repository I have to select the blobstore, which is pretty annoying. Granted, if there are multiple blobstores defined this isn't easily avoidable. But I'm betting 90% of our users will only ever have one. If there is only one blobstore available we should just select it in the new repository screen, rather than forcing the user to do it.",0.5 +"NEXUS-9874","02/29/2016 22:34:13","Rebrand can leave cached header image","While testing the rebranded NX3 UI, various team members noticed that in some browser/OS permutations, the header image was cached leaving the old N image and no version (see attached). If dev believes this should be 2 different tickets (or wants me to make subtasks) let me know. This did not happen in all browser/OS permutations. You can force this to happen by clearing browser cache, loading a pre-rebrand version of Nexus to get the N image there and then loading the new version of Nexus. See attached let me know if unclear. As far as I can tell this does not affect the 404 page or the describe page which I think are templated slightly differnetly, so that may help. It may affect them and I did not have them cached tho...I am not 100% certain of that and have not double checked.",2 +"NEXUS-9876","03/01/2016 10:09:53","Incorrect config path in the documentation for ""How to Enable the HTTPS Connector""","In section ""How to Enable the HTTPS Connector"", Step 3 says to add ""{karaf.etc}/etc/jetty-https.xml"" to the config file $install-dir/etc/org.sonatype.nexus.cfg, but the other references in that file do not have the /etc/. This needs to be corrected to ""{karaf.etc}/jetty-http.xml"". https://books.sonatype.com/nexus-book/3.0/reference/security.html#ssl-inbound",0.5 +"NEXUS-9902","03/09/2016 00:02:58","Non-editable privilege fields show as editable","I noticed that in repository admin and repository view default privileges showed the repository field non-grey so appeared editable on the quick. More careful inspection reveals that the field is a dropdown and interaction with it is not possible, however, it still does not have the same treatment as the other non-editable fields. Field of the same type (dropdown) appears as non-editable in repository (in the blobstore field) once you create the repository, so I do believe this is possible to fix. Noticed while testing [-NEXUS-9858-|https://issues.sonatype.org/browse/NEXUS-9858] but filing seperately after talking to [Frederick Milens|https://issues.sonatype.org/secure/ViewProfile.jspa?name=fmilens] . I did not check older NX3 or NX2 at this time. Debug was off for this test.",2 +"NEXUS-9944","03/15/2016 19:35:00","Cannot edit docker repository","I just noticed that if you're attempting to edit a docker repository, the port has validation over it that says ""Port is already in use"" and thus the saves cannot happen. Really annoying workaround is to delete the repo and recreate it. I doubt that will fly in a production env. Less (but still) annoying workaround is to change the port 1 number and make your changes then edit it back up and save again. I did not check older NX3 at this time but I suspect this is regression caused by a too tight NEXUS-9572. No docker in NX2 so no test needed there. Debug was off during this test. From nexus.log {quote} 2016-03-22 13:52:34,086-0400 WARN [qtp872875942-278] admin org.sonatype.nexus.repository.docker.internal.DockerConnectorFacetImpl - Validation failed; 1 constraints violated: 1) Port is already in use, type: class org.sonatype.nexus.validation.ConstraintViolationFactory$HelperBean, property: attributes.docker.httpsPort, value: org.sonatype.nexus.validation.ConstraintViolationFactory$HelperBean@2967a181 {quote}",1 +"NEXUS-9961","03/16/2016 21:35:28","Collapse Add/Edit privilege distinction","I created a new raw hosted repository and then created a new role with read and edit repository view privileges to that new repository. Then I created a new user and gave it that new role. I noticed that I was able to add a file to that raw repository despite not having add privilege. As far as I know, add is not contained in edit and this seems a bug. I did not back check older NX3 or NX2 at this time. NX2 did use CRUD rather than BREAD which is testable however not sure the comparison is worth it unless to regression check.",8 +"NEXUS-9964","03/17/2016 15:16:57","increase default max heap for Nexus","In our support experience the default heap of Nexus of 768MB is too low for the majority of production installations. We should increase this default to some value between 1GB and 2GB before Nexus 3 is released. Any book or articles which reference the default for nexus 3 should be updated if changed. (ie system requirements ). ",0.5 +"NEXUS-9967","03/18/2016 21:47:27","com.sun.jndi.ldap.connect.pool.protocol in etc/system.properties has quotes around its value (it shouldn't)","In etc/system.properties we have: {code} com.sun.jndi.ldap.connect.pool.protocol=""plain ssl"" {code} This results in the system property actually getting set to ""plain ssl"" (with quotes), you can verify this using the ""support/system information"" UI If the quotes are removed the value shows up correctly in the ""support/system information"" UI, no quotes are present. I'm pretty sure this means LDAP connection pooling is not currently enabled in Nexus 3m7.",0.5 +"NEXUS-9971","03/21/2016 21:14:12","Error on LDAP Realm activeness; can stop LDAP logins","I noticed the below error when I have the LDAP realm active. This occurs whether or not I have an LDAP configured (validly or invalidly). As far as I can tell there's no adverse behavior occurring with this enabled, which prompts me to file to make sure everything is OK and if so, have it tempered and if not have it investigated. NOTE: This error occurs before the Nexus has started seperation. I checked m7 and this is occurring there. It's also occurring with rut-auth realm despite the fact the rut-auth realm isn't enabled. I did not see that similar behavior with Homeslice, so it's possible this was partially fixed (or my applications are just at different configured states). I didn't check further back than that. I also didn't check NX2. {quote} 2016-03-21 16:07:48,344-0400 ERROR [FelixStartLevel] *SYSTEM org.sonatype.nexus.security.internal.RealmManagerImpl - Unable to lookup security realms java.lang.ClassNotFoundException: LdapRealm at java.lang.ClassLoader.findClass(ClassLoader.java:530) [na:1.8.0_40] at java.lang.ClassLoader.loadClass(ClassLoader.java:424) [na:1.8.0_40] at com.google.inject.internal.BytecodeGen$BridgeClassLoader.classicLoadClass(BytecodeGen.java:331) [na:na] at com.google.inject.internal.BytecodeGen$BridgeClassLoader.loadClass(BytecodeGen.java:325) [na:na] at java.lang.ClassLoader.loadClass(ClassLoader.java:357) [na:1.8.0_40] at org.sonatype.nexus.security.internal.RealmManagerImpl.resolveRealms(RealmManagerImpl.java:212) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.sonatype.nexus.security.internal.RealmManagerImpl.installRealms(RealmManagerImpl.java:190) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.sonatype.nexus.security.internal.RealmManagerImpl.doStart(RealmManagerImpl.java:93) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.security.internal.RealmManagerImpl$$EnhancerByGuice$$b5f6f1e0.CGLIB$start$11() [!/:na] at org.sonatype.nexus.security.internal.RealmManagerImpl$$EnhancerByGuice$$b5f6f1e0$$FastClassByGuice$$6b159d10.invoke() [!/:na] at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) [org.sonatype.nexus.common:3.0.0.SNAPSHOT] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) [com.google.inject:4.0.0] at org.sonatype.nexus.security.internal.RealmManagerImpl$$EnhancerByGuice$$b5f6f1e0.start() [!/:na] at org.sonatype.nexus.security.internal.DefaultSecuritySystem.doStart(DefaultSecuritySystem.java:115) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.sonatype.goodies.lifecycle.LifecycleSupport.start(LifecycleSupport.java:104) [org.sonatype.goodies.lifecycle:2.1.0.SNAPSHOT] at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:154) [org.sonatype.nexus.extender:3.0.0.SNAPSHOT] at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:94) [org.sonatype.nexus.extender:3.0.0.SNAPSHOT] at org.sonatype.nexus.extender.NexusContextListener.contextInitialized(NexusContextListener.java:152) [org.sonatype.nexus.extender:3.0.0.SNAPSHOT] at org.sonatype.nexus.bootstrap.osgi.ListenerTracker.addingService(ListenerTracker.java:47) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.sonatype.nexus.bootstrap.osgi.ListenerTracker.addingService(ListenerTracker.java:1) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) [org.osgi.core-6.0.0.jar:na] at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870) [org.osgi.core-6.0.0.jar:na] at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [org.osgi.core-6.0.0.jar:na] at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) [org.osgi.core-6.0.0.jar:na] at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901) [org.osgi.core-6.0.0.jar:na] at org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:991) [org.apache.felix.framework-5.4.0.jar:na] at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:839) [org.apache.felix.framework-5.4.0.jar:na] at org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:546) [org.apache.felix.framework-5.4.0.jar:na] at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4557) [org.apache.felix.framework-5.4.0.jar:na] at org.apache.felix.framework.Felix.registerService(Felix.java:3549) [org.apache.felix.framework-5.4.0.jar:na] at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:348) [org.apache.felix.framework-5.4.0.jar:na] at org.sonatype.nexus.extender.NexusBundleExtender.start(NexusBundleExtender.java:54) [org.sonatype.nexus.extender:3.0.0.SNAPSHOT] at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697) [org.apache.felix.framework-5.4.0.jar:na] at org.apache.felix.framework.Felix.activateBundle(Felix.java:2226) [org.apache.felix.framework-5.4.0.jar:na] at org.apache.felix.framework.Felix.startBundle(Felix.java:2144) [org.apache.felix.framework-5.4.0.jar:na] at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371) [org.apache.felix.framework-5.4.0.jar:na] at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) [org.apache.felix.framework-5.4.0.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {quote}",0.5 +"NEXUS-9991","03/25/2016 05:53:37","ui spinbutton form controls should not react to mouse scroll wheel movement","When a spinbutton field has focus and the cursor is over the field, moving the scroll wheel - or doing the trackpad equivalent - changes the spinbutton field value. No other field type exhibits this behavior. For consistency with other field types, scrolling within a spinbutton field should not change the value, but should scroll the containing panel / page. ",0.5 +"NEXUS-9993","03/25/2016 20:51:21","proxy repository HTTP request settings form fields cannot be saved","I noticed that if you attempt to enter a value into ""Connection timeout:"" field within the ""HTTP request settings"" section of a proxy repository configuration you get an error ""Failed to Validate Facets, 1 Failure"" and the below in the nexus.log. This occurs with debug on or off. I did not check older NX3 at this time. This does not occur in NX2(12.1). {quote} 2016-03-25 16:24:47,155-0400 ERROR [qtp1034682762-1599] admin org.sonatype.nexus.repository.manager.RepositoryImpl - Failed to validate facet: org.sonatype.nexus.repository.httpclient.HttpClientFacetImpl$$EnhancerByGuice$$c1b95983@64d9fd78 java.lang.IllegalArgumentException: Can not instantiate value of type [simple type, class org.sonatype.goodies.common.Time] from Floating-point number (100.0); no one-double/Double-arg constructor/factory method at [Source: N/A; line: -1, column: -1] (through reference chain: org.sonatype.nexus.repository.httpclient.Config[""connection""]->org.sonatype.nexus.httpclient.config.ConnectionConfiguration[""timeout""]) at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:3512) [na:na] at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:3431) [na:na] at org.sonatype.nexus.repository.config.ConfigurationFacetImpl.convert(ConfigurationFacetImpl.java:72) [na:na] at org.sonatype.nexus.repository.config.ConfigurationFacetImpl.readSection(ConfigurationFacetImpl.java:81) [na:na] at org.sonatype.nexus.repository.config.ConfigurationFacetImpl.validateSection(ConfigurationFacetImpl.java:118) [na:na] at org.sonatype.nexus.repository.httpclient.HttpClientFacetImpl.doValidate(HttpClientFacetImpl.java:84) [na:na] at org.sonatype.nexus.repository.FacetSupport.validate(FacetSupport.java:112) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.repository.manager.RepositoryImpl.validate(RepositoryImpl.java:160) [na:na] at org.sonatype.nexus.repository.manager.RepositoryManagerImpl.update(RepositoryManagerImpl.java:277) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.repository.manager.RepositoryManager$update$7.call(Unknown Source) [na:na] at org.sonatype.nexus.coreui.RepositoryComponent.update(RepositoryComponent.groovy:147) [na:na] at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [org.hibernate.validator:5.1.2.Final] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:127) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:197) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [simple type, class org.sonatype.goodies.common.Time] from Floating-point number (100.0); no one-double/Double-arg constructor/factory method at [Source: N/A; line: -1, column: -1] (through reference chain: org.sonatype.nexus.repository.httpclient.Config[""connection""]->org.sonatype.nexus.httpclient.config.ConnectionConfiguration[""timeout""]) at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:216) [na:na] at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:894) [na:na] at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.createFromDouble(StdValueInstantiator.java:335) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromDouble(BeanDeserializerBase.java:1222) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:148) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:135) [na:na] at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:490) [na:na] at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:95) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:260) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125) [na:na] at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:490) [na:na] at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:101) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:260) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125) [na:na] at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:3507) [na:na] ... 102 common frames omitted 2016-03-25 16:24:47,161-0400 ERROR [qtp1034682762-1599] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Repository.update, java-method: org.sonatype.nexus.coreui.RepositoryComponent.update org.sonatype.goodies.common.MultipleFailures$MultipleFailuresException: Failed to validate facets; 1 failure at org.sonatype.goodies.common.MultipleFailures.maybePropagate(MultipleFailures.java:95) [org.sonatype.goodies.common:2.1.0.SNAPSHOT] at org.sonatype.nexus.repository.manager.RepositoryImpl.validate(RepositoryImpl.java:171) [na:na] at org.sonatype.nexus.repository.manager.RepositoryManagerImpl.update(RepositoryManagerImpl.java:277) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.repository.manager.RepositoryManager$update$7.call(Unknown Source) [na:na] at org.sonatype.nexus.coreui.RepositoryComponent.update(RepositoryComponent.groovy:147) [na:na] at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:127) [org.sonatype.nexus.extdirect:3.0.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:197) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] Suppressed: java.lang.IllegalArgumentException: Can not instantiate value of type [simple type, class org.sonatype.goodies.common.Time] from Floating-point number (100.0); no one-double/Double-arg constructor/factory method at [Source: N/A; line: -1, column: -1] (through reference chain: org.sonatype.nexus.repository.httpclient.Config[""connection""]->org.sonatype.nexus.httpclient.config.ConnectionConfiguration[""timeout""]) at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:3512) [na:na] at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:3431) [na:na] at org.sonatype.nexus.repository.config.ConfigurationFacetImpl.convert(ConfigurationFacetImpl.java:72) [na:na] at org.sonatype.nexus.repository.config.ConfigurationFacetImpl.readSection(ConfigurationFacetImpl.java:81) [na:na] at org.sonatype.nexus.repository.config.ConfigurationFacetImpl.validateSection(ConfigurationFacetImpl.java:118) [na:na] at org.sonatype.nexus.repository.httpclient.HttpClientFacetImpl.doValidate(HttpClientFacetImpl.java:84) [na:na] at org.sonatype.nexus.repository.FacetSupport.validate(FacetSupport.java:112) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.repository.manager.RepositoryImpl.validate(RepositoryImpl.java:160) [na:na] ... 92 common frames omitted Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [simple type, class org.sonatype.goodies.common.Time] from Floating-point number (100.0); no one-double/Double-arg constructor/factory method at [Source: N/A; line: -1, column: -1] (through reference chain: org.sonatype.nexus.repository.httpclient.Config[""connection""]->org.sonatype.nexus.httpclient.config.ConnectionConfiguration[""timeout""]) at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:216) at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:894) at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.createFromDouble(StdValueInstantiator.java:335) at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromDouble(BeanDeserializerBase.java:1222) at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:148) at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:135) at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:490) at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:95) at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:260) at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125) at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:490) at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:101) at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:260) at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125) at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:3507) ... 102 common frames omitted {quote}",0.5 +"NEXUS-9995","03/28/2016 15:52:45","scheduled task form values cannot be blanked out when a blank value is valid","While testing the Remove Snapshots From Maven Repository task, I had it saved with a value in the ""Grace Period after release (days)"" field. When I tried to erase this value and save, the value restored. This field is not required (is optional) so there is no reason the value should not be able to be erased. On analysis is was speculated this behavior would affect all tasks however this is the first task where there is a number value that can be nulled out in this way. In fact, I tried to find a number example against the entire site but could not find one (there are string examples but string is much easier to be empty). This behavior does not affect NX2. This task is new to Homeslice so I did not check older NX3 as I don't believe it'd be anywhere. But further fields (tasks but maybe any fields) created in this way will likely be affected. The workaround is to delete the task and recreate it, however, I am leaving major as that workaround is pretty annoying.",0.5 +"NEXUS-10017","03/30/2016 16:55:03","Unable to delete npmjs proxy repo","Customer reported that they when they tried to delete the npmjs proxy repo, Nexus stopped responding and CPU/Memory shot up. Nexus had to be restarted, but the repository is not removed. I have reproduced this same issue on a clean install of 2.12.1. Steps to Reproduce: 1) Ensure that you have proxy to https://registry.npmjs.org and is part of npm group. npm client should be configured to point use the npm group. 2) Run an npm search, something like ""npm s engine.io"". This can take some time if run for the first time. {noformat} 2016-03-30 16:25:13,901+0100 INFO [qtp1878856101-99] anonymous com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl - Registry root npmjs initial fetch 2016-03-30 16:26:48,760+0100 INFO [qtp1878856101-99] anonymous com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl - Registry root npmjs update successful (275499 packages) {noformat} 3) Delete the npmjs repository. Within a minute the Nexus UI will stop responding and CPU for the java process should go up to 100%. You will see following in the logs. {noformat} 2016-03-30 16:30:51,782+0100 INFO [qtp1878856101-125] admin com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl - Deleting all proxied npm metadata from npmjs 2016-03-30 16:30:52,340+0100 INFO [qtp1878856101-125] admin com.orientechnologies.common.profiler.OProfilerStub - {db=npm} [TIP] Query 'SELECT FROM packageroot WHERE repositoryId = 'npmjs'' returned a result set with more than 10000 records. Check if you really need all these records, or reduce the resultset by using a LIMIT to improve both performance and used RAM {noformat}",0.5 +"NEXUS-10019","03/31/2016 00:23:38","Deletion of asset from single asset component causes failure in UI","If you have a component with a single asset (as all npm components do) and navigate through Components -> Repo -> Component -> Asset, and then delete the asset using the provided button, the UI attempts to reload the parent component. Problem here is that components are removed when their last asset is deleted, which leads to an error message being shown in the UI and the view not updating. I saw this with NPM but likely it's a problem with any format anytime the last asset is deleted. http://screencast.com/t/Lfz7oaFIFgiC",0.5 +"NEXUS-10021","03/31/2016 07:47:26","Authentication-less Email Server config does not work","When configuring the Email Server in Nexus 3.0.0-m7 without username or password, the ""Verify email server"" action produces a stacktrace in the Nexus log. It appears that Nexus sets a property to use auth, but no credentials are available other than empty strings. Nexus 3 should support an Email Server configuration without authentication. Log from ""Verify email server"" {noformat} 2016-03-31 06:41:29,956+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - need username and password for authentication 2016-03-31 06:41:29,959+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - useEhlo true, useAuth true 2016-03-31 06:41:29,960+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - trying to connect to host ""mail.inventage.com"", port 25, isSSL false 2016-03-31 06:41:29,975+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.util.socket - getSocket, host mail.inventage.com, port 25, prefix mail.smtp, useSSL false 2016-03-31 06:41:29,984+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 220 scapa.inventage.com ESMTP Postfix 2016-03-31 06:41:29,986+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - connected to host ""mail.inventage.com"", port: 25 2016-03-31 06:41:29,987+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - EHLO 02a2b9e22a0d 2016-03-31 06:41:29,988+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-scapa.inventage.com 2016-03-31 06:41:29,989+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-PIPELINING 2016-03-31 06:41:29,989+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-SIZE 20480000 2016-03-31 06:41:29,990+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-VRFY 2016-03-31 06:41:29,991+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-ETRN 2016-03-31 06:41:29,992+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-STARTTLS 2016-03-31 06:41:29,993+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-AUTH PLAIN LOGIN 2016-03-31 06:41:29,994+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-AUTH=PLAIN LOGIN 2016-03-31 06:41:29,994+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-ENHANCEDSTATUSCODES 2016-03-31 06:41:29,995+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-8BITMIME 2016-03-31 06:41:29,995+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250 DSN 2016-03-31 06:41:29,996+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""PIPELINING"", arg """" 2016-03-31 06:41:29,996+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""SIZE"", arg ""20480000"" 2016-03-31 06:41:29,997+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""VRFY"", arg """" 2016-03-31 06:41:29,998+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""ETRN"", arg """" 2016-03-31 06:41:30,003+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""STARTTLS"", arg """" 2016-03-31 06:41:30,003+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""AUTH"", arg ""PLAIN LOGIN"" 2016-03-31 06:41:30,004+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""AUTH=PLAIN"", arg ""LOGIN"" 2016-03-31 06:41:30,005+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""ENHANCEDSTATUSCODES"", arg """" 2016-03-31 06:41:30,005+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""8BITMIME"", arg """" 2016-03-31 06:41:30,006+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""DSN"", arg """" 2016-03-31 06:41:30,007+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - STARTTLS 2016-03-31 06:41:30,008+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 220 2.0.0 Ready to start TLS 2016-03-31 06:41:30,008+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.util.socket - startTLS host mail.inventage.com, port 25 2016-03-31 06:41:30,038+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.util.socket - SSL protocols after [TLSv1] 2016-03-31 06:41:30,039+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.util.socket - SSL ciphers after [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV] 2016-03-31 06:41:30,206+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - EHLO 02a2b9e22a0d 2016-03-31 06:41:30,207+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-scapa.inventage.com 2016-03-31 06:41:30,207+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-PIPELINING 2016-03-31 06:41:30,208+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-SIZE 20480000 2016-03-31 06:41:30,209+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-VRFY 2016-03-31 06:41:30,215+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-ETRN 2016-03-31 06:41:30,215+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-AUTH PLAIN LOGIN 2016-03-31 06:41:30,216+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-AUTH=PLAIN LOGIN 2016-03-31 06:41:30,216+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-ENHANCEDSTATUSCODES 2016-03-31 06:41:30,217+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250-8BITMIME 2016-03-31 06:41:30,217+0000 TRACE [qtp1474888453-1788] dmenzi com.sun.mail.smtp.protocol - 250 DSN 2016-03-31 06:41:30,218+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""PIPELINING"", arg """" 2016-03-31 06:41:30,218+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""SIZE"", arg ""20480000"" 2016-03-31 06:41:30,219+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""VRFY"", arg """" 2016-03-31 06:41:30,219+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""ETRN"", arg """" 2016-03-31 06:41:30,220+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""AUTH"", arg ""PLAIN LOGIN"" 2016-03-31 06:41:30,220+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""AUTH=PLAIN"", arg ""LOGIN"" 2016-03-31 06:41:30,221+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""ENHANCEDSTATUSCODES"", arg """" 2016-03-31 06:41:30,221+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""8BITMIME"", arg """" 2016-03-31 06:41:30,222+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Found extension ""DSN"", arg """" 2016-03-31 06:41:30,222+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - Attempt to authenticate using mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM 2016-03-31 06:41:30,223+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - AUTH LOGIN command trace suppressed 2016-03-31 06:41:30,225+0000 DEBUG [qtp1474888453-1788] dmenzi com.sun.mail.smtp - AUTH LOGIN failed 2016-03-31 06:41:30,253+0000 ERROR [qtp1474888453-1788] dmenzi org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Email.sendVerification, java-method: org.sonatype.nexus.coreui.EmailComponent.sendVerification org.apache.commons.mail.EmailException: Sending the email to the following server failed : mail.inventage.com:25 at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1421) [na:na] at org.apache.commons.mail.Email.send(Email.java:1448) [na:na] at org.sonatype.nexus.internal.email.EmailManagerImpl.sendVerification(EmailManagerImpl.java:195) [na:na] at org.sonatype.nexus.email.EmailManager$sendVerification.call(Unknown Source) [na:na] at org.sonatype.nexus.coreui.EmailComponent.sendVerification(EmailComponent.groovy:117) [na:na] at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.GeneratedMethodAccessor551.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_74] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_74] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2016011501] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2016011501] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:201) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2016011501] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2016011501] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2016011501] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2016011501] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2016011501] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2016011501] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2016011501] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2016011501] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2016011501] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:121) [org.sonatype.nexus.plugins.nexus-extdirect-plugin:3.0.0.b2016011501] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.b2016011501] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.b2016011501] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.b2016011501] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.core:3.0.0.b2016011501] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.b2016011501] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.5.v20151012] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.5.v20151012] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.5.v20151012] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.5.v20151012] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261) [org.eclipse.jetty.io:9.3.5.v20151012] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.5.v20151012] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.5.v20151012] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.5.v20151012] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.5.v20151012] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.5.v20151012] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.5.v20151012] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_74] Caused by: javax.mail.AuthenticationFailedException: 535 5.7.8 Error: authentication failed: generic failure at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:892) [na:na] at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:814) [na:na] at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:728) [na:na] at javax.mail.Service.connect(Service.java:386) [na:na] at javax.mail.Service.connect(Service.java:245) [na:na] at javax.mail.Service.connect(Service.java:194) [na:na] at javax.mail.Transport.send0(Transport.java:253) [na:na] at javax.mail.Transport.send(Transport.java:124) [na:na] at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1411) [na:na] ... 89 common frames omitted {noformat} ",1 +"NEXUS-10030","04/01/2016 21:20:20","Nuget 3.4 breaking semver change","As of Nuget 3.4/Visual Studio 2015, NuGet now uses a much stricter policy for semantic versioning. c.f. http://docs.nuget.org/Create/Versioning#Normalized_Version_Numbers In order for Nexus to behave correctly, it will need to address how it sorts version numbers, and how it decides packages are pre-release or release. Unfortunately, there are some popular package on nuget.org that don't abide by this strictness - NLog, for instance, has gotten into the habit of labelling (in ODATA) versions like 4.4.0-beta3 as _release_ versions. As of NuGet 3.4, the (new) _Normalized Version_ ODATA field is the definitive version for uniqueness purposes, as well as the definitive indicator as to whether a package is pre-release or not. Visual Studio will actually prune packages with pre-release semvers out of the search results it gets from Nexus. Unfortunately, for now, Nexus defers to the metadata, not the semver. As a result: 1. Create a Nexus proxy to nuget.org 2. Open Visual Studio 2015 3. Make the Nexus proxy the only nuget source 4. In VS/NuGet, search for 'nlog'. Currently, NLog 4.2.3 is the latest release version, according to semver. It should appear in the search results. 5. Now search for 'nlog', with the 'pre-release versions' option checked. Currently, this will bring down the badly-tagged NLog 4.4.0-beta3. Nexus now considers this the latest 6. Perform the first search again, looking for release-only versions of 'nlog' => NLog has now completely disappeared from the VS search results. Nexus is returning 4.4.0-beta3 as the latest release version (as per the metadata), but VS prunes it out (as per its pre-release style semver)",5 +"NEXUS-10032","04/02/2016 00:14:30","Errors/warns on delete of proxy while it's being used","In NEXUS-10017, adverse behavior was reported when you deleted a npm proxy repository in NX2. In NX3, this behavior did not exist however, I noticed an error and a warn that might be worth persuing to make sure other adverse behavior wasn't occurring. Steps to Reproduce: 1) Have a npmgroup containing npmproxy to https://registry.npmjs.org (I also had npm hosted tho I am skeptical that matters). 2) Run an npm search, something like ""npm s engine.io"". This can take some time if run for the first time as it indexes. 3) While index is processing, delete the npmjs repository. Notice the below error/warn in log. {code} 2016-04-01 16:51:05,212-0400 WARN [qtp1681721619-1323] *UNKNOWN org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure java.io.IOException: java.lang.NullPointerException at com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetProxy.searchIndex(NpmSearchIndexFacetProxy.java:55) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetGroup.buildIndex(NpmSearchIndexFacetGroup.java:93) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetCaching.searchIndex(NpmSearchIndexFacetCaching.java:65) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:54) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$7.handle(NpmHandlers.java:248) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60] Caused by: java.lang.NullPointerException: null at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210) [na:na] at org.sonatype.nexus.repository.FacetSupport.getRepository(FacetSupport.java:61) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.doPutRepositoryRoot(NpmProxyFacetImpl.java:283) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:44) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.putRepositoryRoot(NpmProxyFacetImpl.java:257) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.store(NpmProxyFacetImpl.java:110) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:166) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetProxy.searchIndex(NpmSearchIndexFacetProxy.java:48) [na:na] ... 88 common frames omitted 2016-04-01 16:51:15,228-0400 WARN [qtp1681721619-1318] *UNKNOWN org.sonatype.nexus.repository.group.GroupFacetImpl - Ignoring missing member repository: npmproxy {code}",2 +"NEXUS-10040","04/04/2016 20:00:31","Users cannot update their profiles","Does not appear a user can update their profile (NOT including password change). Specifically the save button is disabled no matter what change you make. This is with admin access. Workaround is to have admin update from Security->User. This is regression from NX2 however because of the workaround, I am making minor for now. I did not check older NX3 at this time. Debug was off for this test.",1 +"NEXUS-10041","04/04/2016 20:14:06","nx-userschangepw not included in nx-all","While creating NEXUS-10040, I found that users could not update their own passwords via profile and instead got the error below. However, this is not because it is broken (like NEXUS-10040 where you can't save or at all) but because nx-userschangepw permission is not included in nx-all. This surprised me, since nx-all sounds like it should be everything AND because default admin role subsequently does not have the permission to change password (via profile, they still can via security-users). I did not check older NX3 at this time however I recall this being different in the past. I also did not check NX2, however, I also recall this working without hijinx. Debug was off during this test.",1 +"NEXUS-10042","04/04/2016 20:32:01","IOException Pipe not connected prevents generating support zip on Windows","I found I cannot generate a support.zip file from the UI including everything checked in Windows. This does not occur in MacOSX. I checked with [~mprescott] who was also able to see this, so not just my env. See below for long stack trace with several errors. On screen appears ""Cannot get property 'file' on null object"". This does not affect m7. I did not check NX2 at this time. Debug was off during this test. {code} 2016-04-04 15:18:31,429-0400 ERROR [qtp829739733-101] admin com.orientechnologies.orient.core.db.tool.ODatabaseExport - {db=security} Error on exporting record #0:1. It seems corrupted; size: 14860 bytes, raw content (as string): ========== schemaVersion9classes: globalProperties2▒ nameshortName defaultClusterIdclusterIds clusterSelectionoverSize!strictMode%abstract&properties' superClasssuperClassescustomFieldsORestrictedround-robin nametype▒globalId▒mandatory▒readonly▒notNull▒defaultValueminmax regexplinkedClass▒customFieldscollate▒_allowReadOIdentitydefault nametype▒globalId▒mandatory▒readonly▒notNull▒defaultValueminmax regexplinkedClass▒customFieldscollate▒ _allowOIdentitydefaultnametype▒globalId▒mandatory▒readonly▒notNull▒defaultValueminmax regexplinkedClass▒customFieldscollate▒_allowDeleteOIdentitydefault nametypeVglobalIdWmandatoryXreadonlyYnotNullZdefaultValueminmax regexplinkedClass[customFieldscollatee_allowUpdateOIdentitydefault name5shortName defaultClusterId;clusterIds< clusterSelection@overSizeLstrictModePabstractQpropertiesR superClasssuperClassescustomFields realmround-robin nametype▒globalId▒mandatoryreadonlynotNulldefaultValueminmax regexpcustomFieldscollaterealm_names>defaultname▒shortName defaultClusterId▒clusterIds▒ clusterSelection▒overSize▒strictMode▒abstract▒properties▒ superClasssuperClassescustomFields ORIDsround-robin name▒shortName defaultClusterId▒clusterIds▒ clusterSelection▒overSize▒strictMode▒abstract▒properties▒ superClass ▒superClasses ▒ customFields ORoround-robin namtyp▒globalI▒mandator▒readonl▒notNul▒defaultValueminmax regexplinkedClas▒customFieldscollat▒inheritedRole ORoledefault name type ]globalId ^mandatory _readonly `notNull adefaultValueminmax regexplinkedTypebcustomFieldscollate c rules""default name type globalId mandatory readonly notNull defaultValueminmax regexpcustomFieldscollate nameci name type ▒globalId ▒mandatory ▒readonly ▒notNull ▒defaultValueminmax regexpcustomFieldscollate mode""defaultOIdentityOIdentity name ▒shortName defaultClusterId ▒clusterIds ▒ clusterSelection ▒overSize ▒strictMode ▒abstract ▒properties ▒ superClasssuperClassescustomFieldsapi_keyround-robin name type lglobalId mmandatory nreadonly onotNull pdefaultValueminmax regexpcustomFieldscollate t""defaultValueminmax qapi_keyFdefault name # regexpcustomFieldscollate ▒defaultValueminmax ▒principalsLdefaultregenamtype▒globalId▒mandatory▒readonly▒notNull▒defaultValueminmax regexpcustomFieldscollate▒""primary_principalJdefault namefshortName defaultClusterIdkclusterIdsl clusterSelectionpoverSize|strictMode▒abstract?properties▒ superClasssuperClassescustomFieldroleround-robin nametype-globalId.mandatory/readonly0notNull1defaultValueminmax regexpcustomFieldscollate2privileges2default nametype▒globalId▒mandatory▒readonly▒notNull▒defaultValueminmax regexpcustomFieldscollate▒ roles4default nametype▒globalId?mandatory▒readonly?notNull?defaultValueminmax regexpcustomFieldscollate▒id(default nametypereadonly?notNull@defaultValueminmax regexpcustomFieldscollatenamedefaultnametype▒globalId▒mandatory▒readonly▒notNull▒defaultValueminmax regexpcustomFieldscollate▒description0default name▒shortName defaultClusterId▒clusterIds▒ clusterSelection▒overSize▒strictMode▒abstract▒properties▒ superClasssuperClassescustomFieldsOTriggeredround-robin name▒shortName defaultClusterId▒clusterIds▒ clusterSelection▒overSize▒strictMode▒abstract▒properties▒ superClasssuperClassescustomFieldsOFunction round-robin nametypezglobalId{mandatory|readonly}notNull~defaultValueminmax regexpcustomFieldscollatnamedefault nametype0globalId1mandatory2readonly3notNull4defaultValueminmax regexpcustomFieldscollate5idempotentdefault nametype▒globalId▒mandatory▒readonly▒notNull▒defaultValueminmax regexplinkedType▒customFieldscollate▒parametersdefault nametype▒globalId▒mandatory▒readonly▒notNull▒defaultValueminmax regexpcustomFieldscollate▒languagedefault nametype[globalId\mandatory]readonly^notNull_defaultValueminmax regexpcustomFieldscollatecodedefaultname0shortName defaultClusterId6clusterIds7 clusterSelection;overSizeGstrictModeKabstractLpropertiesM superClass(superClasses2 customFields OUser round-robin nametype▒globalId▒mandatory▒readonly▒notNull▒defaultValueminmax regexpcustomFieldscollate▒passwordefault nametype▒globalId▒mandatory▒readonly▒notNull▒defaultValueminmax regexpcustomFieldscollate▒ status default namtypeglobalIdmandatoryreadonlyotNulldefaultValueminmax regexpcustomFieldscollatnameci namtypeglobalIdmandatoryreadonlynotNulldefaultValueminmax regexplinkedClasscustomFieldscollate roles ORoledefaultOIdentityOIdentity nameshortName defaultClusterId clusterIds clusterSelectionoverSizestrictMode!abstract""properties# superClasssuperClassescustomFielduserround-robin nametype▒globalId▒mandatory▒readonly▒notNull▒defaultValueminmax regexpcustomFieldscollate▒lastName,default nametype?globalId▒mandatory▒readonly▒notNull▒defaultValueminmax regexpcustomFieldscollate▒firstName*default nametype/globalId0mandatory1readonly2notNull3defaultValueminmax regexpcustomFieldscollate4id(defaultnametype▒globalId▒mandatory▒readonly▒notNull▒defaultValueminmax regexpcustomFieldscollate▒ status default name type ▒globalId ▒mandatory ▒readonly ▒notNull ▒defaultValueminmax regexpcustomFieldscollate ▒ email.default name!type!FglobalId!Gmandatory!Hreadonly!InotNull!JdefaultValueminmax regexpcustomFieldscollate!Kpasswordefault name""hortName defaultClusterId""%clusterIds""& clusterSelection""*overSize""6strictMode"":abstract"";properties""< superClasssuperClassescustomFieldsOScheduleround-robin name""type""▒globalId""▒mandatory""▒readonly""▒notNull""▒defaultValueminmax regexpcustomFieldscollate""▒ status default name#type#▒globalId#▒mandatory#▒readonly#▒notNull#▒defaultValueminmax regexplinkedClass#▒customFieldscollate#▒function""OFunctiondefault name$type$gglobalId$hmandatory$ireadonly$jnotNull$kdefaultValueminmax regexpcustomFieldscollate$lstarttime $default nametype%globalId%mandatory%readonly%notNull%efaultValueminmax regexpcustomFieldscollatenamedefault name%type%▒globalId%▒mandatory%▒readonly%▒notNull%▒defaultValueminmax regexpcustomFieldscollate%▒ start&default name&type&}globalId&~mandatory&readonly&▒notNull&?defaultValueminmax regexpcustomFieldscollate&▒arguments defaultname'type'-globalId'.mandatory'/readonly'0notNull'1defaultValueminmax regexpcustomFieldscollate'ruledefault name(shortName defaultClusterId(clusterIds( clusterSelection(overSize(%strictMode()abstract(*properties(+ superClasssuperClassescustomFields""user_role_mappinground-robin name(type(▒globalId(▒mandatory(▒readonly(▒notNull(▒defaultValueminmax regexpcustomFieldscollate(▒ sourceenabled@default name0type0▒globalId0▒mandatory0▒readonly0▒notNull0▒defaultValueminmax regexpcustomFieldscollate0▒realm_nameDdefault name1type1▒globalId1▒mandatory1▒readonly1▒notNull1▒defaultValueminmax regexpcustomFieldscollate1▒user_idBdefault name2wshortName defaultClusterId2?clusterIds2▒ clusterSelection2▒overSize2▒strictMode2▒abstract2▒properties2▒ superClasssuperClassescustomFieldsOIdentityround-robinN name2type2▒id2name STRING name2type2▒id2modBYTE nametype3id3# rulesEMBEDDEDMAP name3type3Qid3VinheritedRolLINK name3type3id3▒password STRING name3type3▒id3▒ rolesLINKSET name3type3▒id3▒ status STRING nametype4 id4 _allowLINKSET name4type4 name8type8▒id8▒enabledBOOLEAN@ nametype9 id9user_id STRINGB name9type9) [!/:na] at org.sonatype.nexus.coreui.atlas.SupportZipComponent$$EnhancerByGuice$$99e00341$$FastClassByGuice$$8b5fd16.invoke() [!/:na] at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [org.hibernate.validator:5.1.2.Final] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [org.apache.shiro.guice:1.2.4] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [org.apache.shiro.core:1.2.4] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [org.apache.shiro.guice:1.2.4] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [org.apache.shiro.guice:1.2.4] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [org.apache.shiro.core:1.2.4] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [org.apache.shiro.guice:1.2.4] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) [com.google.inject:4.0.0] at org.sonatype.nexus.coreui.atlas.SupportZipComponent$$EnhancerByGuice$$99e00341.create() [!/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_60] at java.lang.reflect.Method.invoke(Unknown Source) [na:1.8.0_60] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.0.0.02] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.extdirect:3.0.0.02] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:127) [org.sonatype.nexus.extdirect:3.0.0.02] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.02] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.02] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.0.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.0.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.02] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Unknown Source) [na:1.8.0_60] 2016-04-04 15:18:32,460-0400 ERROR [qtp829739733-101] admin com.orientechnologies.orient.core.db.tool.ODatabaseExport - {db=security} Error on exporting database 'security' to: streaming.json java.io.IOException: Pipe closed at java.io.PipedInputStream.checkStateForReceive(Unknown Source) [na:1.8.0_60] at java.io.PipedInputStream.awaitSpace(Unknown Source) [na:1.8.0_60] at java.io.PipedInputStream.receive(Unknown Source) [na:1.8.0_60] at java.io.PipedOutputStream.write(Unknown Source) [na:1.8.0_60] at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source) [na:1.8.0_60] at sun.nio.cs.StreamEncoder.implWrite(Unknown Source) [na:1.8.0_60] at sun.nio.cs.StreamEncoder.write(Unknown Source) [na:1.8.0_60] at sun.nio.cs.StreamEncoder.write(Unknown Source) [na:1.8.0_60] at java.io.OutputStreamWriter.write(Unknown Source) [na:1.8.0_60] at java.io.Writer.write(Unknown Source) [na:1.8.0_60] at java.io.Writer.append(Unknown Source) [na:1.8.0_60] at com.orientechnologies.orient.core.serialization.serializer.OJSONWriter.writeAttribute(OJSONWriter.java:425) [na:na] at com.orientechnologies.orient.core.serialization.serializer.OJSONWriter.writeAttribute(OJSONWriter.java:393) [na:na] at com.orientechnologies.orient.core.db.tool.ODatabaseExport.exportIndexDefinitions(ODatabaseExport.java:405) [com.orientechnologies.orientdb-core:2.1.10] at com.orientechnologies.orient.core.db.tool.ODatabaseExport.exportDatabase(ODatabaseExport.java:162) [com.orientechnologies.orientdb-core:2.1.10] at org.sonatype.nexus.orient.DatabaseExternalizerImpl.export(DatabaseExternalizerImpl.java:124) [org.sonatype.nexus.orient:3.0.0.02] at org.sonatype.nexus.internal.orient.PasswordSanitizedJsonSource.generate(PasswordSanitizedJsonSource.java:61) [org.sonatype.nexus.base:3.0.0.02] at org.sonatype.nexus.supportzip.GeneratedContentSourceSupport.prepare(GeneratedContentSourceSupport.java:51) [org.sonatype.nexus.supportzip-api:3.0.0.02] at org.sonatype.nexus.supportzip.SupportBundle$ContentSource$prepare$0.call(Unknown Source) [!/:na] at org.sonatype.nexus.internal.atlas.SupportZipGeneratorImpl$_generate_closure3.doCall(SupportZipGeneratorImpl.groovy:153) [org.sonatype.nexus.core:3.0.0.02] at sun.reflect.GeneratedMethodAccessor228.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_60] at java.lang.reflect.Method.invoke(Unknown Source) [na:1.8.0_60] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:442) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2030) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2015) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2056) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.dgm$162.invoke(Unknown Source) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [groovy-all:2.4.4] at org.sonatype.nexus.internal.atlas.SupportZipGeneratorImpl.generate(SupportZipGeneratorImpl.groovy:151) [org.sonatype.nexus.core:3.0.0.02] at org.sonatype.nexus.supportzip.SupportZipGenerator$generate.call(Unknown Source) [!/:na] at org.sonatype.nexus.coreui.atlas.SupportZipComponent.create(SupportZipComponent.groovy:53) [org.sonatype.nexus.plugins.nexus-coreui-plugin:3.0.0.02] at org.sonatype.nexus.coreui.atlas.SupportZipComponent$$EnhancerByGuice$$99e00341.CGLIB$create$2() [!/:na] at org.sonatype.nexus.coreui.atlas.SupportZipComponent$$EnhancerByGuice$$99e00341$$FastClassByGuice$$8b5fd16.invoke() [!/:na] at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [org.hibernate.validator:5.1.2.Final] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [org.apache.shiro.guice:1.2.4] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [org.apache.shiro.core:1.2.4] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [org.apache.shiro.guice:1.2.4] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [org.apache.shiro.guice:1.2.4] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [org.apache.shiro.core:1.2.4] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [org.apache.shiro.guice:1.2.4] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) [com.google.inject:4.0.0] at org.sonatype.nexus.coreui.atlas.SupportZipComponent$$EnhancerByGuice$$99e00341.create() [!/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_60] at java.lang.reflect.Method.invoke(Unknown Source) [na:1.8.0_60] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.0.0.02] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.extdirect:3.0.0.02] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:127) [org.sonatype.nexus.extdirect:3.0.0.02] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.02] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.02] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.0.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.0.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.02] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Unknown Source) [na:1.8.0_60] 2016-04-04 15:18:32,460-0400 ERROR [qtp829739733-101] admin org.sonatype.nexus.internal.atlas.SupportZipGeneratorImpl - Failed to create support ZIP com.orientechnologies.orient.core.db.tool.ODatabaseExportException: Error on exporting database 'security' to: streaming.json at com.orientechnologies.orient.core.db.tool.ODatabaseExport.exportDatabase(ODatabaseExport.java:171) [com.orientechnologies.orientdb-core:2.1.10] at org.sonatype.nexus.orient.DatabaseExternalizerImpl.export(DatabaseExternalizerImpl.java:124) [org.sonatype.nexus.orient:3.0.0.02] at org.sonatype.nexus.internal.orient.PasswordSanitizedJsonSource.generate(PasswordSanitizedJsonSource.java:61) [na:na] at org.sonatype.nexus.supportzip.GeneratedContentSourceSupport.prepare(GeneratedContentSourceSupport.java:51) [org.sonatype.nexus.supportzip-api:3.0.0.02] at org.sonatype.nexus.supportzip.SupportBundle$ContentSource$prepare$0.call(Unknown Source) [na:na] at org.sonatype.nexus.internal.atlas.SupportZipGeneratorImpl$_generate_closure3.doCall(SupportZipGeneratorImpl.groovy:153) [na:na] at sun.reflect.GeneratedMethodAccessor228.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_60] at java.lang.reflect.Method.invoke(Unknown Source) [na:1.8.0_60] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:442) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2030) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2015) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2056) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.dgm$162.invoke(Unknown Source) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [groovy-all:2.4.4] at org.sonatype.nexus.internal.atlas.SupportZipGeneratorImpl.generate(SupportZipGeneratorImpl.groovy:151) [na:na] at org.sonatype.nexus.supportzip.SupportZipGenerator$generate.call(Unknown Source) [!/:na] at org.sonatype.nexus.coreui.atlas.SupportZipComponent.create(SupportZipComponent.groovy:53) [org.sonatype.nexus.plugins.nexus-coreui-plugin:3.0.0.02] at org.sonatype.nexus.coreui.atlas.SupportZipComponent$$EnhancerByGuice$$99e00341.CGLIB$create$2() [!/:na] at org.sonatype.nexus.coreui.atlas.SupportZipComponent$$EnhancerByGuice$$99e00341$$FastClassByGuice$$8b5fd16.invoke() [!/:na] at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [org.hibernate.validator:5.1.2.Final] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [org.apache.shiro.guice:1.2.4] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [org.apache.shiro.core:1.2.4] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [org.apache.shiro.guice:1.2.4] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [org.apache.shiro.guice:1.2.4] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [org.apache.shiro.core:1.2.4] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [org.apache.shiro.guice:1.2.4] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) [com.google.inject:4.0.0] at org.sonatype.nexus.coreui.atlas.SupportZipComponent$$EnhancerByGuice$$99e00341.create() [!/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_60] at java.lang.reflect.Method.invoke(Unknown Source) [na:1.8.0_60] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.0.0.02] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.extdirect:3.0.0.02] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:127) [org.sonatype.nexus.extdirect:3.0.0.02] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.02] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.02] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.0.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.0.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.02] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Unknown Source) [na:1.8.0_60] Suppressed: com.fasterxml.jackson.core.JsonParseException: Unexpected character (',' (code 44)): expected a valid value (number, String, array, object, 'true', 'false' or 'null') at [Source: java.io.PipedInputStream@49f3bf15; line: 1, column: 2] at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1586) [na:na] at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:521) [na:na] at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:450) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleUnexpectedValue(UTF8StreamJsonParser.java:2628) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:854) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:748) [na:na] at org.sonatype.nexus.supportzip.SanitizingJsonOutputStream.lambda$0(SanitizingJsonOutputStream.java:58) [na:na] ... 1 common frames omitted Caused by: java.io.IOException: Pipe closed at java.io.PipedInputStream.checkStateForReceive(Unknown Source) [na:1.8.0_60] at java.io.PipedInputStream.awaitSpace(Unknown Source) [na:1.8.0_60] at java.io.PipedInputStream.receive(Unknown Source) [na:1.8.0_60] at java.io.PipedOutputStream.write(Unknown Source) [na:1.8.0_60] at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source) [na:1.8.0_60] at sun.nio.cs.StreamEncoder.implWrite(Unknown Source) [na:1.8.0_60] at sun.nio.cs.StreamEncoder.write(Unknown Source) [na:1.8.0_60] at sun.nio.cs.StreamEncoder.write(Unknown Source) [na:1.8.0_60] at java.io.OutputStreamWriter.write(Unknown Source) [na:1.8.0_60] at java.io.Writer.write(Unknown Source) [na:1.8.0_60] at java.io.Writer.append(Unknown Source) [na:1.8.0_60] at com.orientechnologies.orient.core.serialization.serializer.OJSONWriter.writeAttribute(OJSONWriter.java:425) [com.orientechnologies.orientdb-core:2.1.10] at com.orientechnologies.orient.core.serialization.serializer.OJSONWriter.writeAttribute(OJSONWriter.java:393) [com.orientechnologies.orientdb-core:2.1.10] at com.orientechnologies.orient.core.db.tool.ODatabaseExport.exportIndexDefinitions(ODatabaseExport.java:405) [com.orientechnologies.orientdb-core:2.1.10] at com.orientechnologies.orient.core.db.tool.ODatabaseExport.exportDatabase(ODatabaseExport.java:162) [com.orientechnologies.orientdb-core:2.1.10] ... 119 common frames omitted 2016-04-04 15:18:32,475-0400 ERROR [qtp829739733-101] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: atlas_SupportZip.create, java-method: org.sonatype.nexus.coreui.atlas.SupportZipComponent.create java.lang.NullPointerException: Cannot get property 'file' on null object at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:60) [na:na] at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:172) [na:na] at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:47) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:296) [na:na] at org.sonatype.nexus.coreui.atlas.SupportZipComponent.create(SupportZipComponent.groovy:54) [na:na] at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_60] at java.lang.reflect.Method.invoke(Unknown Source) [na:1.8.0_60] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.0.0.02] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.extdirect:3.0.0.02] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.extdirect:3.0.0.02] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:127) [org.sonatype.nexus.extdirect:3.0.0.02] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.02] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.02] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.0.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.0.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.02] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Unknown Source) [na:1.8.0_60] {code}",3 +"NEXUS-10044","04/06/2016 15:07:08","StackOverflowError when a group repository has itself as a member","# Start with a stock Nexus 3 setup. # Create a new maven 2 group repository, add the ""maven public"" group to it, save # Go the the ""maven public"" group repository configuration, add the new group you just created to it, save # Go to ""browse/components/maven public"" Result is a stack overflow. {noformat} 2016-04-06 09:01:02,466-0500 ERROR [qtp340872423-147] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Component.read, java-method: org.sonatype.nexus.coreui.ComponentComponent.read java.lang.StackOverflowError: null at java.lang.Exception.(Exception.java:102) [na:1.8.0_60] at java.lang.ReflectiveOperationException.(ReflectiveOperationException.java:89) [na:1.8.0_60] at java.lang.reflect.InvocationTargetException.(InvocationTargetException.java:72) [na:1.8.0_60] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:45) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.repository.group.GroupFacetImpl.members(GroupFacetImpl.java:141) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.repository.group.GroupFacetImpl.leafMembers(GroupFacetImpl.java:160) [na:na] at org.sonatype.nexus.repository.group.GroupFacetImpl.leafMembers(GroupFacetImpl.java:162) [na:na] at org.sonatype.nexus.repository.group.GroupFacetImpl.leafMembers(GroupFacetImpl.java:162) [na:na] at org.sonatype.nexus.repository.group.GroupFacetImpl.leafMembers(GroupFacetImpl.java:162) [na:na] at org.sonatype.nexus.repository.group.GroupFacetImpl.leafMembers(GroupFacetImpl.java:162) [na:na] at org.sonatype.nexus.repository.group.GroupFacetImpl.leafMembers(GroupFacetImpl.java:162) [na:na] at org.sonatype.nexus.repository.group.GroupFacetImpl.leafMembers(GroupFacetImpl.java:162) [na:na] at org.sonatype.nexus.repository.group.GroupFacetImpl.leafMembers(GroupFacetImpl.java:162) [na:na] at org.sonatype.nexus.repository.group.GroupFacetImpl.leafMembers(GroupFacetImpl.java:162) [na:na] at org.sonatype.nexus.repository.group.GroupFacetImpl.leafMembers(GroupFacetImpl.java:162) [na:na] at org.sonatype.nexus.repository.group.GroupFacetImpl.leafMembers(GroupFacetImpl.java:162) [na:na] at org.sonatype.nexus.repository.group.GroupFacetImpl.leafMembers(GroupFacetImpl.java:162) [na:na] {noformat} ",1 +"NEXUS-10049","04/06/2016 23:05:31","First time starting nexus via Docker has karaf log warn","Starting nexus for the first time via docker generates the below warn. No adverse behavior is noted so far but keeping for record and to avoid log spam. {code} 2016-04-05 19:14:32,950+0000 WARN [pool-4-thread-1] org.apache.karaf.features.internal.service.FeaturesServiceImpl - Can't update cfg file java.io.FileNotFoundException: /opt/sonatype/nexus/etc/org.apache.karaf.command.acl.feature.cfg (Permission denied) at java.io.FileOutputStream.open0(Native Method) [na:1.8.0_77] at java.io.FileOutputStream.open(FileOutputStream.java:270) [na:1.8.0_77] at java.io.FileOutputStream.(FileOutputStream.java:213) [na:1.8.0_77] at java.io.FileOutputStream.(FileOutputStream.java:162) [na:1.8.0_77] at org.apache.felix.utils.properties.Properties.save(Properties.java:152) [org.apache.karaf.features.core:4.0.4] at org.apache.felix.utils.properties.Properties.save(Properties.java:148) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeatureConfigInstaller.updateStorage(FeatureConfigInstaller.java:292) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeatureConfigInstaller.installFeatureConfigs(FeatureConfigInstaller.java:107) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.installFeature(FeaturesServiceImpl.java:1166) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:778) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1089) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:985) [org.apache.karaf.features.core:4.0.4] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_77] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] 2016-04-05 19:14:33,057+0000 WARN [pool-4-thread-1] org.apache.karaf.features.internal.service.FeaturesServiceImpl - Can't update cfg file java.io.FileNotFoundException: /opt/sonatype/nexus/etc/org.apache.karaf.command.acl.bundle.cfg (Permission denied) at java.io.FileOutputStream.open0(Native Method) [na:1.8.0_77] at java.io.FileOutputStream.open(FileOutputStream.java:270) [na:1.8.0_77] at java.io.FileOutputStream.(FileOutputStream.java:213) [na:1.8.0_77] at java.io.FileOutputStream.(FileOutputStream.java:162) [na:1.8.0_77] at org.apache.felix.utils.properties.Properties.save(Properties.java:152) [org.apache.karaf.features.core:4.0.4] at org.apache.felix.utils.properties.Properties.save(Properties.java:148) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeatureConfigInstaller.updateStorage(FeatureConfigInstaller.java:292) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeatureConfigInstaller.installFeatureConfigs(FeatureConfigInstaller.java:107) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.installFeature(FeaturesServiceImpl.java:1166) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:778) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1089) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:985) [org.apache.karaf.features.core:4.0.4] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_77] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] 2016-04-05 19:14:33,091+0000 WARN [pool-4-thread-1] org.apache.karaf.features.internal.service.FeaturesServiceImpl - Can't update cfg file java.io.FileNotFoundException: /opt/sonatype/nexus/etc/org.apache.karaf.command.acl.system.cfg (Permission denied) at java.io.FileOutputStream.open0(Native Method) [na:1.8.0_77] at java.io.FileOutputStream.open(FileOutputStream.java:270) [na:1.8.0_77] at java.io.FileOutputStream.(FileOutputStream.java:213) [na:1.8.0_77] at java.io.FileOutputStream.(FileOutputStream.java:162) [na:1.8.0_77] at org.apache.felix.utils.properties.Properties.save(Properties.java:152) [org.apache.karaf.features.core:4.0.4] at org.apache.felix.utils.properties.Properties.save(Properties.java:148) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeatureConfigInstaller.updateStorage(FeatureConfigInstaller.java:292) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeatureConfigInstaller.installFeatureConfigs(FeatureConfigInstaller.java:107) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.installFeature(FeaturesServiceImpl.java:1166) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:778) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1089) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:985) [org.apache.karaf.features.core:4.0.4] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_77] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] 2016-04-05 19:14:33,106+0000 WARN [pool-4-thread-1] org.apache.karaf.features.internal.service.FeaturesServiceImpl - Can't update cfg file java.io.FileNotFoundException: /opt/sonatype/nexus/etc/org.apache.karaf.command.acl.shell.cfg (Permission denied) at java.io.FileOutputStream.open0(Native Method) [na:1.8.0_77] at java.io.FileOutputStream.open(FileOutputStream.java:270) [na:1.8.0_77] at java.io.FileOutputStream.(FileOutputStream.java:213) [na:1.8.0_77] at java.io.FileOutputStream.(FileOutputStream.java:162) [na:1.8.0_77] at org.apache.felix.utils.properties.Properties.save(Properties.java:152) [org.apache.karaf.features.core:4.0.4] at org.apache.felix.utils.properties.Properties.save(Properties.java:148) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeatureConfigInstaller.updateStorage(FeatureConfigInstaller.java:292) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeatureConfigInstaller.installFeatureConfigs(FeatureConfigInstaller.java:107) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.installFeature(FeaturesServiceImpl.java:1166) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:773) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1089) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:985) [org.apache.karaf.features.core:4.0.4] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_77] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] 2016-04-05 19:14:33,120+0000 WARN [pool-4-thread-1] org.apache.karaf.features.internal.service.FeaturesServiceImpl - Can't update cfg file java.io.FileNotFoundException: /opt/sonatype/nexus/etc/org.apache.karaf.command.acl.jaas.cfg (Permission denied) at java.io.FileOutputStream.open0(Native Method) [na:1.8.0_77] at java.io.FileOutputStream.open(FileOutputStream.java:270) [na:1.8.0_77] at java.io.FileOutputStream.(FileOutputStream.java:213) [na:1.8.0_77] at java.io.FileOutputStream.(FileOutputStream.java:162) [na:1.8.0_77] at org.apache.felix.utils.properties.Properties.save(Properties.java:152) [org.apache.karaf.features.core:4.0.4] at org.apache.felix.utils.properties.Properties.save(Properties.java:148) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeatureConfigInstaller.updateStorage(FeatureConfigInstaller.java:292) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeatureConfigInstaller.installFeatureConfigs(FeatureConfigInstaller.java:107) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.installFeature(FeaturesServiceImpl.java:1166) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:778) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1089) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:985) [org.apache.karaf.features.core:4.0.4] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_77] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] 2016-04-05 19:14:33,167+0000 WARN [pool-4-thread-1] org.apache.karaf.features.internal.service.FeaturesServiceImpl - Can't update cfg file java.io.FileNotFoundException: /opt/sonatype/nexus/etc/org.apache.karaf.command.acl.config.cfg (Permission denied) at java.io.FileOutputStream.open0(Native Method) [na:1.8.0_77] at java.io.FileOutputStream.open(FileOutputStream.java:270) [na:1.8.0_77] at java.io.FileOutputStream.(FileOutputStream.java:213) [na:1.8.0_77] at java.io.FileOutputStream.(FileOutputStream.java:162) [na:1.8.0_77] at org.apache.felix.utils.properties.Properties.save(Properties.java:152) [org.apache.karaf.features.core:4.0.4] at org.apache.felix.utils.properties.Properties.save(Properties.java:148) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeatureConfigInstaller.updateStorage(FeatureConfigInstaller.java:292) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeatureConfigInstaller.installFeatureConfigs(FeatureConfigInstaller.java:107) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.installFeature(FeaturesServiceImpl.java:1166) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:778) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1089) [org.apache.karaf.features.core:4.0.4] at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:985) [org.apache.karaf.features.core:4.0.4] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_77] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] {code} This file is new to 3.0.0. Did not check NX2 at this time.",0.5 +"NEXUS-10052","04/07/2016 21:00:08","Bower does not work with context path","Noticed that when using a context path in Nexus when you put that path into your .bowerrc the resultant interactions error with errors like below. Only workaround seems to be not to use a context path. I am not sure how critical context path is for people so leaving major for now. On sudo bower --allow-root install jquery {quote} bower not-cached nexus+http://localhost:8081/nexus/repository/bower-group/jquery#* bower resolve nexus+http://localhost:8081/nexus/repository/bower-group/jquery#* bower error http://localhost:8081/repository/repository/bower-group/versions.json (HTTP 404) Stack trace: Error: http://localhost:8081/repository/repository/bower-group/versions.json (HTTP 404) at Request._callback (/usr/local/lib/node_modules/bower-nexus3-resolver/src/index.js:212:20) at Request.self.callback (/usr/local/lib/node_modules/bower-nexus3-resolver/node_modules/request/request.js:198:22) at Request.emit (events.js:110:17) at Request. (/usr/local/lib/node_modules/bower-nexus3-resolver/node_modules/request/request.js:1035:10) at Request.emit (events.js:129:20) at IncomingMessage. (/usr/local/lib/node_modules/bower-nexus3-resolver/node_modules/request/request.js:962:12) at IncomingMessage.emit (events.js:129:20) at _stream_readable.js:908:16 at process._tickCallback (node.js:355:11) Console trace: Error at StandardRenderer.error (/usr/local/lib/node_modules/bower/lib/renderers/StandardRenderer.js:83:37) at Logger. (/usr/local/lib/node_modules/bower/lib/bin/bower.js:110:26) at Logger.emit (events.js:107:17) at Logger.emit (/usr/local/lib/node_modules/bower/lib/node_modules/bower-logger/lib/Logger.js:29:39) at /usr/local/lib/node_modules/bower/lib/commands/index.js:48:20 at _rejected (/usr/local/lib/node_modules/bower/lib/node_modules/q/q.js:844:24) at /usr/local/lib/node_modules/bower/lib/node_modules/q/q.js:870:30 at Promise.when (/usr/local/lib/node_modules/bower/lib/node_modules/q/q.js:1122:31) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/bower/lib/node_modules/q/q.js:788:41) at /usr/local/lib/node_modules/bower/lib/node_modules/q/q.js:604:44 System info: Bower version: 1.7.7 Node version: 0.12.9 OS: Darwin 15.4.0 x64 {quote} Setup was with a single bower group containing a bower proxy and context path /nexus/. Bower is new to 3.0.0 so no backcheck (or NX2 check) can be done.",0.5 +"NEXUS-10056","04/08/2016 15:56:23","Double image not accepted as leadin header","Noticed the attached in http://books.sonatype.com/nexus-book/3.0/reference/using.html specifically that the usual text image lead to describe the sections seems to be failing for 2 sections/images at once. I included the working work above it (Help) in the attachment for comparison. This affects both the html site and the pdf.",0.5 +"NEXUS-10057","04/08/2016 16:46:17","Documentation image off","To me in both pdf and website, the image http://books.sonatype.com/nexus-book/3.0/reference/figs/web/users-create.png appears off. Specifically, the bottom seems ""shifted"" (see attached - arrow added by me). If this seems familiar, I noticed it previously in NEXUS-9906 but seems to have been deployed like that. Since I think this can be tweaked better, I am filing. For ref this shows in http://books.sonatype.com/nexus-book/3.0/reference/security.html",0.5 +"NEXUS-10059","04/08/2016 18:02:56","404 response from Nexus 2 proxying Nexus 3 due to auto-routing","Topology is as follows: RSO -> Nexus 3 -> Nexus 2 -> Maven Output of the build command: https://gist.github.com/djsauble/ed607c27e48356750d0b1a55d37c6cec I checked, and the Nexus 3 instance does have the missing JAR, so that proxy appears to be set up correctly. Support ZIPs from both the Nexus 3 and Nexus 2 instances are attached.",2 +"NEXUS-10066","04/11/2016 18:41:41","Startup Java version check is fragile, blocks startup in cases where it shouldn't","An end user has has this Java: {noformat} $ java -version openjdk version ""1.8.0-internal"" OpenJDK Runtime Environment (build 1.8.0-internal-tools_2015_07_09_11_47-b00) OpenJDK 64-Bit Server VM (build 25.0-b70, mixed mode) {noformat} Using this, they cannot start Nexus 3: {noformat} $ ./nexus run invalid version ""1.8.0-internal"": non-numeric ""0-internal"" {noformat} This seems wrong to me. I think it's find to log a warning for an unsupported version, but we shouldn't flat out prevent startup. ",1 +"NEXUS-10069","04/14/2016 11:06:32","npm install against a group repository with nested group member fails with 500 status","""npm install "" from a nested group repo fails with a 500 response from Nexus. This is easily to setup and reproduce. npmjs (proxy) and npm-internal (hosted) -> nmp-all (group) -> npm-top-group (group) npm registry setting is pointing to npm-top-group Acceptance Criteria: * All metadata should be merged, respecting the order of the repositories, first in the tree should win * A user should be able to install a package from a nested group NOTES: * Check Maven to see if this issue also occurs here {noformat} $ npm -loglevel info install grunt npm info it worked if it ends with ok npm info using npm@3.7.3 npm info using node@v0.10.42 npm info attempt registry request try #1 at 10:48:05 npm http request GET http://localhost:8081/repository/npm-top-group/grunt npm http 500 http://localhost:8081/repository/npm-top-group/grunt npm ERR! registry error parsing json npm info retry will retry, error on last attempt: SyntaxError: Unexpected token < npm info retry npm info retry npm info retry npm info retry npm info retry 500 - Nexus Repository Manager npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry
npm info retry
npm info retry npm info retry Error 500 npm info retry Internal Server Error npm info retry
npm info retry
npm info retry
npm info retry javax.servlet.ServletException: java.lang.NullPointerException npm info retry
npm info retry
npm info retry
npm info retry npm info retry npm info retry npm info retry {noformat} {noformat} 127.0.0.1 - admin [14/Apr/2016:10:48:15 +0100] ""GET /repository/npm-top-group/grunt HTTP/1.1"" 500 1848 71 {noformat} {noformat} 2016-04-14 10:48:15,930+0100 WARN [qtp1750092014-104] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure java.lang.NullPointerException: null at com.sonatype.nexus.repository.npm.internal.NpmMetadataUtils.rewriteTarballUrl(NpmMetadataUtils.java:142) [na:na] at sun.reflect.GeneratedMethodAccessor198.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_65] {noformat}",2 +"NEXUS-10087","04/15/2016 13:27:35","Valid Maven POM is misidentified as HTML by content verification","On a fresh Nexus instance create a proxy repository called ""RSO"" for https://repository.sonatype.org/content/repositories/sonatype-internal/ and make sure content verification is enabled (it should be on by default) Now try to access http://127.0.0.1:8081/repository/RSO/com/sonatype/insight/ci/insight-ci-parent/2.14.4/insight-ci-parent-2.14.4.pom you will receive a 404 with the following message: {quote} Detected content type \[text/html], but expected \[application/xml, text/xml, application/x-xml]: com/sonatype/insight/ci/insight-ci-parent/2.14.4/insight-ci-parent-2.14.4.pom.xml {quote} Turning off content verification allows this POM to be downloaded, but we should investigate why it misidentified the content in this case.",1 +"NEXUS-10102","04/18/2016 16:24:18","generating support zip with configuration option requires external internet access","Generating support zip with configuration requires access to “eclipse.org” Nexus is tryiing to contact http://198.41.30.198/ which is the main Eclipse web site. With external internet access blocked, Support zip generation (with configuration) fails with the following: {noformat} 2016-04-15 16:00:58,003+0100 ERROR [qtp2038224463-124] admin org.sonatype.nexus.internal.atlas.SupportZipGeneratorImpl - Failed to create support ZIP javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Connection timed out at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:749) [na:1.8.0_72] at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:351) [na:1.8.0_72] at org.sonatype.nexus.supportzip.SanitizedXmlSourceSupport.prepare(SanitizedXmlSourceSupport.java:70) [org.sonatype.nexus.supportzip-api:3.0.0.03] at org.sonatype.nexus.supportzip.SupportBundle$ContentSource$prepare.call(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [groovy-all:2.4.4] at org.sonatype.nexus.supportzip.SupportBundle$ContentSource$prepare$2.call(Unknown Source) [na:na] at org.sonatype.nexus.internal.atlas.SupportZipGeneratorImpl$_generate_closure3.doCall(SupportZipGeneratorImpl.groovy:153) [na:na] at sun.reflect.GeneratedMethodAccessor361.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_72] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_72] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:442) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2030) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2015) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2056) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.dgm$162.invoke(Unknown Source) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [groovy-all:2.4.4] at org.sonatype.nexus.internal.atlas.SupportZipGeneratorImpl.generate(SupportZipGeneratorImpl.groovy:151) [na:na] at org.sonatype.nexus.supportzip.SupportZipGenerator$generate.call(Unknown Source) [!/:na] at org.sonatype.nexus.coreui.atlas.SupportZipComponent.create(SupportZipComponent.groovy:53) [org.sonatype.nexus.plugins.nexus-coreui-plugin:3.0.0.03] at org.sonatype.nexus.coreui.atlas.SupportZipComponent$$EnhancerByGuice$$44697b5d.CGLIB$create$8() [!/:na] at org.sonatype.nexus.coreui.atlas.SupportZipComponent$$EnhancerByGuice$$44697b5d$$FastClassByGuice$$a91fe228.invoke() [!/:na] at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [org.hibernate.validator:5.1.2.Final] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [org.apache.shiro.guice:1.2.4] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [org.apache.shiro.core:1.2.4] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [org.apache.shiro.guice:1.2.4] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [org.apache.shiro.guice:1.2.4] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [org.apache.shiro.core:1.2.4] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [org.apache.shiro.guice:1.2.4] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) [com.google.inject:4.0.0] at org.sonatype.nexus.coreui.atlas.SupportZipComponent$$EnhancerByGuice$$44697b5d.create() [!/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_72] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_72] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_72] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_72] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.0.0.03] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.0.0.03] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.0.0.03] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.0.0.03] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.0.0.03] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.0.0.03] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.extdirect:3.0.0.03] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.extdirect:3.0.0.03] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.extdirect:3.0.0.03] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.extdirect:3.0.0.03] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.extdirect:3.0.0.03] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:127) [org.sonatype.nexus.extdirect:3.0.0.03] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.03] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.03] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.0.03] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.0.03] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.03] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:197) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_72] Caused by: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Connection timed out at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(TransformerImpl.java:578) [na:1.8.0_72] at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:739) [na:1.8.0_72] ... 123 common frames omitted Caused by: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Connection timed out at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:427) [na:1.8.0_72] at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:215) [na:1.8.0_72] at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(TransformerImpl.java:556) [na:1.8.0_72] ... 124 common frames omitted {noformat} h3. Expected - when generating a support zip, generation must not fail if external network access is not available - do NOT attempt any external network access when generating support zip",0.5 +"NEXUS-10110","04/19/2016 16:50:38","Publish Maven Indexes task does not always fetch remote index to make it searchable","I configured a proxy repo called nx2-proxy-hosted in nx3 proxying a hosted release repo that is publishing indexes in Nexus 2. While I can directly confirm using curl that the nx 2 repo is publishing a Maven index, Nexus 3 does not want to seem to get it when the Publish Indexes task is run in Nexus 3 {noformat} 2016-04-19 12:43:46,599-0300 DEBUG [qtp1870741025-270] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Invoking action method: coreui_Task.run, java-method: org.sonatype.nexus.coreui.TaskComponent.run 2016-04-19 12:43:46,601-0300 INFO [qtp1870741025-270] admin org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Publish Indexes' [repository.maven.publish-dotindex] runNow 2016-04-19 12:43:46,602-0300 INFO [qtp1870741025-270] admin org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task nexus.3bf28f1b-4133-4856-beea-094420dedfda : 'Publish Indexes' [repository.maven.publish-dotindex] state change WAITING -> RUNNING 2016-04-19 12:43:46,603-0300 DEBUG [qtp1870741025-270] admin org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Store trigger: trigger=Trigger 'DEFAULT.MT_7rhccphq5cln7': triggerClass: 'org.quartz.impl.triggers.SimpleTriggerImpl calendar: 'null' misfireInstruction: 0 nextFireTime: Tue Apr 19 12:43:46 ADT 2016, replaceExisting=false 2016-04-19 12:43:46,604-0300 DEBUG [nexus_QuartzSchedulerThread] *SYSTEM org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Acquire next triggers: noLaterThan=1461080656604, maxCount=1, timeWindow=0 2016-04-19 12:43:46,604-0300 DEBUG [qtp1870741025-270] admin com.softwarementors.extjs.djn.Timer - - Java method dispatch time (TaskComponent.run): 5.99 ms. 2016-04-19 12:43:46,605-0300 DEBUG [qtp1870741025-270] admin com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor - ResponseData data (JSON)=>{ ""tid"": 27, ""action"": ""coreui_Task"", ""method"": ""run"", ""result"": { ""success"": true, ""data"": null }, ""type"": ""rpc"" } 2016-04-19 12:43:46,605-0300 DEBUG [qtp1870741025-270] admin com.softwarementors.extjs.djn.Timer - Total servlet processing time: 6.51 ms. 2016-04-19 12:43:46,607-0300 DEBUG [nexus_QuartzSchedulerThread] *SYSTEM org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Triggers fired: [Trigger 'DEFAULT.MT_7rhccphq5cln7': triggerClass: 'org.quartz.impl.triggers.SimpleTriggerImpl calendar: 'null' misfireInstruction: 0 nextFireTime: Tue Apr 19 12:43:46 ADT 2016] 2016-04-19 12:43:46,608-0300 DEBUG [nexus_QuartzSchedulerThread] *SYSTEM org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Trigger fired: Trigger 'DEFAULT.MT_7rhccphq5cln7': triggerClass: 'org.quartz.impl.triggers.SimpleTriggerImpl calendar: 'null' misfireInstruction: 0 nextFireTime: Tue Apr 19 12:43:46 ADT 2016 2016-04-19 12:43:46,612-0300 DEBUG [nexus_QuartzSchedulerThread] *SYSTEM org.sonatype.nexus.quartz.internal.JobFactoryImpl - New job: class org.sonatype.nexus.quartz.internal.task.QuartzTaskJob 2016-04-19 12:43:46,612-0300 DEBUG [nexus_QuartzSchedulerThread] *SYSTEM org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Acquire next triggers: noLaterThan=1461080656612, maxCount=1, timeWindow=0 2016-04-19 12:43:46,616-0300 DEBUG [quartz-2-thread-13] *SYSTEM org.sonatype.nexus.scheduling.internal.TaskFactoryImpl - Creating task instance: {.updated=2016-04-19T11:39:13.997-03:00, .name=Publish Indexes, .enabled=true, .message=Publish Maven indexes of nx2-proxy-hosted, .id=76d47b07-ec3f-4144-9878-7c5cdc67f483, .typeName=Publish Maven indexes, .visible=true, repositoryName=nx2-proxy-hosted, .typeId=repository.maven.publish-dotindex, .created=2016-04-08T14:07:40.704-03:00} 2016-04-19 12:43:46,618-0300 DEBUG [quartz-2-thread-13] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskFuture - Task 3bf28f1b-4133-4856-beea-094420dedfda : 'Publish Indexes' [repository.maven.publish-dotindex] runState transition STARTING -> RUNNING 2016-04-19 12:43:46,618-0300 DEBUG [quartz-2-thread-13] *SYSTEM org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyIndexFacet - Fetching maven index properties from remote 2016-04-19 12:43:46,619-0300 DEBUG [quartz-2-thread-13] *SYSTEM org.sonatype.nexus.repository.maven.internal.MavenFacetImpl - GET nx2-proxy-hosted : .index/nexus-maven-repository-index.properties 2016-04-19 12:43:46,620-0300 DEBUG [quartz-2-thread-13] *SYSTEM org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyIndexFacet - No remote index found... nothing to publish 2016-04-19 12:43:46,622-0300 INFO [quartz-2-thread-13] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task nexus.3bf28f1b-4133-4856-beea-094420dedfda : 'Publish Indexes' [repository.maven.publish-dotindex] state change RUNNING -> WAITING (OK) 2016-04-19 12:43:46,622-0300 DEBUG [quartz-2-thread-13] *SYSTEM org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Triggered job complete: trigger=Trigger 'DEFAULT.MT_7rhccphq5cln7': triggerClass: 'org.quartz.impl.triggers.SimpleTriggerImpl calendar: 'null' misfireInstruction: 0 nextFireTime: null, jobDetail=JobDetail 'nexus.3bf28f1b-4133-4856-beea-094420dedfda': jobClass: 'org.sonatype.nexus.quartz.internal.task.QuartzTaskJob concurrentExectionDisallowed: true persistJobDataAfterExecution: true isDurable: false requestsRecovers: false, instruction=DELETE_TRIGGER 2016-04-19 12:43:46,624-0300 DEBUG [nexus_QuartzSchedulerThread] *SYSTEM org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Acquire next triggers: noLaterThan=1461080656624, maxCount=1, timeWindow=0 {noformat} Notice the Nexus 3 logs says it tried to get the index properties file, but there was no http traffic recorded even though org.apache.http logger was set to DEBUG and I had Nexus 3 using charles proxy monitoring traffic. ",2 +"NEXUS-10115","04/20/2016 17:44:32","Docker proxy repository ConnectionPoolTimeoutException Timeout waiting for connection from pool","After nexus3 has been running for a few days, the docker proxy repositories start timing out. We have nginx in front of nexus3 and see the following message: {code} $ docker pull docker.englishtown.com/eflabs/kafka:0.9.0.1 Pulling repository docker.englishtown.com/eflabs/kafka Error: Status 504 trying to pull repository eflabs/kafka: ""\r\n504 Gateway Time-out\r\n\r\n

504 Gateway Time-out

\r\n
nginx/1.4.6 (Ubuntu)
\r\n\r\n\r\n"" {code} Looking at the nexus log file there is a timeout trying to get a connection from the pool. I would guess at some point connections are not being returned to the pool: {code} 2016-04-20 12:18:50,798-0400 WARN [qtp1912742844-9246] docker-reader org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl - Failed to fetch: v1/repositories/eflabs/kafka/images org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.leaseConnection(PoolingHttpClientConnectionManager.java:286) [na:na] at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$1.get(PoolingHttpClientConnectionManager.java:263) [na:na] at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:190) [na:na] at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) [na:na] at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) [na:na] at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) [na:na] at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) [httpcore:0.0.0] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) [httpcore:0.0.0] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) [httpcore:0.0.0] at org.sonatype.nexus.repository.httpclient.FilteredHttpClient$2.call(FilteredHttpClient.java:196) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.httpclient.FilteredHttpClient$2.call(FilteredHttpClient.java:1) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.httpclient.FilteredHttpClient.filter(FilteredHttpClient.java:99) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.httpclient.FilteredHttpClient.execute(FilteredHttpClient.java:192) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.execute(DockerProxyFacetImpl.java:285) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:222) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:202) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:164) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:48) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [3.0.0-03:na] at org.sonatype.nexus.repository.docker.internal.V1Handlers$_closure20.doCall(V1Handlers.groovy:301) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at sun.reflect.GeneratedMethodAccessor400.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_66] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_66] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy126.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [3.0.0-03:na] at org.sonatype.nexus.repository.docker.internal.V1Handlers$_closure19.doCall(V1Handlers.groovy:273) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at sun.reflect.GeneratedMethodAccessor383.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_66] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_66] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy126.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [3.0.0-03:na] at org.sonatype.nexus.repository.docker.internal.V1Handlers$_closure12.doCall(V1Handlers.groovy:183) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at sun.reflect.GeneratedMethodAccessor399.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_66] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_66] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy126.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [3.0.0-03:na] at org.sonatype.nexus.repository.docker.internal.V1Handlers$_closure18.doCall(V1Handlers.groovy:250) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at sun.reflect.GeneratedMethodAccessor382.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_66] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_66] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy126.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [3.0.0-03:na] at org.sonatype.nexus.repository.docker.internal.V1Handlers$_closure17.doCall(V1Handlers.groovy:245) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at sun.reflect.GeneratedMethodAccessor381.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_66] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_66] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy126.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.group.GroupHandler.getFirst(GroupHandler.java:118) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.group.GroupHandler.doGet(GroupHandler.java:95) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [3.0.0-03:na] at org.sonatype.nexus.repository.docker.internal.V1Handlers$_closure19.doCall(V1Handlers.groovy:273) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at sun.reflect.GeneratedMethodAccessor383.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_66] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_66] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy126.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [3.0.0-03:na] at org.sonatype.nexus.repository.docker.internal.V1Handlers$_closure18.doCall(V1Handlers.groovy:250) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at sun.reflect.GeneratedMethodAccessor382.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_66] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_66] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy126.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [3.0.0-03:na] at org.sonatype.nexus.repository.docker.internal.V1Handlers$_closure17.doCall(V1Handlers.groovy:245) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at sun.reflect.GeneratedMethodAccessor381.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_66] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_66] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy126.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.03] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.03] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.03] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.03] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.03] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.0.03] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.0.03] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.03] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66] 2016-04-20 12:18:50,801-0400 WARN [qtp1912742844-9246] docker-reader org.sonatype.nexus.repository.docker.internal.V1Handlers - Error: GET /v1/repositories/eflabs/kafka/images: 404 - org.sonatype.nexus.repository.docker.internal.V1Exception$ImagesNotFound: images not found {code} Restarting the nexus3 service temporarily resolves the issue. As a work around, we schedule a daily restart. We are running OSS 3.0.0-03, but saw the same issue in m7.",0.5 +"NEXUS-10131","04/25/2016 18:43:16","“Stop Monitoring” button should not be displayed when no repositories are being synced","During migration, we show a “Stop Monitoring” button so people can tell the system to stop looking for changes in repositories that are being migrated. If no repositories are migrated, this button is not needed (in fact, it currently prevents you from finalizing the migration). We need an additional check to ensure that the “Stop Monitoring” button is not displayed when no repositories are migrated (and to display the “Finish” button instead).",0.5 +"NEXUS-10144","04/27/2016 17:59:24","improve robustness of NuGet case insensitive package ID matching","Background: NEXUS-8941 implements a fix for Nexus handling Nuget package IDs in a case-sensitive manner, but because it doesn't have the benefit of upgrade, it's implemented by modifying queries. Acceptance Criteria: Once upgrade is in place, pull out the query-modifying and use (e.g.) DB-level case-insensitive collation. Developer's Notes: Note that because of an Orient bug we can't completely rely on case-insensitive semantics working, so there is still the need for some query-modifying, just that we can limit it to particular situations in a more targeted way now. For now working on the basis that we should try to remove as much of the cruft as possible.",3 +"NEXUS-10147","04/27/2016 19:24:15","add ability to dump invalid JSON payloads submitted by docker on parse errors","Nexus may fail parsing docker client JSON payloads. When this happens we see an exception that refers to a token, but we have no easy way inside Nexus to get the complete invalid payload. {noformat} 2016-04-19 15:10:11,307+0100 DEBUG [qtp1004501170-40] admin org.sonatype.nexus.repository.docker.internal.DockerContentValidator - Invalid JSON file v2/-/blobs/sha256:41f11486b420ff71ab6334060f9cd36129358b6442edce01f1bb05a7d1cdd8a6 com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'opt': was expecting ('true', 'false' or 'null') at [Source: sun.nio.ch.ChannelInputStream@72441c66; line: 1, column: 5] at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1586) [com.fasterxml.jackson.core.jackson-core:2.7.1] at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:521) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidToken(UTF8StreamJsonParser.java:3466) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleUnexpectedValue(UTF8StreamJsonParser.java:2625) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:854) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:748) [na:na] at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:3828) [com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3773) [com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2856) [com.fasterxml.jackson.core.jackson-databind:2.7.1] at org.sonatype.nexus.repository.docker.internal.DockerContentValidator.isValidJson(DockerContentValidator.java:221) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at org.sonatype.nexus.repository.docker.internal.DockerContentValidator.v2DetermineContentType(DockerContentValidator.java:146) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at org.sonatype.nexus.repository.docker.internal.DockerContentValidator.determineContentType(DockerContentValidator.java:87) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at org.sonatype.nexus.repository.storage.StorageTxImpl.determineContentType(StorageTxImpl.java:717) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.storage.StorageTxImpl.createBlob(StorageTxImpl.java:544) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.storage.StorageTxImpl.setBlob(StorageTxImpl.java:651) [org.sonatype.nexus.repository:3.0.0.03] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_72] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_72] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_72] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_72] {noformat} Acceptance - print the full JSON payload in the nexus.log if there is a parse error - -ideally print the line/character number in the JSON payload where the error is detected- parse exception already does this - make it configurable to print or not print the payload ( in case the payload could contain sensitive data )",1 +"NEXUS-10149","04/27/2016 22:21:29","npm login returns 404 for npm proxy repositories","npm login commands work with NPM group repos and hosted repos. npm login commands for proxy repositories return 404. npm login should work with Nexus NPM proxy repositories. Our book does not make this distinction and there is no reason I know of that you would not want npm login to work with an npm proxy repository. ",1 +"NEXUS-10150","04/28/2016 02:16:21","Migration - Can't migrate empty group","Currently, NX prevents migration of groups without all of their members, but it should be legal to migrate a group that has no members whatsoever. Currently this causes migration to hang.",2 +"NEXUS-10154","04/28/2016 19:40:07","OrientDb allocates massive disk cache on large systems","OrientDB uses an automatic tuning algorithm to determine the upper size of its native memory disk cache. This algorithm assumes that serving Orient is the primary function of the box, and on larger system can end up allocating gigantic caches (on a system with a 1TB drive and 32Gb memory, Orient set an upper cache size of 29Gb). A pmap will show a large number of 'anon' segments: {{00007f67dc000000 65508K rw--- [ anon ] 00007f67dfff9000 28K ----- [ anon ] 00007f67e0000000 65508K rw--- [ anon ] 00007f67e3ff9000 28K ----- [ anon ] 00007f67e4000000 65508K rw--- [ anon ] 00007f67e7ff9000 28K ----- [ anon ] 00007f67e8000000 65508K rw--- [ anon ] 00007f67ebff9000 28K ----- [ anon ] 00007f67ec000000 65504K rw--- [ anon ] 00007f67efff8000 32K ----- [ anon ] }} [~mcculls] points out that a system property can be used to set an explicit cache size (in Mb): storage.diskCache.bufferSize=4096 We should consider: * Setting an appropriate maximum * Writing an algorithm that will replace Orient's tuning calculation, given that we're using Orient in an embedded mode * Documenting this property as something clients might tune on large installations",3 +"NEXUS-10157","04/28/2016 23:33:55","Excessive WARN when pulling from docker group","I noticed a bunch of warns like this when testing docker 1.11.1. It appeared there was one for every layer I pulled that wasn't in the repository when I pulled from a docker group. For reference, some images can have 5-7+ layers. Pulling from proxy generated no such warn. There was no warn for layers that already existed so hypothetically this would be a diminishing concern over time (tho you could be utilizing new layers everyday, not sure how it works in practice). {code} 2016-04-28 18:30:55,410-0400 WARN [qtp196508385-1416] admin org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/sonatype/nexus/blobs/sha256:7138b67bf6c5578dc65d01ada77a8b3f7ba8d1b56c3a15fcf43b5c91ab51012a: 404 - org.sonatype.nexus.repository.docker.internal.V2Exception$BlobNotFound: blob unknown to registry {code} This seems excessive to do on the WARN level when there is no (as far as I can tell) adverse behavior. Filing for triage discussion. I did not check older NX3 or older docker at this time.",1 +"NEXUS-10162","04/29/2016 21:15:14","migrating NXRM2 to NXRM3 automatically enables legacy content URLs","According to the requirements in ----NEXUS-9976---- a migrated 3.x installation should automatically support the old legacy URL patterns. For v2 content URLs to work, however, a system property must be defined org.sonatype.nexus.repository.httpbridge.internal.HttpBridgeModule.legacy=true, and this isn't happening automatically. *Acceptance* * 2x-3x upgrade should automatically enable the v2 content URLs * implementing this as a capability that gets injected and activated in Nexus 3 on migration start would be great! - otherwise if a property is used, inject it into nexus.properties under the work directory. Support still needs to have a way to tell this is enabled ( currently we just look in nexus-default.properties or nexus.properties ) and the end user still needs to have an easy way to tell as well ( presence of property in nexus.properties or capability in UI ) * Minimize upgrade impact to users that have already migrated and made decisions about turning this feature on or off *Notes* * There's value in having this as a capability * While you're in there, make a mental note if you spot any obvious signs that a given NXRM3 instance (or individual repos) were migrated from NXRM2",5 +"NEXUS-10163","04/30/2016 01:04:59","HTTP authentication lost in migration","I migrated my sonatype-grid-releases as well as my maven-oracle proxy repo across. Both had HTTP authentication defined (and required) and that was no longer configured in 3.x after the migration. This essentially breaks those repositories, but there was no error message in the migration process at all. ",1 +"NEXUS-10164","04/30/2016 01:07:30","add support proxying maven.oracle.com in nexus 3","*Acceptance* * Nexus 3 maven2 proxy repo configuration should have an option for supporting circular redirects (as NX2 does) * This setting should be migrated from NX2 during maven2 proxy repo migration. * This feature should be documented in the book. I configured my maven-oracle repo after migration to have the right credentials but I am not sure how to configure the rest of the setup so it continues to work as it did in 2.x. See [http://maven.oracle.com] and [https://support.sonatype.com/hc/en-us/articles/213465728-How-to-configure-a-proxy-repository-to-maven-oracle-com] for more info. At the very least it should throw some sort of warning during the migration if this circula redirect is configured for a repo.",5 +"NEXUS-10166","05/02/2016 17:55:13","RedHat docker 1.8.2 push HTTP PUT uploads tar content instead of gzip and triggers JsonParseException 400","These commands can trigger Nexus to return a HTTP 400 response while reading already stored docker blob data. docker import rhel7.tar docker tag nexusrepo:port/foo docker push nexusrepo:port/foo To review, Docker Client 1.8.2 is submitting a JSON payload as part of PATCH requests that Nexus 3.0.0 stores into blobs - at the end of all the chunked uploads, the docker client tries to end the upload with a HTTP PUT request. The PUT request of zero (0) content fails when the blob data is read from disk on the Nexus side. Nexus 3.0.0 is working correctly with docker client 1.9 using the same commands. Also Nexus 3 m7 and m6 was working with docker client 1.8.2 with the same commands. Nexus 3.0.0 was upgraded from a Nexus 3 M7 data directory. Redhat (OpenShift owner) is requiring the 1.8.2 version of docker as part of the OpenShift platform. Docker requests fail with this pattern: {quote} 127.0.0.1 - bakersi [29/Apr/2016:13:46:03 +0100] ""PATCH /repository/debug/v2/sdfsdfsdf/blobs/uploads/995080e6-f979-4c0d-8e43-93a1f0979362 HTTP/1.1"" 202 0 12166 127.0.0.1 - bakersi [29/Apr/2016:13:46:04 +0100] ""PUT /repository/debug/v2/sdfsdfsdf/blobs/uploads/995080e6-f979-4c0d-8e43-93a1f0979362?digest=sha256%3A2500e7958c9e79466f7ed72a4f4ad917f532fef9c34a2d4d74aa0f9f61cef3ca HTTP/1.1"" 400 192 564 {quote} Notice it is the PUT that is trying to complete the upload and sending 0 content which fails. A closer look at the stack trace tells us that Nexus fails when it tries to parse the content already stored inside uploaded blobs. So in some way nexus should try to report more precisely the actual problem or prevent getting into this state in the first place. {noformat} 2016-04-29 13:46:04,339+0100 DEBUG [qtp825607847-43] bakersi org.sonatype.nexus.repository.docker.internal.DockerContentValidator - Invalid JSON file v2/-/blobs/sha256:2500e7958c9e79466f7ed72a4f4ad917f532fef9c34a2d4d74aa0f9f61cef3ca com.fasterxml.jackson.core.JsonParseException: Unexpected character ('c' (code 99)): Expected space separating root-level values at [Source: sun.nio.ch.ChannelInputStream@3cdaee2d; line: 1, column: 3] at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1586) [com.fasterxml.jackson.core.jackson-core:2.7.1] at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:521) [na:na] at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:450) [na:na] at com.fasterxml.jackson.core.base.ParserMinimalBase._reportMissingRootWS(ParserMinimalBase.java:466) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._verifyRootSpace(UTF8StreamJsonParser.java:1653) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._parsePosNumber(UTF8StreamJsonParser.java:1394) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:852) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:748) [na:na] at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:3828) [com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3773) [com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2856) [com.fasterxml.jackson.core.jackson-databind:2.7.1] at org.sonatype.nexus.repository.docker.internal.DockerContentValidator.isValidJson(DockerContentValidator.java:221) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at org.sonatype.nexus.repository.docker.internal.DockerContentValidator.v2DetermineContentType(DockerContentValidator.java:163) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at org.sonatype.nexus.repository.docker.internal.DockerContentValidator.determineContentType(DockerContentValidator.java:87) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at org.sonatype.nexus.repository.storage.StorageTxImpl.determineContentType(StorageTxImpl.java:717) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.storage.StorageTxImpl.createBlob(StorageTxImpl.java:544) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.storage.StorageTxImpl.setBlob(StorageTxImpl.java:651) [org.sonatype.nexus.repository:3.0.0.03] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_92] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_92] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_92] at java.lang.reflect.Method.invoke(Unknown Source) [na:1.8.0_92] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [org.sonatype.nexus.common:3.0.0.03] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [org.sonatype.nexus.common:3.0.0.03] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [org.sonatype.nexus.common:3.0.0.03] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [org.sonatype.nexus.common:3.0.0.03] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63) [org.sonatype.nexus.common:3.0.0.03] at com.sun.proxy.$Proxy170.setBlob(Unknown Source) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.docker.internal.DockerFacetUtils.saveAsset(DockerFacetUtils.java:366) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl.doPutBlob(DockerHostedFacetImpl.java:783) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl$$EnhancerByGuice$$ddae060c.CGLIB$doPutBlob$29() [!/:na] at org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl$$EnhancerByGuice$$ddae060c$$FastClassByGuice$$499e12ac.invoke() [!/:na] at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:44) [org.sonatype.nexus.transaction:3.0.0.03] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) [com.google.inject:4.0.0] at org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl$$EnhancerByGuice$$ddae060c.doPutBlob() [!/:na] at org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl.completeBlobUpload(DockerHostedFacetImpl.java:577) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl$$EnhancerByGuice$$ddae060c.CGLIB$completeBlobUpload$28() [!/:na] at org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl$$EnhancerByGuice$$ddae060c$$FastClassByGuice$$499e12ac.invoke() [!/:na] at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:54) [org.sonatype.nexus.transaction:3.0.0.03] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [org.sonatype.nexus.transaction:3.0.0.03] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) [com.google.inject:4.0.0] at org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl$$EnhancerByGuice$$ddae060c.completeBlobUpload() [!/:na] at org.sonatype.nexus.repository.docker.internal.DockerHostedFacet$completeBlobUpload$1.call(Unknown Source) [!/:na] at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure5.doCall(V2Handlers.groovy:131) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_92] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_92] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_92] at java.lang.reflect.Method.invoke(Unknown Source) [na:1.8.0_92] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy161.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [!/:na] at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure18.doCall(V2Handlers.groovy:279) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at sun.reflect.GeneratedMethodAccessor174.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_92] at java.lang.reflect.Method.invoke(Unknown Source) [na:1.8.0_92] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy161.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [!/:na] at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure1.doCall(V2Handlers.groovy:74) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.03] at sun.reflect.GeneratedMethodAccessor173.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_92] at java.lang.reflect.Method.invoke(Unknown Source) [na:1.8.0_92] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy161.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.03] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.03] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.03] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.03] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.03] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.0.03] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.0.03] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.03] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:197) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Unknown Source) [na:1.8.0_92] 2016-04-29 13:46:04,458+0100 WARN [qtp825607847-43] bakersi org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: PUT /v2/sdfsdfsdf/blobs/uploads/995080e6-f979-4c0d-8e43-93a1f0979362: 400 - Invalid docker content v2/-/blobs/sha256:2500e7958c9e79466f7ed72a4f4ad917f532fef9c34a2d4d74aa0f9f61cef3ca {noformat} h3. Workaround At least one of: - upgrade to a newer version of docker - [install the patch on Nexus 3.0.0-03|https://support.sonatype.com/hc/en-us/articles/218729178] - upgrade to a newer release version of Nexus that contains the fix ",1 +"NEXUS-10172","05/03/2016 15:15:48","Invalid MIME-Type identification ","Hi, I have a Nexus 3 with a Maven proxy to Maven Central. I try to download the artefact org.apache.jmeter:ApacheJMeter_parent:2.11:pom and it refuses with the attached log. We can verify that the files served by maven central is ok (Content and Content-type header) : http://repo1.maven.org:80/maven2/org/apache/jmeter/ApacheJMeter_parent/2.11/ApacheJMeter_parent-2.11.pom but the identification by Tika of the file is incorrect. Our current workaround is to disable the ""Strict Content Type Validation"". Thanks in advance, Regards, Etienne Carrière",2 +"NEXUS-10174","05/03/2016 16:58:29","The nexus-staging-maven-plugin treats a read timeout as a rule failure, and drops repositories","The nexus-staging-maven-plugin treats a timeout as a staging rule failure, and (by default) automatically drops the repository. This is a bug, it means a slow Lifecycle scan will result in losing a staging repository. For reference, the default timeout for the nexus-staging-maven-plugin is 5 minutes. This can be configured via the stagingProgressTimeoutMinutes parameter. {noformat} Waiting for operation to complete... ..................................................................................................... [WARN] TIMEOUT after 301.3 s [ERROR] Rule failure while trying to close staging repository with ID ""abc-1000"". [ERROR] [ERROR] Nexus Staging Rules Failure Report [ERROR] ================================== [ERROR] [ERROR] [ERROR] Cleaning up local stage directory after a Rule failure during close of staging repositories: [] [ERROR] * Deleting context 7eb7e095612.properties [ERROR] Cleaning up remote stage repositories after a Rule failure during close of staging repositories: [] [ERROR] * Dropping failed staging repository with ID ""abc-1000"" (Rule failure during close of staging repositories: []). Waiting for operation to complete... .. [ERROR] Remote staging finished with a failure: Staging rules failure! [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] Multi-Spring Chapter Parent Project ............... SUCCESS [1.292s] [INFO] Multi-Spring Chapter Simple Parent Project ........ SUCCESS [3.723s] [INFO] Multi-Spring Chapter Simple Object Model .......... SUCCESS [0.946s] [INFO] Multi-Spring Chapter Simple Weather API ........... SUCCESS [1.275s] [INFO] Multi-Spring Chapter Simple Persistence API ....... SUCCESS [0.631s] [INFO] Multi-Spring Chapter Simple Command Line Tool ..... SUCCESS [1.124s] [INFO] Multi-Spring Chapter Simple Web Application ....... FAILURE [5:09.330s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ {noformat}",2 +"NEXUS-10209","05/09/2016 22:01:55","product license mangement","After doing the Paid/OSS Bundle work, we noticed that our experience was a bit funny :). We'd like to address that through the following improvements for a user's experience. Acceptance Criteria: * If a user license becomes invalid or expired in Nexus Repository Manager Pro ** Send all users to a lightweight UI ** Lightweight UI should only allow login/logout and the ability to install a license ** All APIs should quit working (Maven, Docker, etc...) * If a user installs a valid license Repository Manager Pro will start functioning again without a restart * If a user's license is about to expire (30 days) we should provide a warning message in the UI to all Users (including anonymous) that shows the license is about to expire NOTE: * Ability to remove a user license in NX3 was removed. If they can figure out how, it will revert down to OSS. Changed original AC to match this updated (intentional) behavior.",3 +"NEXUS-10225","05/12/2016 13:52:08","non-admin users may be unable to see or edit IQ Server Application in staging profile edit screen","A non-admin user who is allowed to crate staging profiles is unable to see or edit _IQ Server Application_ in staging profile edit screen , after the staging profile has been created. You can see IQ Server Application when creating a staging profile , but not after when once it has been set and saved and you go back into that staging profile. The default admin user is able to see and amend this value. The odd thing is, if you login as admin user, logout and then login as the original user, then you can see the _IQ Server Application_ setting in staging profile edit screen. See attached screenshots. ",0.5 +"NEXUS-10231","05/13/2016 16:26:11","requests to rubygems repositories /api/v1/dependencies should not 302 redirect","rubygems repositories have an endpoint /api/v1/dependencies clients like bundler hit this endpoint to test if the repository supports the API. They expect response code 200 and 0 content if supported. Nexus responds with a 302 redirect to /api/v1/dependencies/ . The clients follow this and this causes nexus to try and render an html content listing of all the dependencies cached in the local repository. Since rubygems dependencies are a flat structure, this can result is a large response that takes considerable time to render. By the time Nexus is trying to write the HTML content back to the client, the client may have broken the connection ( Broken pipe ), while Nexus has had a significant performance impact. In some cases (depending on bundler version) the failing requests can cause Bundler to fall back to retrieving all versions of all dependencies. This in turn puts an additional burden on Nexus performance. The confluence of the performance impact may eventually lead to an OOM in Nexus. The root cause seems to start from nexus initially returning a 302 redirect. Expected - Nexus should return 200 and 0 content for requests to /api/v1/dependencies and not a 302 redirect to a content listing, just like the official registry does: https://rubygems.org/api/v1/dependencies ",0.5 +"NEXUS-10233","05/16/2016 10:29:05","Central automatic routing results discarded because Prefix file size exceeds maximum allowed","Some people had problems with accessing artifacts, that had a transitive dependency to Maven Central using a standard proxy repository. I was digging into it and I found out, that the routing file of Maven Central became too big and therefore Nexus refuses to load it and therefore it stays with an old version of the prefix file. Error message on the routing tab is: Remote strategy prefix-file on M2Repository(id=central) detected invalid input, results discarded: Prefix file size exceeds maximum allowed size (100000), refusing to load it. --Therefore https://repository.jboss.org/nexus/content/repositories/central/org/wildfly/extras/creaper/creaper-core/0.9.6/creaper-core-0.9.6.jar?describe=1 is not able to find the file despite it is in Maven Central.-- {quote} **We have no evidence this blocks retrieval of remote artifacts - however the issue may result in a slight decrease in performance determining if remote artifacts exist in central** {quote} h4. Workaround until upgrading: Add inside nexus.properties this line: *org.sonatype.nexus.proxy.maven.routing.Config.prefixFileMaxSize=500000* Then restart Nexus.",1 +"NEXUS-10234","05/16/2016 14:31:57","Maven httpclient may receive SocketException Broken pipe instead of expected status code on deploy","Using the standard {{mvn deploy:deploy-file}} to a Nexus 3 maven repository, **when a server section with matching id in ~/.m2/settings.xml is not configured properly**, then Maven throws a broken pipe exception instead of reporting the 401 unauthorized from Nexus. This causes a retry death spiral and changes the behaviour of how Maven would normally react. Using the same scenario with Nexus 2 causes Maven to report the 401 as expected and stop immediately. {noformat:title=Nexus 3} [DEBUG] Configuring mojo org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-deploy-plugin:2.8.2, parent: sun.misc.Launcher$AppClassLoader@45ee12a7] [DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file' with basic configurator --> [DEBUG] (f) artifactId = project [DEBUG] (f) file = /app/clm-testing/jenkins/hudson-2.2.1.war [DEBUG] (f) generatePom = true [DEBUG] (f) groupId = com.somecompany [DEBUG] (s) localRepository = id: local url: file:///Volumes/OSX/m2r/ layout: default snapshots: [enabled => true, update => always] releases: [enabled => true, update => always] [DEBUG] (f) offline = false [DEBUG] (f) packaging = war [DEBUG] (f) project = MavenProject: org.apache.maven:standalone-pom:1 @ [DEBUG] (f) repositoryId = local-nexu [DEBUG] (f) repositoryLayout = default [DEBUG] (f) retryFailedDeploymentCount = 1 [DEBUG] (f) uniqueVersion = true [DEBUG] (f) updateReleaseInfo = false [DEBUG] (f) url = http://localhost:9081/repository/maven-releases/ [DEBUG] (f) version = 1.0.0 [DEBUG] -- end configuration -- [DEBUG] Using transporter WagonTransporter with priority -1.0 for http://localhost:9081/repository/maven-releases/ [DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for http://localhost:9081/repository/maven-releases/ via 127.0.0.1:8888 Uploading: http://localhost:9081/repository/maven-releases/com/somecompany/project/1.0.0/project-1.0.0.war May 16, 2016 10:14:55 AM org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute INFO: I/O exception (java.net.SocketException) caught when processing request to {}->http://127.0.0.1:8888->http://localhost:9081: Broken pipe May 16, 2016 10:14:55 AM org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute INFO: Retrying request to {}->http://127.0.0.1:8888->http://localhost:9081 May 16, 2016 10:14:55 AM org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute INFO: I/O exception (java.net.SocketException) caught when processing request to {}->http://127.0.0.1:8888->http://localhost:9081: Broken pipe May 16, 2016 10:14:55 AM org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute INFO: Retrying request to {}->http://127.0.0.1:8888->http://localhost:9081 May 16, 2016 10:14:55 AM org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute INFO: I/O exception (java.net.SocketException) caught when processing request to {}->http://127.0.0.1:8888->http://localhost:9081: Broken pipe May 16, 2016 10:14:55 AM org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute INFO: Retrying request to {}->http://127.0.0.1:8888->http://localhost:9081 Uploading: http://localhost:9081/repository/maven-releases/com/somecompany/project/1.0.0/project-1.0.0.pom [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.628 s [INFO] Finished at: 2016-05-16T10:14:55-03:00 [INFO] Final Memory: 12M/309M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file (default-cli) on project standalone-pom: Failed to deploy artifacts: Could not transfer artifact com.somecompany:project:war:1.0.0 from/to local-nexu (http://localhost:9081/repository/maven-releases/): Broken pipe -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file (default-cli) on project standalone-pom: Failed to deploy artifacts: Could not transfer artifact com.somecompany:project:war:1.0.0 from/to local-nexu (http://localhost:9081/repository/maven-releases/): Broken pipe at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286) at org.apache.maven.cli.MavenCli.main(MavenCli.java:197) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to deploy artifacts: Could not transfer artifact com.somecompany:project:war:1.0.0 from/to local-nexu (http://localhost:9081/repository/maven-releases/): Broken pipe at org.apache.maven.plugin.deploy.DeployFileMojo.execute(DeployFileMojo.java:284) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) ... 20 more Caused by: org.apache.maven.artifact.deployer.ArtifactDeploymentException: Failed to deploy artifacts: Could not transfer artifact com.somecompany:project:war:1.0.0 from/to local-nexu (http://localhost:9081/repository/maven-releases/): Broken pipe at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:143) at org.apache.maven.plugin.deploy.AbstractDeployMojo.deploy(AbstractDeployMojo.java:171) at org.apache.maven.plugin.deploy.DeployFileMojo.execute(DeployFileMojo.java:280) ... 22 more Caused by: org.eclipse.aether.deployment.DeploymentException: Failed to deploy artifacts: Could not transfer artifact com.somecompany:project:war:1.0.0 from/to local-nexu (http://localhost:9081/repository/maven-releases/): Broken pipe at org.eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.java:317) at org.eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.java:245) at org.eclipse.aether.internal.impl.DefaultRepositorySystem.deploy(DefaultRepositorySystem.java:413) at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:139) ... 24 more Caused by: org.eclipse.aether.transfer.ArtifactTransferException: Could not transfer artifact com.somecompany:project:war:1.0.0 from/to local-nexu (http://localhost:9081/repository/maven-releases/): Broken pipe at org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:43) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:355) at org.eclipse.aether.connector.basic.BasicRepositoryConnector.put(BasicRepositoryConnector.java:274) at org.eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.java:311) ... 27 more Caused by: org.apache.maven.wagon.TransferFailedException: Broken pipe at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:646) at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:541) at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:523) at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:517) at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:497) at org.eclipse.aether.transport.wagon.WagonTransporter$PutTaskRunner.run(WagonTransporter.java:644) at org.eclipse.aether.transport.wagon.WagonTransporter.execute(WagonTransporter.java:427) at org.eclipse.aether.transport.wagon.WagonTransporter.put(WagonTransporter.java:410) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$PutTaskRunner.runTask(BasicRepositoryConnector.java:510) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:350) ... 29 more Caused by: java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) at java.net.SocketOutputStream.write(SocketOutputStream.java:153) at org.apache.maven.wagon.providers.http.httpclient.impl.io.SessionOutputBufferImpl.streamWrite(SessionOutputBufferImpl.java:123) at org.apache.maven.wagon.providers.http.httpclient.impl.io.SessionOutputBufferImpl.flushBuffer(SessionOutputBufferImpl.java:135) at org.apache.maven.wagon.providers.http.httpclient.impl.io.SessionOutputBufferImpl.write(SessionOutputBufferImpl.java:164) at org.apache.maven.wagon.providers.http.httpclient.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:115) at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon$RequestEntityImplementation.writeTo(AbstractHttpClientWagon.java:205) at org.apache.maven.wagon.providers.http.httpclient.impl.DefaultBHttpClientConnection.sendRequestEntity(DefaultBHttpClientConnection.java:155) at org.apache.maven.wagon.providers.http.httpclient.impl.conn.CPoolProxy.sendRequestEntity(CPoolProxy.java:149) at org.apache.maven.wagon.providers.http.httpclient.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:236) at org.apache.maven.wagon.providers.http.httpclient.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121) at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.MainClientExec.execute(MainClientExec.java:254) at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195) at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec.execute(RetryExec.java:86) at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RedirectExec.execute(RedirectExec.java:108) at org.apache.maven.wagon.providers.http.httpclient.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) at org.apache.maven.wagon.providers.http.httpclient.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.execute(AbstractHttpClientWagon.java:832) at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:592) ... 38 more [ERROR] [ERROR] {noformat} {noformat:title=Nexus 2} [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.229 s [INFO] Finished at: 2016-05-16T10:19:45-03:00 [INFO] Final Memory: 9M/309M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file (default-cli) on project standalone-pom: Failed to deploy artifacts: Could not transfer artifact com.somecompany:project:war:1.0.0 from/to local-nexu (http://localhost:8081/nexus/content/repositories/releases/): Failed to transfer file: http://localhost:8081/nexus/content/repositories/releases/com/somecompany/project/1.0.0/project-1.0.0.war. Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file (default-cli) on project standalone-pom: Failed to deploy artifacts: Could not transfer artifact com.somecompany:project:war:1.0.0 from/to local-nexu (http://localhost:8081/nexus/content/repositories/releases/): Failed to transfer file: http://localhost:8081/nexus/content/repositories/releases/com/somecompany/project/1.0.0/project-1.0.0.war. Return code is: 401, ReasonPhrase: Unauthorized. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286) at org.apache.maven.cli.MavenCli.main(MavenCli.java:197) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to deploy artifacts: Could not transfer artifact com.somecompany:project:war:1.0.0 from/to local-nexu (http://localhost:8081/nexus/content/repositories/releases/): Failed to transfer file: http://localhost:8081/nexus/content/repositories/releases/com/somecompany/project/1.0.0/project-1.0.0.war. Return code is: 401, ReasonPhrase: Unauthorized. at org.apache.maven.plugin.deploy.DeployFileMojo.execute(DeployFileMojo.java:284) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) ... 20 more Caused by: org.apache.maven.artifact.deployer.ArtifactDeploymentException: Failed to deploy artifacts: Could not transfer artifact com.somecompany:project:war:1.0.0 from/to local-nexu (http://localhost:8081/nexus/content/repositories/releases/): Failed to transfer file: http://localhost:8081/nexus/content/repositories/releases/com/somecompany/project/1.0.0/project-1.0.0.war. Return code is: 401, ReasonPhrase: Unauthorized. at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:143) at org.apache.maven.plugin.deploy.AbstractDeployMojo.deploy(AbstractDeployMojo.java:171) at org.apache.maven.plugin.deploy.DeployFileMojo.execute(DeployFileMojo.java:280) ... 22 more Caused by: org.eclipse.aether.deployment.DeploymentException: Failed to deploy artifacts: Could not transfer artifact com.somecompany:project:war:1.0.0 from/to local-nexu (http://localhost:8081/nexus/content/repositories/releases/): Failed to transfer file: http://localhost:8081/nexus/content/repositories/releases/com/somecompany/project/1.0.0/project-1.0.0.war. Return code is: 401, ReasonPhrase: Unauthorized. at org.eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.java:317) at org.eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.java:245) at org.eclipse.aether.internal.impl.DefaultRepositorySystem.deploy(DefaultRepositorySystem.java:413) at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:139) ... 24 more Caused by: org.eclipse.aether.transfer.ArtifactTransferException: Could not transfer artifact com.somecompany:project:war:1.0.0 from/to local-nexu (http://localhost:8081/nexus/content/repositories/releases/): Failed to transfer file: http://localhost:8081/nexus/content/repositories/releases/com/somecompany/project/1.0.0/project-1.0.0.war. Return code is: 401, ReasonPhrase: Unauthorized. at org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:43) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:355) at org.eclipse.aether.connector.basic.BasicRepositoryConnector.put(BasicRepositoryConnector.java:274) at org.eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.java:311) ... 27 more Caused by: org.apache.maven.wagon.TransferFailedException: Failed to transfer file: http://localhost:8081/nexus/content/repositories/releases/com/somecompany/project/1.0.0/project-1.0.0.war. Return code is: 401, ReasonPhrase: Unauthorized. at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:627) at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:541) at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:523) at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:517) at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:497) at org.eclipse.aether.transport.wagon.WagonTransporter$PutTaskRunner.run(WagonTransporter.java:644) at org.eclipse.aether.transport.wagon.WagonTransporter.execute(WagonTransporter.java:427) at org.eclipse.aether.transport.wagon.WagonTransporter.put(WagonTransporter.java:410) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$PutTaskRunner.runTask(BasicRepositoryConnector.java:510) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:350) ... 29 more [ERROR] [ERROR] {noformat} h3. Expected Nexus should report the 401 and fail immediately instead of getting a broken pipe - act like Nexus 2.x does.",1 +"NEXUS-10238","05/16/2016 23:11:02","PyPI: Search custom only finds results on lower case","While testing the pypi implementation, I found that searching on custom fields only found results (of either case) if I searched using lower case. For example, ""apple"" will find ""Apple"", ""apple"" and ""APPLE"" but ""Apple"" will not find ""Apple"". This was decided out of scope for PyPI and a general search issue. I do not recall I've seen in any other format however. In fact, NEXUS-8879 speaks to the reverse. This is especially confusing because as far as I can tell all the PyPI classifiers start with capital letters. This renders this search custom field useless unless you know this workaround or are lazy about case.",0.5 +"NEXUS-10242","05/17/2016 18:47:32","Capture stdout and stderr to logfile","Nexus 3 has no default log that captures stdout/stderr. This means that the most reliable way to get a thread dump from a hung instance (kill -3) will not work. This is a regression from Nexus 2, and has serious implications for support. Other methods of getting thread dumps such as jstack require that a JDK is available, and even when these tools are available they are not as reliable as sending a SIGQUIT. *Acceptance* Output written to stdout and stderror are written to the standard logs",2 +"NEXUS-10243","05/17/2016 19:15:59","Content type exception uploading tar files - identified as application-gtar instead of application/tar","When uploading a tar file, Nexus throws an {{InvalidContentException}} complaining that it detected content type {{application/x-gtar}}, but expected {{application/x-tar}}. Internally Nexus uses the Apache Tika library for determining content type and first we do a detection by file extension, and then we do a detection by file contents, and throw an exception if they don't match. For Tar files Tika will return {{application/x-tar}} for name and {{application-x/gtar}} for contents. This is because most modern tar implementation will default to the 'gnu' format (i.e. a gtar), but most users still call it a tar.   *Original Bug Report Description:* While testing initial pypi implementation, we attempted to upload a tar file into our pypi hosted but were blocked by content validation. tar files were one of the listed file extensions that pypi supported. From the pypi cli: {code:java} ... Submitting dist/fileformats-1.0.2.tar to http://localhost:8081/repository/pypi-hosted/ HTTP Error 404: Not Found error: HTTP Error 404: Not Found {code} From the nexus.log: {code:java} 2016-05-16 15:35:47,848-0400 WARN  [qtp1368003828-1436] admin org.sonatype.nexus.repository.view.handlers.ExceptionHandler - Invalid content: POST /: org.sonatype.nexus.repository.InvalidContentException: Detected content type [application/x-gtar], but expected [application/x-tar]: packages/fileformats/1.0.2/fileformats-1.0.2.tar {code} After investigation, we found the same thing occurs when you try and push the tar into a raw hosted repository. Once you have the tar file in the hosted repository, it proxies however you need to turn strict content validation off for your proxy as well. Since the team could not find any tar files that could be proxied from pypi.python.org and there is a workaround, as well as affects other repository types, we decided this was a non-blocker for now. We will watch for beta feedback and see if it hits anyone. h3. Workaround The workaround is to turn strict content validation off for the hosted pypi repository.",1 +"NEXUS-10255","05/19/2016 18:33:07","npm package version-specific requests respond '404 not found' instead of version-specific JSON metadata","We are having an issue proxying npm artifacts in our nexus3 repo from the official npm repostiory. Some artifacts are being proxied but others are failing. It seems that any artifact that is requested with a specific version identifier is failing. For example you can see below the 304 were successful because there was no version at the end of the url, whereas the 404 failures were all on urls with a version at the end of the url. Is this a bug or a configuration issue? I attached the full npm-debug log. [INFO] npm http 304 https://internal.nexus.company.com:8450/repository/npmjs/grunt-contrib-less [INFO] npm http 304 https://internal.nexus.company.com:8450/repository/npmjs/grunt-contrib-watch [INFO] npm http 304 https://internal.nexus.company.com:8450/repository/npmjs/grunt-karma [INFO] npm http 304 https://internal.nexus.company.com:8450/repository/npmjs/grunt-contrib-uglify [INFO] npm http 404 https://internal.nexus.company.com:8450/repository/npmjs/grunt-bump/0.0.6 [INFO] npm ERR! registry error parsing json [INFO] npm http 404 https://internal.nexus.company.com:8450/repository/npmjs/karma-phantomjs-launcher/0.1.4 [INFO] npm ERR! registry error parsing json [INFO] npm http 404 https://internal.nexus.company.com:8450/repository/npmjs/karma-junit-reporter/0.2.1 [INFO] npm ERR! registry error parsing json [INFO] npm http 404 https://internal.nexus.company.com:8450/repository/npmjs/karma/0.10.10 [INFO] npm ERR! registry error parsing json [INFO] npm http 304 https://internal.nexus.company.com:8450/repository/npmjs/grunt-html2js [INFO] npm http 404 https://internal.nexus.company.com:8450/repository/npmjs/karma-chrome-launcher/0.1.2 [INFO] npm ERR! registry error parsing json [INFO] npm http 404 https://internal.nexus.company.com:8450/repository/npmjs/karma-coffee-preprocessor/0.1.3 [INFO] npm ERR! registry error parsing json [INFO] npm http 404 https://internal.nexus.company.com:8450/repository/npmjs/karma-firefox-launcher/0.1.3",2 +"NEXUS-10256","05/20/2016 14:56:43","extremely poor performance in user role/privilege resolution for LDAP users","When an LDAP mapped user uses Nexus we are repeated looping through all of their LDAP groups. This is done for every single privilege check. The comparison done is very inefficient, and an exception is thrown for each group not found mapped to a nexus role. Here's an example, there were 970 of these just for this one group in 11 seconds. All I did was click around the UI a bit while logged in as an LDAP user mapped to nx-admin. This is repeated for every group my test user is a member of. {noformat} 2016-05-20 08:48:24,365-0500 TRACE [qtp1603293723-358] rseddon org.sonatype.nexus.security.internal.RolePermissionResolverImpl - Ignoring missing role: nested org.sonatype.nexus.security.role.NoSuchRoleException: Role not found: nested at org.sonatype.nexus.security.internal.SecurityConfigurationManagerImpl.readRole(SecurityConfigurationManagerImpl.java:197) [na:na] at org.sonatype.nexus.security.internal.RolePermissionResolverImpl.resolvePermissionsInRole(RolePermissionResolverImpl.java:116) [na:na] at org.apache.shiro.realm.AuthorizingRealm.resolveRolePermissions(AuthorizingRealm.java:447) [org.apache.shiro.core:1.2.4] at org.apache.shiro.realm.AuthorizingRealm.getPermissions(AuthorizingRealm.java:415) [org.apache.shiro.core:1.2.4] at org.apache.shiro.realm.AuthorizingRealm.isPermitted(AuthorizingRealm.java:468) [org.apache.shiro.core:1.2.4] at org.apache.shiro.realm.AuthorizingRealm.isPermitted(AuthorizingRealm.java:499) [org.apache.shiro.core:1.2.4] at org.apache.shiro.realm.AuthorizingRealm.isPermitted(AuthorizingRealm.java:489) [org.apache.shiro.core:1.2.4] at org.sonatype.nexus.security.authz.ExceptionCatchingModularRealmAuthorizer.isPermitted(ExceptionCatchingModularRealmAuthorizer.java:256) [org.sonatype.nexus.security:3.0.0.03] at org.apache.shiro.mgt.AuthorizingSecurityManager.isPermitted(AuthorizingSecurityManager.java:125) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.isPermitted(DelegatingSubject.java:175) [org.apache.shiro.core:1.2.4] at org.sonatype.nexus.rapture.internal.security.SecurityComponent.calculatePermissions(SecurityComponent.java:207) [org.sonatype.nexus.rapture:3.0.0.03] at org.sonatype.nexus.rapture.internal.security.SecurityComponent.getPermissions(SecurityComponent.java:170) [org.sonatype.nexus.rapture:3.0.0.03] at org.sonatype.nexus.rapture.internal.security.SecurityComponent.getState(SecurityComponent.java:179) [org.sonatype.nexus.rapture:3.0.0.03] at org.sonatype.nexus.rapture.internal.state.StateComponent.getState(StateComponent.java:81) [org.sonatype.nexus.rapture:3.0.0.03] at org.sonatype.nexus.rapture.internal.state.StateComponent$$EnhancerByGuice$$c680be9.CGLIB$getState$0() [4.0:na] at org.sonatype.nexus.rapture.internal.state.StateComponent$$EnhancerByGuice$$c680be9$$FastClassByGuice$$f5589e80.invoke() [4.0:na] at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47) [com.palominolabs.metrics.guice:3.0.2] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) [com.google.inject:4.0.0] at org.sonatype.nexus.rapture.internal.state.StateComponent$$EnhancerByGuice$$c680be9.getState() [4.0:na] at sun.reflect.GeneratedMethodAccessor107.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_60] {noformat} Acceptance Criteria: * Examine how to reduce the exception count as a bare minimum * Some minimal tuning to identify what the deeper issue is * Solve low hanging fruit, gain information on larger issues ** Get together to produce follow up issues/stories based on deeper understanding NOTE: * We will need to test this against a large LDAP instance to verify the fixes if we make any",3 +"NEXUS-10276","05/26/2016 18:21:12","Upgrade cannot abort in between stages","While testing various migration items, it seemed weird to me that you *can't* abort when you've finished a substep (and can progress to the next step) but that you *can* abort when you proceed to the next step. For example, if you're in preperation and it's done, you can't abort but if you proceed to synchronizing you can. I think this is weird to me, because you're not aborting the step, you're aborting migration. So if you prepare then decide you want to do this later, I think it makes sense to be able to without clicking next. NOTE: Clicking away preserves the state so does not abort. I'm assuming shutting down the server would however might be ""messy"". Am filing, at least for triage, after discussion with [~dsauble]. I mentioned this in HC as well (migrate room) and didn't get an immediate explain or contradiction. Let me know if not clear, I didn't feel like screen or vid would explain so didn't do it. I could do a screenshare or do a vid with sound.",2 +"NEXUS-10278","05/26/2016 20:24:37","pushing NuGet packages larger than 2GB fails","Push of a very large NuGet package fails. This one is about 2.5Gb: {quote} $ ls -l total 5734448 -rw-r--r-- 1 rseddon staff 2935807073 May 26 14:13 NUnit.2.6.3.nupkg {quote} This fails due to a number format error trying to convert the string to an integer: {code} 2016-05-26 14:19:08,814-0500 DEBUG [qtp1378640751-359] admin com.sonatype.nexus.repository.nuget.internal.NugetGalleryFacetImpl - Creating NuGet component NUnit v. 2.6.3 2016-05-26 14:19:08,815-0500 DEBUG [qtp1378640751-359] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=component} Read record #9:0 v.1 size=33 bytes 2016-05-26 14:19:08,985-0500 DEBUG [qtp1378640751-359] admin com.sonatype.nexus.repository.nuget.internal.NugetPushHandler - Bad argument java.lang.NumberFormatException: For input string: ""2935807073"" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) [na:1.8.0_60] at java.lang.Integer.parseInt(Integer.java:583) [na:1.8.0_60] at java.lang.Integer.parseInt(Integer.java:615) [na:1.8.0_60] at com.sonatype.nexus.repository.nuget.internal.NugetGalleryFacetImpl.updateAssetMetadata(NugetGalleryFacetImpl.java:460) [na:na] at com.sonatype.nexus.repository.nuget.internal.NugetGalleryFacetImpl.createOrUpdateAssetAndContents(NugetGalleryFacetImpl.java:589) [na:na] at com.sonatype.nexus.repository.nuget.internal.NugetGalleryFacetImpl.createOrUpdatePackageAndContents(NugetGalleryFacetImpl.java:435) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:54) [org.sonatype.nexus.transaction:3.0.0.03] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [org.sonatype.nexus.transaction:3.0.0.03] at com.sonatype.nexus.repository.nuget.internal.NugetGalleryFacetImpl.put(NugetGalleryFacetImpl.java:350) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [org.sonatype.nexus.common:3.0.0.03] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [org.sonatype.nexus.common:3.0.0.03] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [org.sonatype.nexus.common:3.0.0.03] at com.sonatype.nexus.repository.nuget.internal.NugetPushHandler.storePayload(NugetPushHandler.java:79) [na:na] at com.sonatype.nexus.repository.nuget.internal.NugetPushHandler.push(NugetPushHandler.java:66) [na:na] at com.sonatype.nexus.repository.nuget.internal.NugetPushHandler.handle(NugetPushHandler.java:48) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:41) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.0.03] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.03] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.03] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.03] {code}",2 +"NEXUS-10279","05/26/2016 20:49:00","Long delay after large maven artifact is uploaded, results in failure due to jetty idle timeout","I'm seeing a long delay uploading large Maven artifacts. The entire artifact is uploaded, and then the maven build just sits there for a long time waiting for an HTTP response. A thread dump taken tat this time shows that Nexus is computing the checksum of the artifact. Is it possible we've regressed and lost the fix for NEXUS-4194? {code} ""qtp1378640751-301"" #301 prio=5 os_prio=31 tid=0x00007f85a20cf800 nid=0xb907 runnable [0x00007000046e4000] java.lang.Thread.State: RUNNABLE at sun.security.provider.DigestBase.implCompressMultiBlock(DigestBase.java:140) at sun.security.provider.DigestBase.engineUpdate(DigestBase.java:127) at java.security.MessageDigest$Delegate.engineUpdate(MessageDigest.java:584) at java.security.MessageDigest.update(MessageDigest.java:325) at java.security.DigestInputStream.read(DigestInputStream.java:163) at java.io.FilterInputStream.read(FilterInputStream.java:133) at java.io.FilterInputStream.read(FilterInputStream.java:107) at com.google.common.io.ByteStreams.copy(ByteStreams.java:70) at org.sonatype.nexus.blobstore.file.SimpleFileOperations.create(SimpleFileOperations.java:60) at org.sonatype.nexus.blobstore.file.FileBlobStore.lambda$0(FileBlobStore.java:201) at org.sonatype.nexus.blobstore.file.FileBlobStore$$Lambda$36/1522202553.ingestTo(Unknown Source) at org.sonatype.nexus.blobstore.file.FileBlobStore.create(FileBlobStore.java:233) at org.sonatype.nexus.blobstore.file.FileBlobStore.create(FileBlobStore.java:201) at org.sonatype.nexus.repository.storage.BlobTx.create(BlobTx.java:69) at org.sonatype.nexus.repository.storage.StorageTxImpl.createBlob(StorageTxImpl.java:554) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63) at com.sun.proxy.$Proxy166.createBlob(Unknown Source) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.doPut(MavenFacetImpl.java:224) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl$$EnhancerByGuice$$28e3e639.CGLIB$doPut$6() at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl$$EnhancerByGuice$$28e3e639$$FastClassByGuice$$6a58146d.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:54) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl$$EnhancerByGuice$$28e3e639.doPut() at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.put(MavenFacetImpl.java:200) at org.sonatype.nexus.repository.maven.internal.hosted.HostedHandler.doPut(HostedHandler.java:87) at org.sonatype.nexus.repository.maven.internal.hosted.HostedHandler.handle(HostedHandler.java:61) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) at org.sonatype.nexus.repository.maven.internal.VersionPolicyHandler.handle(VersionPolicyHandler.java:50) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:41) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) at org.sonatype.nexus.repository.view.Context.start(Context.java:102) at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) 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:125) 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:125) 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:125) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) 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:383) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) - locked <0x00000007ad9ff238> (a com.google.inject.servlet.GuiceFilter$Context) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) at org.eclipse.jetty.server.Server.handle(Server.java:517) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) at java.lang.Thread.run(Thread.java:745) {code}",3 +"NEXUS-10291","05/31/2016 14:09:13","* dependency not resolved by nexus proxy whereas resolved by bower repo","add a star dependencies in bower,json. e.g. {code} ""clearless"": ""*"" {code} try to to install dependencies with bower install get error {code} bower clearless#* ENORESTARGET No version found that was able to satisfy * {code} Work around is to replace * by master. e.g. {code} ""clearless"": ""master"" {code} ",3 +"NEXUS-10294","05/31/2016 17:50:17","Docker client <= 1.9.1 cannot pull images which are push by a docker client >= 1.10.0","An image has been pushed to Nexus 3.0 by a Docker client which version was 1.10.0 or later. Now I cannot pull this image with a Docker client which version is <= 1.9.1. I get following error: {noformat} docker pull dockerregistry.internal.com/appyard Using default tag: latest Trying to pull repository dockerregistry.internal.com/appyard ... not found Error: image appyard:latest not found {noformat} I can successfully pull images which has been pushed with an 1.9.1 Docker client. I tried without success the following: * to disable V1 support for the group repository * configure nginx to apply headers to all GET requests in order to enforce V1 or V2 manifests: {{add_header Docker-Distribution-Api-Version registry/2.0 always;}} {{add_header Accept application/vnd.docker.distribution.manifest.v2+json;}} {{proxy_set_header Accept application/vnd.docker.distribution.manifest.v2+json;}} With version 1.10.0 of Docker the format of the manifest has changed. I'm using an Nginx configuration as described in chapter [Example: Reverse Proxy SSL Termination at Base Path| https://books.sonatype.com/nexus-book/3.0/reference/install.html#_example_reverse_proxy_ssl_termination_at_base_path].",3 +"NEXUS-10300","06/02/2016 11:21:24","invalid json in bower authentication documentation","missing comma in bower authentication documentation at the end of the section 11.6 in this page https://books.sonatype.com/nexus-book/3.0/reference/bower.html#bower-download valid json is {code} { ""nexus"" : { ""username"" : ""myusername"", ""password"" : ""mypassword"" } } {code} ",0.5 +"NEXUS-10317","06/10/2016 14:13:57","Set the CONNECT user-agent header value as Nexus user agent","Regression of NEXUS-7575 from Nexus 2. In Nexus 3, the User-Agent value is set on CONNECT to the HTTPClient value instead of the Nexus user agent. This matters because some orgs look at the value and filter requests based on it. Nexus 3 CONNECT example - it is set - but incorrectly: {noformat} 2016-06-10 06:56:06,088+0200 DEBUG [qtp121677791-218] deployment org.apache.http.headers - http-outgoing-33 >> CONNECT dseasb33srnrn.cloudfront.net:443 HTTP/1.1 2016-06-10 06:56:06,089+0200 DEBUG [qtp121677791-218] deployment org.apache.http.headers - http-outgoing-33 >> Host: dseasb33srnrn.cloudfront.net 2016-06-10 06:56:06,089+0200 DEBUG [qtp121677791-218] deployment org.apache.http.headers - http-outgoing-33 >> User-Agent: Apache-HttpClient/4.5.1 (Java/1.8.0_92) 2016-06-10 06:56:06,100+0200 DEBUG [qtp121677791-218] deployment org.apache.http.headers - http-outgoing-33 << HTTP/1.1 200 Connection Established 2016-06-10 06:56:06,154+0200 DEBUG [qtp121677791-218] deployment org.apache.http.headers - http-outgoing-33 >> GET /registry-v2/docker/registry/v2/blobs/sha256/5c/5c90d4a2d1a8dfffd05ff2dd659923f0ca2d843b5e45d030e17abbcd06a11b5b/data?Expires=1465535766&Signature=Z1wEfExEewOT355ZDF4Q9yoftwyVGMhSEkixphXm8VzAGd7qL1Nq4x6hIlxj7ijTPYsQ~ymy4c9LG3KPd1TmGtGP6hBqD5qX9VRGpeFxad7ofok3hku3orHmRhrum5UZ~ne~Kmj4rZlh7jWXK2N9fx9TVFlBDXqeluMXDBKKjpM_&Key-Pair-Id=APKAJECH5M7VWIS5YZ6Q HTTP/1.1 2016-06-10 06:56:06,154+0200 DEBUG [qtp121677791-218] deployment org.apache.http.headers - http-outgoing-33 >> User-Agent: Nexus/3.0.0-03 (OSS; Linux; 3.0.101-65-default; amd64; 1.8.0_92) {noformat} Nexus 2 CONNECT example: {noformat} jvm 1 | 2016-06-10 10:07:51,648-0300 DEBUG [proxy-3-thread-3] admin org.apache.http.headers - http-outgoing-28 >> CONNECT repository.apache.org:443 HTTP/1.1 jvm 1 | 2016-06-10 10:07:51,648-0300 DEBUG [proxy-3-thread-3] admin org.apache.http.headers - http-outgoing-28 >> User-Agent: Nexus/2.13.0-01 (OSS; Mac OS X; 10.11.5; x86_64; 1.8.0_92) {noformat} h3. Expected - all outbound HTTP requests should have the Nexus User-Agent value NOT some other value ( unless doing this would violate a repository format protocol ) ",1 +"NEXUS-10336","06/14/2016 17:04:53","docker pull fails for certain images from docker hub","Configure a standard docker proxy repository (named docker-proxy) to docker hub. Enable V1 support. Using Docker 1.8.2 client/daemon, execute this command docker pull rabbitmq:3-management This works fetching from the official repo. This does not work against Nexus: docker pull 192.168.2.97:9540/rabbitmq:3-management Where 192.168.2.97 is the Nexus IP and 9540 is the https port for docker-proxy. Installing the patch at https://support.sonatype.com/hc/en-us/articles/218729178-Nexus-Repository-Manager-3-0-0-03-Docker-Rollup-Patch does not seem to help. ",3 +"NEXUS-10349","06/16/2016 14:06:35","Can't find packages registered to hosted repository with 'bower search ...'","I've succesfully registered a private package to a hosted repository but I can't find this package via 'bower search ...' Here is my .bowerrc file: {code:javascript} { ""directory"": ""vendor"", ""registry"": { ""search"": [ ""http://nexus.service.dint.newsaktuell.de/repository/bower-all/""], ""register"" : ""http://admin:admin123@nexus.service.dint.newsaktuell.de/repository/bower-internal/"" }, ""resolvers"" : [ ""bower-nexus3-resolver"" ], ""nexus"": { ""username"": ""admin"", ""password"": ""admin123"" } } {code} ",3 +"NEXUS-10370","06/20/2016 20:04:56","RubyGems assets have horizontal scroll that remains regardless of browser width","Just noticed that my rubygems asset had a horizontal scroll, so I made my browser bigger and it remained. I fullsized my browser and it still remained. I scrolled right to see what I wasn't seeing and it shows the right border. Apparently the only way to get this displayed is to scroll right not browser size...I think this is a bug. I did not back check older NX3. I noticed that with docker assets this does not happen so made the title format specific for now. If I see any other component types this is affecting I'll update. I am surprised that this is not format generic, but there we have it.",1 +"NEXUS-10371","06/20/2016 21:02:09","Page warns of lack of access despite handling it","I granted a user a role with the nx-repository-admin-*-*-* privilege and noticed when I accessed repository (in pro) that I got a warning about healthcheck. Results do appear and the healthcheck column is hidden/missing, so it seems this warning is not necessary. Error also appears in nexus.log: {code} 2016-06-20 16:01:56,924-0400 ERROR [pool-139-thread-12] joedragons org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: healthcheck_Status.read, java-method: com.sonatype.nexus.plugins.healthcheck.ui.HealthCheckStatusComponent.read org.apache.shiro.authz.AuthorizationException: User is not permitted: nexus:healthcheck:read at org.sonatype.nexus.security.authz.ExceptionCatchingModularRealmAuthorizer.checkPermission(ExceptionCatchingModularRealmAuthorizer.java:66) [na:na] at org.apache.shiro.mgt.AuthorizingSecurityManager.checkPermission(AuthorizingSecurityManager.java:137) [na:na] at org.apache.shiro.subject.support.DelegatingSubject.checkPermission(DelegatingSubject.java:205) [org.apache.shiro.core:1.2.4] at org.apache.shiro.authz.aop.PermissionAnnotationHandler.assertAuthorized(PermissionAnnotationHandler.java:74) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:84) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:67) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.GeneratedMethodAccessor614.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.DefaultJsonRequestProcessorThread.processRequest(DefaultJsonRequestProcessorThread.java:72) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.ssm.SsmJsonRequestProcessorThread.processRequest(SsmJsonRequestProcessorThread.java:43) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread.access$1(ExtDirectJsonRequestProcessorThread.java:1) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread$1.call(ExtDirectJsonRequestProcessorThread.java:59) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread$1.call(ExtDirectJsonRequestProcessorThread.java:1) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletScopes$3.call(ServletScopes.java:232) [com.google.inject:4.0.0] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread.processRequest(ExtDirectJsonRequestProcessorThread.java:73) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.DefaultJsonRequestProcessorThread.call(DefaultJsonRequestProcessorThread.java:56) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.standard.json.DefaultJsonRequestProcessorThread.call(DefaultJsonRequestProcessorThread.java:30) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_40] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_40] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_40] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] Caused by: org.apache.shiro.authz.AuthorizationException: Not authorized to invoke method: public java.util.List com.sonatype.nexus.plugins.healthcheck.ui.HealthCheckStatusComponent.read() at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:90) [na:na] ... 25 common frames omitted {code} Filing for triage discussion as there may be a reason this occurs (like we want users to know there are things they can't see?). If this is intentional, that error level seems high to me. I did not backcheck older NX3, mostly because 3.1 will be the first version we support PRO and OSS is not affected. I didn't check NX2 either.",1 +"NEXUS-10390","06/22/2016 15:05:38","Nexus 3 Basic realm name does not equal Nexus 2 realm name","*For repository content* the Basic auth realm name of nexus 2 when accessing content is ""Sonatype Nexus Repository Manager"". The Basic auth realm name of nexus 3.0.0 is ""Sonatype Nexus"". We have seen at least one instance of breakage when changing realm names: https://issues.sonatype.org/browse/OSSRH-19926 When a user migrates from Nexus 2 to Nexus 3, this realm name change could cause builds using IVY based deployments ( SBT, ANT ) to start failing. Fixing this on the client side could require a huge set of ivysettings.xml changes in source control or build jobs. ivysettings.xml fils can contain sections with credentials such as {noformat} {noformat} While 'realm' [is an optional configuration attribute|http://ant.apache.org/ivy/history/latest-milestone/settings/credentials.html] - even if it is left out, then credentials will not be found that match the realm name and authentication fails with 401 like it does when the realm name is specified but does not match exactly the realm name sent in the Nexus WWW-Authenticate header. Should the Nexus 3 realm equal the Nexus 2 realm name?",1 +"NEXUS-10405","06/24/2016 16:52:42","Bower hosted does not use 404 framework","Hitting a non-existant mapping.json in a bower hosted repository returns a blank page. However, page debug shows ""Failed to load resource: the server responded with a status of 404 (Not Found)"" so the suspicion is that it's just not utilizing the 404 page we have in general place. Example (with bower-hosted repository newly setup): http://localhost:8081/repository/bower-hosted/test2/mapping.json I did not back check older NX3 versions. This bug does not affect NX2 as it this format is not implemented there.",1 +"NEXUS-10418","06/28/2016 18:23:42","automatically clear the karaf bundle cache on startup","NEXUS-10014 has a good summary of the options for clearing bundle cache on startup. The resolution of NEXUS-10014 meant: - the UI installer touches a clean_cache file inside the chosen data directory so that the bundle cache is cleared on startup - the archive installers include a clean_cache file inside their default ( but not optimal ) data subdirectory According to some recent analysis we still have significant user base using the archives (zip/tgz) to install Nexus. In the use case of upgrade using the archive bundle, a user needs to edit bin/nexus.vmoptions and change the karaf.data property value to reference their existing, to be upgraded data directory. They then also need to manually create a clean_cache file there so that on startup the cache is cleared. This issue is about eliminating the step of creating the clean_cache file and instead, configuring Nexus to always reload the bundle cache on startup. Other than some so far reportedly insignificant startup processing of bundle caching, I haven't heard of a good reason not to do this. Implementing this aims to make the upgrade process simpler. ",0.5 +"NEXUS-10419","06/29/2016 16:09:32","nested webapp context path Nexus 3 breaks the UI","Edit $NEXUS_HOME/etc/org.sonatype.nexus.cfg, and set: {code} nexus-context-path=/foo/nexus {code} After doing this, the UI heartbeat does not work, the request is sent to ""http://localhost:8081/foo/service/extdirect"" rather than ""http://localhost:8081/foo/nexus/service/extdirect"". This sort of context path works in Nexus 2.x. ",2 +"NEXUS-10421","06/29/2016 18:49:08","Docker pull through proxy repository fails if remote is not available","Set up a docker proxy repository against dockerhub, pull an image through it. Then disable outbound network access (for testing, I did this by setting an http proxy server that doesn't exist in the HTTP settings). Then try to pull the image again. This fails with a 502 error. {quote} docker pull 192.168.1.83:18887/tomcat Using default tag: latest Error response from daemon: Received unexpected HTTP status: 502 Bad Gateway {quote} The nexus.log shows what you would expect: {noformat} 2016-06-29 12:32:40,579-0500 INFO [qtp384210737-175] admin org.sonatype.nexus.internal.httpclient.HttpClientManagerImpl - Saving configuration: HttpClientConfiguration{connection=null, proxy=ProxyConfiguration{http=ProxyServerConfiguration{enabled=true, host='192.168.1.65', port=8889, authentication=null}, https=null, nonProxyHosts=null}, authentication=null} 2016-06-29 12:32:47,533-0500 WARN [qtp384210737-73] admin org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl - Failed to fetch: v2/library/tomcat/manifests/latest org.apache.http.conn.HttpHostConnectException: Connect to 192.168.1.65:8889 [/192.168.1.65] failed: Connection refused at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:151) [na:na] at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353) [na:na] at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:388) [na:na] at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) [na:na] at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) [na:na] at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) [na:na] at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) [na:na] at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) [httpcore:0.0.0] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) [httpcore:0.0.0] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) [httpcore:0.0.0] at org.sonatype.nexus.repository.httpclient.FilteredHttpClient$2.call(FilteredHttpClient.java:196) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.httpclient.FilteredHttpClient$2.call(FilteredHttpClient.java:1) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.httpclient.FilteredHttpClient.filter(FilteredHttpClient.java:99) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.httpclient.FilteredHttpClient.execute(FilteredHttpClient.java:192) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.execute(DockerProxyFacetImpl.java:285) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:222) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:202) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:164) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:48) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.0.1.01] {noformat}",3 +"NEXUS-10423","06/30/2016 17:07:16","NPM proxy repository Timeout waiting for connection from pool","npm install is returning HTTP 500 errors. In the logs we are seeing the following connection pool time outs. Restarting Nexus resolved the issue. {noformat} 2016-06-30 17:13:02,784+0200 WARN [qtp656923842-48759] *UNKNOWN com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl - Failed to fetch: serve-favicon org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.leaseConnection(PoolingHttpClientConnectionManager.java:286) [na:na] at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$1.get(PoolingHttpClientConnectionManager.java:263) [na:na] at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:190) [na:na] at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) [na:na] at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) [na:na] at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) [na:na] at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) [httpcore:0.0.0] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) [httpcore:0.0.0] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107) [httpcore:0.0.0] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) [httpcore:0.0.0] at org.sonatype.nexus.repository.httpclient.FilteredHttpClient$1.call(FilteredHttpClient.java:182) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.httpclient.FilteredHttpClient$1.call(FilteredHttpClient.java:1) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.httpclient.FilteredHttpClient.filter(FilteredHttpClient.java:99) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.httpclient.FilteredHttpClient.execute(FilteredHttpClient.java:178) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.execute(ProxyFacetSupport.java:281) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:221) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:201) [org.sonatype.nexus.repository:3.0.0.b2016011501] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.fetch(NpmProxyFacetImpl.java:62) [com.sonatype.nexus.plugins.nexus-repository-npm:3.0.0.b2016011501] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:163) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:48) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context$proceed$17.call(Unknown Source) [!/:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyRecipe$_closure1.doCall(NpmProxyRecipe.groovy:140) [com.sonatype.nexus.plugins.nexus-repository-npm:3.0.0.b2016011501] at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_66] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_66] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy121.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$1.handle(NpmHandlers.java:110) [com.sonatype.nexus.plugins.nexus-repository-npm:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.0.b2016011501] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.retrievePackageRoot(NpmProxyFacetImpl.java:332) [com.sonatype.nexus.plugins.nexus-repository-npm:3.0.0.b2016011501] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.retrievePackageVersion(NpmProxyFacetImpl.java:295) [com.sonatype.nexus.plugins.nexus-repository-npm:3.0.0.b2016011501] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.getUrl(NpmProxyFacetImpl.java:135) [com.sonatype.nexus.plugins.nexus-repository-npm:3.0.0.b2016011501] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:201) [org.sonatype.nexus.repository:3.0.0.b2016011501] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.fetch(NpmProxyFacetImpl.java:62) [com.sonatype.nexus.plugins.nexus-repository-npm:3.0.0.b2016011501] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:163) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:48) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context$proceed$17.call(Unknown Source) [!/:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyRecipe$_closure1.doCall(NpmProxyRecipe.groovy:140) [com.sonatype.nexus.plugins.nexus-repository-npm:3.0.0.b2016011501] at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_66] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_66] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy121.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$1.handle(NpmHandlers.java:110) [com.sonatype.nexus.plugins.nexus-repository-npm:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.group.GroupHandler.getFirst(GroupHandler.java:118) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.group.GroupHandler.doGet(GroupHandler.java:95) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.0.b2016011501] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.b2016011501] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.b2016011501] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.b2016011501] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.b2016011501] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.b2016011501] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.b2016011501] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.core:3.0.0.b2016011501] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.b2016011501] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.5.v20151012] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.5.v20151012] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.5.v20151012] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.5.v20151012] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.5.v20151012] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261) [org.eclipse.jetty.io:9.3.5.v20151012] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.5.v20151012] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.5.v20151012] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.5.v20151012] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.5.v20151012] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66] {noformat}",2 +"NEXUS-10429","07/01/2016 20:15:50","Task produces WARN if ""incorrect"" repository is selected","Running ""Remove snapshots from Maven repository"" task with a proxy or hosted release repository selected fires the below WARN and errors the task. Both proxy and hosted release repositories are available in the dropdown of repositories (and for maven configured by default). I do not believe these failing repository types should be in the dropdown if they just cause errors. This is borderline bug/improvement but I made a bug because of the error. {quote} 016-07-01 14:40:55,715-0400 WARN [quartz-2-thread-4] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskJob - Task 6b9d9397-3ed8-495d-923b-7c0646340fb7 : 'test2' [repository.maven.remove-snapshots] execution failure java.lang.IllegalStateException: null at com.google.common.base.Preconditions.checkState(Preconditions.java:158) [com.google.guava:18.0.0] at org.sonatype.nexus.repository.RepositoryTaskSupport.findRepositories(RepositoryTaskSupport.java:83) [na:na] at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:53) [na:na] at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:89) [org.sonatype.nexus.scheduling:3.1.0.SNAPSHOT] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:144) [org.sonatype.nexus.quartz:3.1.0.SNAPSHOT] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:105) [org.sonatype.nexus.quartz:3.1.0.SNAPSHOT] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [org.quartz-scheduler.quartz:2.2.2] at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) [org.sonatype.nexus.thread:3.1.0.SNAPSHOT] at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [org.apache.shiro.core:1.2.4] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_40] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_40] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_40] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_40] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {quote} Specifically seems to be happening because Repositories with a policy of RELEASE can be selected, even though they can't possibly contain SNAPSHOT jars. Note that this is stored in Repository attributes, which presently aren't exposed as a criteria to choose from in RepositoryComboBox definition.",1 +"NEXUS-10446","07/05/2016 04:46:05","blob store names should be case insensitive","Acceptance * Blob store name uniqueness checks should be case insensitive",5 +"NEXUS-10454","07/06/2016 15:43:03","Move the default location of the data directory in the tar/zip installs out of the install directory","The Nexus installation is temporary, once you upgrade it becomes obsolete. The data directory is permanent, it needs to be preserved across all upgrades. The default data folder should be ""../sonatype-work/nexus3/data"" We learned the hard way a very long time ago that it is a therefore good idea to have the default location of the data directory be outside of the installation directory (under ""../sonatype-work/""). Doing this will prevent two common errors: 1. Users unpacking new installations directly on top of existing installations 2. Users mistakenly deleting or damaging work directories when they try to move them out of old installations. An empty sonatype-work/nexus3 folder needs to be included in the bundle so the resulting folders have the correct permissions We must call out in the release notes and upgrade notes that the data folder has been moved. At this time, we expect the move to be done one time manually by the end users, this is not being automated. Users upgrading from pre-3.1 will need to either: * manually move (recommended) or symlink the data folder to expose it to where pre-3.1 stored it * configure Nexus 3.1 to point to the existing data folder inside the pre-3.1 layout (not recommended) **Users:** Please consult the official upgrade documentation for upgrade instructions pertaining to this move",3 +"NEXUS-10460","07/07/2016 16:15:38","Regression: Maven snapshot remover does not remove asc, md5, and sha1 files","The snapshot remover no longer removes files with extensions of md5, sha1, and asc. This is a regression which appears to have been introduced in 2.11.4. ",3 +"NEXUS-10473","07/12/2016 10:03:13","tmp files may be kept open after deletion","Tmp files seem to kept open after deletion. Maybe they are not being closed properly. There are 380 of these deleted files that kept open in this example. {noformat} java 20649 nexus 649r REG 252,0 9093 654189 /opt/nexus/data/tmp/1276495515440533956 (deleted) java 20649 nexus 650r REG 252,0 8886 654180 /opt/nexus/data/tmp/6665990066404085054 (deleted) java 20649 nexus 651r REG 252,0 5332 654112 /opt/nexus/data/tmp/7479893137228268673 (deleted) java 20649 nexus 652r REG 252,0 8886 654087 /opt/nexus/data/tmp/5534580044535320601 (deleted) java 20649 nexus 653r REG 252,0 8886 654087 /opt/nexus/data/tmp/5534580044535320601 (deleted) java 20649 nexus 654r REG 252,0 8886 654088 /opt/nexus/data/tmp/8180136182450828456 (deleted) java 20649 nexus 655r REG 252,0 8886 654088 /opt/nexus/data/tmp/8180136182450828456 (deleted) java 20649 nexus 656r REG 252,0 9093 655236 /opt/nexus/data/tmp/5270312889616353204 (deleted) java 20649 nexus 657r REG 252,0 5332 654112 /opt/nexus/data/tmp/7479893137228268673 (deleted) java 20649 nexus 658r REG 252,0 8886 654103 /opt/nexus/data/tmp/265009068789197025 (deleted) java 20649 nexus 659r REG 252,0 9093 654089 /opt/nexus/data/tmp/2941371309732436672 (deleted) {noformat} ",2 +"NEXUS-12531","07/12/2016 13:34:44","Allow browse of repository storage via HTML index directory listing","Since the release of Nexus 3, some people still have expressed an interest in having a Browse Storage feature that works using basic HTML navigation. Users of Nexus 2.x who just want to download a particular file for direct consumption often browse into the /content URL to locate what they want, click on it, and download it. This is a simple, very intuitive UI which can be used by end users who aren't very technical. In Nexus 3 it is no longer possible to do this. There are cases where you can download a file by requesting e.g.: http:///repository/ This makes it intuitive if the directory listing would be given if you remove the filename from that url (However, currently that url returns 404) Where it makes sense, consider allowing browsing of repositories via HTML directory listings. A few repository formats where this likely does make sense are: * Raw Repositories * Maven * Yum (future) Additionally, the fact that Nexus 3 does not implement an HTML directory list, means implicitly **the Browse Remote feature of Nexus 2 will not work when a proxy is added against a Nexus 3 remote**.",8 +"NEXUS-10477","07/12/2016 19:08:28","SSL key/trust store is not thread-safe","# Hook NX up for debugging and set a breakpoint at https://github.com/sonatype/nexus-internal/blob/738eb86c8013f524802cef87e2961975b1f5793a/components/nexus-ssl/src/main/java/org/sonatype/nexus/ssl/internal/geronimo/FileKeystoreInstance.java#L283 # Using two browser tabs, import a SSL certificate into the trust store # Observe that the breakpoint is reached by both HTTP request threads concurrently {{FileKeystoreInstance}} uses several basic collections ({{ArrayList}}, {{HashMap}}) that are not thread-safe by themselves and concurrent operations on the key store can cause corruption/failure. We should synchronize all access to {{FileKeystoreInstance}}, potentially even at a higher level like the methods in {{KeyStoreManagerImpl}}.",1 +"NEXUS-10481","07/13/2016 16:22:53","outbound docker proxy requests always insert /library/ and commonly return 404 at the remote","When nexus sends an outbound docker proxy request, the path gets manipulated on the fly to insert /library/. {noformat} 2016-07-13 10:27:44,571-0400 DEBUG [qtp570843386-3412] admin org.sonatype.nexus.repository.view.Router - Request: Request{action='GET', path='/v2/rhel/manifests/latest', parameters={}, payload=HttpRequestPayloadAdapter{contentType='null', size=-1}, multipart=false} 2016-07-13 10:27:44,574-0400 TRACE [qtp570843386-3412] admin org.sonatype.nexus.repository.docker.internal.DockerGroupHandler - Trying member: RepositoryImpl$$EnhancerByGuice$$a0148baa{type=proxy, format=docker, name='docker_proxy'} 2016-07-13 10:27:44,582-0400 DEBUG [qtp570843386-3412] admin org.sonatype.nexus.repository.view.Router - Request: Request{action='GET', path='/v2/rhel/manifests/latest', parameters={}, payload=HttpRequestPayloadAdapter{contentType='null', size=-1}, multipart=false} 2016-07-13 10:27:44,583-0400 TRACE [qtp570843386-3412] admin org.sonatype.nexus.repository.docker.internal.V2Handlers - Updating library request for: rhel and path: /v2/rhel/manifests/latest to: /v2/library/rhel/manifests/latest 2016-07-13 10:27:44,583-0400 DEBUG [qtp570843386-3412] admin org.sonatype.nexus.repository.view.Router - Request: Request{action='GET', path='/v2/library/rhel/manifests/latest', parameters={}, payload=HttpRequestPayloadAdapter{contentType='null', size=-1}, multipart=false} 2016-07-13 10:27:44,595-0400 DEBUG [qtp570843386-3412] admin org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl - Fetching: GET https://registry.example.com/v2/library/rhel/manifests/latest HTTP/1.1 2016-07-13 10:27:44,808-0400 WARN [qtp570843386-3412] admin org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/library/rhel/manifests/latest: 404 - org.sonatype.nexus.repository.docker.internal.V2Exception: manifest unknown {noformat} If the remote is anything other than dockerhub, this can fail with 404, and therefore Nexus returns 404 to the docker client. If /library/ was not inserted, it might have succeeded ",1 +"NEXUS-10496","07/19/2016 16:41:58","Warning when running installer as root.","A warning should be given when running installer as root user to correct file permissions ""chown -R nexus-user:nexus-group data"" Ideally it would be best if the install asked for nexus user and group to correct permissions itself.",2 +"NEXUS-10502","07/20/2016 09:19:49","nexus-staging-maven-plugin does not use proxy authentication credentials","I am trying to publish a Java library to Maven Central using the nexus-staging-maven-plugin version 1.6.7 behind a corporate proxy. In the end, I receive this error: bq. Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.7:deploy (injected-nexus-deploy) on project exchange-model: Execution injected-nexus-deploy of goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.7:deploy failed: Nexus connection problem to URL https://oss.sonatype.org/: 407 - Proxy Authentication Required -> [Help 1] It seems that the proxy authentication credentials are not picked up by the plugin, even though they are defined in my Maven settings.xml file on the proxy using the 'https' protocol. Plugin configuration is: {quote} org.sonatype.plugins nexus-staging-maven-plugin 1.6.7 true ossrh https://oss.sonatype.org/ true {quote} Proxy config is: {quote} https_psbru true https user pass psbru.cec.eu.int 8012 localhost|127.0.0.1 {quote} The proxy configuration is good since I can perform normal Maven builds and can download exte5rnal libraries. I was able to push the artefact by commenting the 'nexus-staging-maven-plugin' and just performing a 'mvn clean deploy'. My Maven version is 3.2.1. ",3 +"NEXUS-10503","07/20/2016 14:21:44","RepositoryManagerImpl is not thread-safe","# Fire up NX3 with a debugger # Set a breakpoint in {{RepositoryManagerImpl.track()}} (https://github.com/sonatype/nexus-internal/blob/8f1102843b5c02ad05a23e1d18e9ff2e24f27ee3/components/nexus-repository/src/main/java/org/sonatype/nexus/repository/manager/RepositoryManagerImpl.java#L158) # Create a new repo, observe the breakpoint gets hit and leave the thread suspended at it # Create another repo, observe the breakpoint gets hit again, i.e. two concurrent threads can execute that method which modifies {{repositories}}, a simple {{HashMap}}...",2 +"NEXUS-10505","07/20/2016 16:16:31","Cannot create Crowd capability","I find I am unable to create a Crowd capability using valid setup while I can create my Crowd configuration using the left nav Crowd item (which subsequently creates the capability with the same values). Editing and deleting seems fine. I found this testing HA, however, I was able to repro on latest 3.1 SNAPSHOT. I feel like this is recent regression, however, I have not tested older 3.1s to verify (nor have I tested older 3x as 3.1 is the first ""official"" pro release). I also didn't check NX2. Error (snipped; full nexus.log attached): {quote} 2016-07-20 11:11:24,729-0400 ERROR [qtp585549155-319] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: capability_Capability.create, java-method: org.sonatype.nexus.coreui.capability.CapabilityComponent.create java.lang.NumberFormatException: null at java.lang.Integer.parseInt(Integer.java:542) [na:1.8.0_40] at java.lang.Integer.parseInt(Integer.java:615) [na:1.8.0_40] at com.sonatype.nexus.crowd.CrowdConfiguration.(CrowdConfiguration.java:74) [na:na] ... {quote}",1 +"NEXUS-10518","07/22/2016 18:22:03","Upgrade to OrientDB 2.2.x","We should upgrade to the latest release line of orientdb. This will get us a fix for a known issue: [http://www.prjhub.com/#/issues/7245] It should also put us back on track for support until we re-up our contract in the September timeframe; plan there is to upgrade to Production support and avoid any issues about backwards support.",5 +"NEXUS-10533","07/29/2016 15:30:49","EnterpriseLdapManager is not thread-safe","{{EnterpriseLdapManager}} contains a mutable {{ArrayList}} of LDAP connectors (cf. https://github.com/sonatype/nexus-internal/blob/5e34c8081fa48a0aeb5545c0c7f5aeb1d5d693a3/private/plugins/nexus-ldap-plugin/src/main/java/org/sonatype/nexus/ldap/internal/realms/EnterpriseLdapManager.java#L65). which is improperly managed for concurrent access. # While {{getLdapConnectors()}} runs and rebuilds the list, nothing prevents/blocks a concurrent invocation of {{on(LdapClearCacheEvent)}}, giving rise to concurrent {{add()}} and {{clear()}} invocations on a non-concurrent list # While methods like {{authenticateUser()}} iterate over the returned array list from {{getLdapConnectors()}}, nothing blocks a concurrent invocation of {{on(LdapClearCacheEvent)}}, causing {{ConcurrentModificationException}} or more cryptic failures from the iteration {noformat} java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) at java.util.ArrayList$Itr.next(ArrayList.java:851) at org.sonatype.nexus.ldap.internal.realms.EnterpriseLdapManager.authenticateUser(EnterpriseLdapManager.java:105) at org.sonatype.nexus.ldap.LdapRealm.queryForAuthenticationInfo(LdapRealm.java:107) at org.apache.shiro.realm.ldap.AbstractLdapRealm.doGetAuthenticationInfo(AbstractLdapRealm.java:192) at org.apache.shiro.realm.AuthenticatingRealm.getAuthenticationInfo(AuthenticatingRealm.java:568) at org.sonatype.nexus.security.authc.FirstSuccessfulModularRealmAuthenticator.doMultiRealmAuthentication(FirstSuccessfulModularRealmAuthenticator.java:49) at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doAuthenticate(ModularRealmAuthenticator.java:269) at org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:198) at org.apache.shiro.mgt.AuthenticatingSecurityManager.authenticate(AuthenticatingSecurityManager.java:106) at org.apache.shiro.mgt.DefaultSecurityManager.login(DefaultSecurityManager.java:270) at org.apache.shiro.nexus.NexusWebSecurityManager.login(NexusWebSecurityManager.java:62) at org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:256) at org.apache.shiro.web.filter.authc.AuthenticatingFilter.executeLogin(AuthenticatingFilter.java:53) at org.sonatype.nexus.rapture.internal.security.SessionAuthenticationFilter.onAccessDenied(SessionAuthenticationFilter.java:83) {noformat}",2 +"NEXUS-10540","08/01/2016 22:45:49","BlobStoreManagerImpl is not thread-safe","The {{BlobStoreManagerImpl}} uses a simple {{HashMap}} for its {{stores}} member which isn't properly protected from concurrent access: # Fire NX3 up with a debugger # Set a breakpoint in {{BlobStoreManagerImpl.track()}} (https://github.com/sonatype/nexus-internal/blob/525334ca25c2463544b12dd49aa54ef55ee2a703/components/nexus-core/src/main/java/org/sonatype/nexus/internal/blobstore/BlobStoreManagerImpl.java#L207) # In one browser tab, create a new blob store # Observe breakpoint gets hit, leave thread suspended at it # In another browser tab, create another blob store # Observe breakpoint gets hit again, i.e. a concurrent thread attempts to modify the {{stores}} ",1 +"NEXUS-10564","08/02/2016 18:10:20","Bower proxy repository timeout waiting for connection from pool","# Add a bower proxy for http://bower.herokuapp.com, e.g. repo name ""bower-proxy"" # run {{curl -I http://localhost:8081/repository/bower-proxy/packages/search/foo}} about two dozen times (IIRC, 20 is the max number of connections per route/host of the shared HTTP connection pool, that needs to be exceeded), note that this makes HEAD requests, not GETs # Eventually observe the exception below and the client receiving ""502 Bad Gateway"" {noformat} 2016-08-02 18:57:20,560+0200 WARN [qtp1179177986-1402] *UNKNOWN org.sonatype.nexus.repository.bower.internal.BowerProxyFacetImpl - Failed to fetch: packages/search/foo org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.leaseConnection(PoolingHttpClientConnectionManager.java:286) [na:na] at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$1.get(PoolingHttpClientConnectionManager.java:263) [na:na] at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:190) [na:na] at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) [na:na] at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) [na:na] at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) [na:na] at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) [httpcore:0.0.0] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) [httpcore:0.0.0] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107) [httpcore:0.0.0] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) [httpcore:0.0.0] at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.lambda$0(FilteredHttpClientSupport.java:71) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.httpclient.BlockingHttpClient.filter(BlockingHttpClient.java:85) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.execute(FilteredHttpClientSupport.java:71) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.execute(ProxyFacetSupport.java:282) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:222) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.bower.internal.BowerProxyFacetImpl.fetch(BowerProxyFacetImpl.java:191) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:202) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:164) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:49) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.bower.internal.BowerExceptionHandler.handle(BowerExceptionHandler.java:45) [com.sonatype.nexus.plugins.nexus-repository-bower:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [3.1.0-SNAPSHOT:na] at org.sonatype.nexus.repository.bower.internal.BowerRecipeSupport$_closure1.doCall(BowerRecipeSupport.groovy:98) [com.sonatype.nexus.plugins.nexus-repository-bower:3.1.0.SNAPSHOT] at sun.reflect.GeneratedMethodAccessor208.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_74] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_74] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4] at com.sun.proxy.$Proxy185.handle(Unknown Source) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Context.start(Context.java:114) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.1.0.SNAPSHOT] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.1.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.1.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.1.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:112) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.1.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.1.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.1.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.1.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_74] {noformat} Part of the issue here maybe that {{DefaultHttpResponseSender}} does not consume/close the response payload for HEAD requests. If that payload is an instance of {{HttpEntityPayload}} as in this bower proxy scenario, the underlying HTTP connection is leaked.",2 +"NEXUS-10565","08/02/2016 21:19:08","LDAP group membership query can fail due to query size limits","When we check for a user's LDAP group membership during authorization the query issued retrieves all groups a user is a member of: {code} (&(objectClass=group)(&(cn=*)(member=uid=someuser,ou=users,dc=somecorp,dc=com))) {code} This query (like any LDAP query that retrieves a set) can fail to retreive all results due to query result size limits in the LDAP server. When this happens there is no workaround, the user's group mapping will not work if the group is not in the returned set. We should either use a more targeted query, or we should be using a paged result set to retreive all results, rather than trying to get them all in one shot.",2 +"NEXUS-10570","08/04/2016 17:06:56","document best practice for url encoding/decoding through reverse proxies","When npm clients send requests to the remote server ( ie. the registry URL ) it needlessly encodes slashs as %2f. Sonatype has filed an npm issue about this because it seems improper that npm client url encodes forward slashes: [https://github.com/npm/npm/issues/16380] Other clients ( not npm ) may also send URLs with encoded slashes. Unfortunately this encoding of slashes conflicts with the default settings of Apache httpd which by default DOES NOT ALLOW THEM and WILL RETURN a 404 response. From [https://httpd.apache.org/docs/2.2/mod/core.html#allowencodedslashes] {quote}With the default value, Off, such URLs are refused with a 404 (Not found) error. {quote} However, if you are running Apache httpd 2.0.52 to 2.2.8 and you set: {noformat:title=DO NOT DO THIS in Apache httpd 2.0.52 to 2.2.8} AllowEncodedSlashes On {noformat} Then you will trigger a bug that incorrectly decodes encoded slashes when they should not be: [https://bz.apache.org/bugzilla/show_bug.cgi?id=35256] The workaround to allow encoded slashes through Apache httpd involves 2 settings: {noformat:title=DO THIS: Prevent Apache httpd from decoding %2f URL Encoded slashes} AllowEncodedSlashes NoDecode {noformat} *and* The ProxyPass directive may also need nocanon option. From [https://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass] : {quote}Normally, mod_proxy will canonicalise ProxyPassed URLs. But this may be incompatible with some backends, particularly those that make use of PATH_INFO. The optional nocanon keyword suppresses this and passes the URL path ""raw"" to the backend. Note that this keyword may affect the security of your backend, as it removes the normal limited protection against URL-based attacks provided by the proxy. {quote} {noformat:title=DO THIS: Example use of nocanon option} ProxyPass / http://localhost:8081/ nocanon {noformat}   Basically Sonatype server products do not rely on Apache httpd to filter out suspect URLs containing path info with encoded values, so it is OK and sometimes required to let these through to the backend servers.  Additional Reference: [http://stackoverflow.com/a/9933890/235000]",3 +"NEXUS-10599","08/05/2016 17:13:30","Staging repositories should not be included in the migration list","Staging isn't currently supported in Nexus 3, we should detect staging repositories and grey them out, similar has been done for ""central-m1"" in this screenshot. This will let people who have staging know that it isn't in Nexus 3, giving them an opportunity to stop migration early, rather than wasting a large amount of time trying to migrate to Nexus 3.1.",1 +"NEXUS-10621","08/09/2016 20:08:01","DefaultCapabilityRegistry is not thread-safe","The {{DefaultCapabilityRegistry}} uses a simple {{HashMap}} for its {{references}} field, a lock is used to protect that data structure from concurrent access. The {{getAll()}} method however hands out a direct reference to that very map (its value set actually but that's irrelevant here), exposing it to access that is not guarded by the lock, e.g. an iteration by {{get()}} or other callers which can then encounter exceptions like below. https://github.com/sonatype/nexus-internal/blob/3ce6cd48c49603b70f3dc1e41efe53122e9ea033/components/nexus-core/src/main/java/org/sonatype/nexus/internal/capability/DefaultCapabilityRegistry.java#L362 {noformat} 2016-08-09 20:49:45,756+0200 ERROR [pool-38-thread-8] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: capability_Capability.read, java-method: org.sonatype.nexus.coreui.capability.CapabilityComponent.read java.util.ConcurrentModificationException: null at java.util.HashMap$HashIterator.nextNode(HashMap.java:1429) [na:1.8.0_74] at java.util.HashMap$ValueIterator.next(HashMap.java:1458) [na:1.8.0_74] at com.google.common.collect.Iterators$7.computeNext(Iterators.java:651) [com.google.guava:18.0.0] at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) [com.google.guava:18.0.0] at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) [com.google.guava:18.0.0] at java.util.Collections$UnmodifiableCollection$1.hasNext(Collections.java:1041) [na:1.8.0_74] at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3169) [na:na] at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3140) [na:na] at org.codehaus.groovy.runtime.dgm$66.invoke(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) [na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [na:na] at org.sonatype.nexus.coreui.capability.CapabilityComponent.read(CapabilityComponent.groovy:78) [na:na] {noformat} ",1 +"NEXUS-10630","08/11/2016 16:04:47","Unable to push image whenever it shares layers with another image already pushed by another docker client","h1. Symptoms When I try to push an image having layers used by other images already pushed onto the nexus docker registry (and pushed by another client) I got the following error message: ""Upload failed, retrying: blob upload invalid: blob upload invalid"" h1. Step to reproduce Machine A: boot2docker (see details below) Machine B: centos (see details below) # Machine A: Create a Dockerfile (such as the one in attachment) set version in echo to v0.0 # Machine A: build tag and push it to a fresh nexus repository with tag 0.0 # Machine A: update dockerfile and set version in echo to 0.1 # Machine A: build tag and push it to nexus with tag 0.1 # Machine B: get Dockerfile and set version in echo to 1.0 # Machine B: build tag and push it to nexus with tag 1.0 h1. Configuration h2. Nexus * Nexus OSS 3.0.0-03 * Nexus running in a docker container.(sonatype/nexus3:3.0.0) * running behind nginx (handling https) h2. Clients 2 machines: a centos and a boot2docker hosted in windows 10. Both using the same version of docker h3. Docker 1.12.0, build 8eab29e h3. OS boot2docker: docker-machine.exe version 0.8.0, build b85aac1 centos: CentOS Linux release 7.2.1511 (Core) h1. Remarks I tried with a very simple docker image (such as busybox instead of gocd/gocd-agent) and it seems to work.",2 +"NEXUS-10631","08/11/2016 18:29:14","Show deployment user ID and IP address in component/asset attributes","In Nexus 2.x you can see the user ID who deployed an artifact in the ""artifact"" tab. This information is not present in Nexus 3. It should be. Additionally, it would be good to show the IP address it was deployed from.",3 +"NEXUS-10633","08/11/2016 21:41:46","Create Blobstore prompts to discard navigating away","Just noticed I went to create a blobstore but immediately backed out and was prompted to discard. This is inconsistent with our other create options however I suspect this is because the field ""Type"" is auto filled with ""File"". I may be wrong because creating task Execute Script has ""Language"" auto filled and does not exhibit the same behavior. If not a bug, I still think worth documenting. There are several of these discard bugs floating (most fixed) and it helps at least me to see it here rather than remembering if a bug or not. At minimum bringing up for triage. I didn't check older NX3 at this time. NX2 did not have a Blobstore area so there is nothing to check there.",0.5 +"NEXUS-10637","08/15/2016 18:08:17","The URL and status fields in the Repository admin table should be cloned to browse mode","We withhold important information about repositories from non-admins. Specifically, the repository status and URL fields. * The repository status field is useful to see when a repository cannot be used by build tools. * The URL field is necessary for folks to understand how to connect their build tools. We should make both of these fields available in browse mode.",1 +"NEXUS-10638","08/15/2016 18:10:14","add a search criteria for repository name","It would be nice to have a repository name entry in the 'More criteria' section of the search. Acceptance * I am able to search within a specified repository",2 +"NEXUS-10654","08/17/2016 19:34:01","Cancel button needs clicked twice, the first time validates","While setting up an LDAP, near the end I clicked ""Verify login"" but decided not to verify and instead clicked ""Cancel"". When I did so, I was informed that the name field was required via validation and had to click cancel again to close the modal. This seemed familiar ref: https://issues.sonatype.org/browse/NEXUS-8430. The fix may also be the same. Interestingly esc and X close implemented in NEXUS-9670 both provide a workaround without actually clicking cancel as well. I did not check older NX3 or NX2 at this time. It seems likely based around NEXUS-8430 that this may have been lurking for a while.",0.5 +"NEXUS-10679","08/23/2016 23:48:21","NPM repos don't handle HEAD requests","Looks to be a regression from NX2, and a deviation from the expected behaviour of an npm registry. While NX2 and https://registry.npmjs.org both respond with 200/404 as expected, NX3 returns 400 in the event of all HEAD requests. ",2 +"NEXUS-10692","08/24/2016 21:44:47","do not prompt for user credentials for RUT authenticated users","If a user is authenticated via RUT authorization they should not be prompted for a password from Nexus under any circumstances, since they do not have one to provide. This applies to at least the following: * User Token Retrieval * NuGet API Key Access * Support Zip Download All destructive operations should still require a confirmation dialog ( Yes or No - but not ask for credentials) - such as: * resetting all user tokens * resetting NuGet API key",5 +"NEXUS-10750","08/29/2016 22:08:51","limit displayed search criteria to the formats of configured searchable repositories","In the UI, if you expand the Search option all types that Nexus supports are listed even if there are no repositories for a type configured. I think it would be good if only those types that are are repos set up for in the instances are listed. Listing types that are not supported by this specific Nexus instance could possibly make the user think that there should be support. Which could cause support tickets for the Nexus admin. For example, a user seeing ""Docker"" listed could (as Docker is hype) think that it would proxy Docker hub and try to use it. When it doesn't work (as not proxy is set up) he/she could think something is wrong in this setup starting a internal support ticket to solve this. Acceptance criteria: * When no repositories have been configured for a given repository format, that format should not appear as a search option.",5 +"NEXUS-10759","08/30/2016 13:58:07","Deleting a repository of non-trivial sizes lags and floods the log with exceptions","I tried to delete the maven-central proxy out of my dev instance which contained 1000+ assets (from building goodies or nexus-internal). After clicking ""Delete repository"" from the UI no immediate user feedback about the operation was provided, the repo screen was still there showing the deleted ""maven-central"" repo. Meanwhile, the NX log got filled with the below exception, about every 5 seconds. After some time, the delete operations seems to finally have completed. {noformat} 2016-08-30 14:44:54,783+0200 ERROR [qtp1716242542-378] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Repository.coreui_Repository_readStatus, java-method: org.sonatype.nexus.coreui.RepositoryComponent.readStatus java.lang.IllegalStateException: Invalid state: DELETED; allowed: [STARTED] at org.sonatype.nexus.common.stateguard.StateGuard._ensure(StateGuard.java:115) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard.access$1(StateGuard.java:108) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:269) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_74] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_74] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.MethodMetaProperty$GetBeanMethodMetaProperty.getProperty(MethodMetaProperty.java:76) [na:na] at org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite.getProperty(GetEffectivePojoPropertySite.java:64) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:296) [na:na] at org.sonatype.nexus.coreui.RepositoryComponent.buildStatus(RepositoryComponent.groovy:249) [na:na] at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_74] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_74] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:384) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166) [na:na] at org.sonatype.nexus.coreui.RepositoryComponent$_readStatus_closure6.doCall(RepositoryComponent.groovy:237) [na:na] at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_74] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_74] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at groovy.lang.Closure.call(Closure.java:442) [na:na] at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3170) [na:na] at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3140) [na:na] at org.codehaus.groovy.runtime.dgm$66.invoke(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) [na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [na:na] at org.sonatype.nexus.coreui.RepositoryComponent.readStatus(RepositoryComponent.groovy:237) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_74] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_74] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at com.softwarementors.extjs.djn.router.processor.poll.PollRequestProcessor.process(PollRequestProcessor.java:145) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$4.processPollRequest(ExtDirectServlet.java:315) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:621) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:127) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doGet(DirectJNgineServlet.java:553) [org.sonatype.nexus.extdirect:3.1.0.SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.1.0.SNAPSHOT] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.1.0.SNAPSHOT] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:112) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.1.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.1.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.1.0.SNAPSHOT] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.1.0.SNAPSHOT] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_74] ... 2016-08-30 14:44:59,903+0200 ERROR [qtp1716242542-429] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Repository.coreui_Repository_readStatus, java-method: org.sonatype.nexus.coreui.RepositoryComponent.readStatus java.lang.IllegalStateException: Invalid state: DELETED; allowed: [STARTED] 2016-08-30 14:45:04,936+0200 ERROR [qtp1716242542-383] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Repository.coreui_Repository_readStatus, java-method: org.sonatype.nexus.coreui.RepositoryComponent.readStatus java.lang.IllegalStateException: Invalid state: DELETED; allowed: [STARTED] {noformat} cf. https://github.com/sonatype/nexus-internal/blob/0a364dc7b5085ad1f02781a0752f23a268c5125d/components/nexus-repository/src/main/java/org/sonatype/nexus/repository/storage/StorageFacetImpl.java#L190",3 +"NEXUS-10774","08/31/2016 17:13:36","the icon to collapse user interface feature menu can be easily confused for a back navigation button","We’ve designed our UI to work at 1024x768. Thus, the ability to collapse the feature menu isn’t really needed, and can be disabled. This will also eliminate any confusion about how the collapse arrow relates to the breadcrumb. !https://issues.sonatype.org/secure/attachment/72950/72950_Assets+-+Nexus+Repository+Manager+2016-08-31+16-58-57.png!",1 +"NEXUS-10794","09/02/2016 20:05:18","user tokens do not work in combination with RUT Auth and LDAP realms","h4. Setup Nexus # Start with virgin Nexus 2.13.0-01 # Create a file at sonatype-work/nexus/conf/logback-overrides.xml with this content: {noformat} {noformat} # (Optional) Add Nexus patches at https://issues.sonatype.org/browse/NEXUS-10431 and set {{nexus.usertoken.noPopUps=true}} in nexus.properties - **this step is optional to reproduce the underlying problem** # Start Nexus # Disable Anonymous Access # Enable the RUT Auth capability with header value as {{REMOTE_USER}} # Configure Enterprise LDAP to a server with at least one user in one ldap group. ( [can use Sonatype test LDAP|https://docs.sonatype.com/display/INSIGHT/Testing+IQ+LDAP+Integration] ) # Map a single external ldap role into Nexus with a role member of Nexus Administrator Role # Configure Nexus 2.13.0-01 Realms as: * RUT Auth * User Token * Xml Auth * Xml Authz * Enteprise LDAP The direct Nexus URL in this case will be http://localhost:8081/nexus **The attached nexus pro bundle has all of this configured already, with logs showing the problem** h4. Setup Reverse Proxy You are going to need a reverse proxy that sets REMOTE_USER header to the name of the LDAP user who is in the mapped LDAP role. [Example using this support tool|https://github.com/sonatype/nexus-toolbox/tree/master/reverse-proxy]: {{java -jar ./target/reverse-proxy-1.0-SNAPSHOT.jar -H ""REMOTE_USER:whitney.haig""}} The reverse proxy URL will be http://localhost:18081 in this case h4. Perform Test h5. Step 1 # Clean browser cache or open an incognito window # Login to UI at direct URL: http://locahost:8081/nexus , using the LDAP username and password, for the user name you setup with the Reverse proxy h5. Step 2 # Open in another browser or incognito window the reverse proxy URL http://locahost:18081/ - this should automatically log you in as the LDAP user in the REMOTE_USER header. # Go to your profile in and Access your user token. Make note of this value. h5. Step 3 Use curl to perform a basic auth request using the valid user token credentials obtained from step 2 Example: {noformat} curl -v http://localhost:8081/nexus/service/local/authentication/login -u ""2e2MKSaH:Uwk+1UrICtBfBge8nIbeiRIYobtbgFYqdCqZn+gWQd4U"" -v -o /dev/null {noformat} **This fails with 401 instead of 200** The Nexus log records this information: {noformat} jvm 1 | 2016-09-02 14:51:19,572-0300 DEBUG [qtp708525149-94 - /nexus/service/local/authentication/login] *UNKNOWN com.sonatype.nexus.usertoken.plugin.internal.UserTokenServiceImpl - Record: UserTokenRecord{userName='whitney.haig', principals=whitney.haig, userToken=UserToken{nameCode='2e2MKSaH'}, created=Fri Sep 02 14:40:31 ADT 2016} jvm 1 | 2016-09-02 14:51:19,572-0300 DEBUG [qtp708525149-94 - /nexus/service/local/authentication/login] *UNKNOWN com.sonatype.nexus.usertoken.plugin.realm.UserTokenRealm - Removing stale user-token, target principals are no longer valid jvm 1 | 2016-09-02 14:51:19,572-0300 DEBUG [qtp708525149-94 - /nexus/service/local/authentication/login] *UNKNOWN com.sonatype.nexus.usertoken.plugin.internal.UserTokenServiceImpl - Removing record for: 2e2MKSaH jvm 1 | 2016-09-02 14:51:19,572-0300 TRACE [qtp708525149-94 - /nexus/service/local/authentication/login] *UNKNOWN com.sonatype.nexus.usertoken.plugin.store.db.H2Database - Prepare: DELETE FROM USERTOKENS WHERE USERNAME=? {noformat} Notice it said the token was deleted? Now go back to the Step 2 browser window. Click Access User Token again. You still see your user token there and you can see in the logs that Nexus still gets this from the user token database. h4. Problems There are actually at least three bugs: # Nexus detects a valid user token as stale when it is not stale # Nexus claims to remove the stale user token, but it does not do this successfully, as later the same token can be retrieved from the usertoken db - it seems the query to DELETE tokens is broken # Nexus uses the user token name code as the username to lookup in LDAP ( this is never expected to work ) h4. Expected - a basic auth request with a valid user token should work with all the stated realms enabled. - a request with a RUT Auth header of a valid user should authenticate and be properly authorized - *a user account in LDAP should be able to authenticate to Nexus using either REMOTE_USER header or a valid user token name code, if both realms are enabled and set up correctly*",1 +"NEXUS-10795","09/02/2016 21:37:56","500 response ORecordDuplicatedException when the same npm package metadata is requested concurrently","While testing 3.0.2 npm, I noticed the below in the nexus.log when running the proxy tests. {code} 2016-09-02 15:30:01,421-0400 WARN [qtp391244988-366] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record #11:70: found duplicated key 'OCompositeKey{keys=[#9:8, null, lru-cache]}' in index 'asset_bucket_component_name_idx' previously assigned to the record #11:69 at com.orientechnologies.orient.core.index.OIndexUnique.put(OIndexUnique.java:70) [na:na] at com.orientechnologies.orient.core.index.OIndexUnique.put(OIndexUnique.java:34) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.putInSnapshot(OIndexAbstract.java:965) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.applyIndexTxEntry(OIndexAbstract.java:1151) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.addTxOperation(OIndexAbstract.java:762) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic$CommitIndexesCallback.run(OTransactionOptimistic.java:101) [na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1211) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:606) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:156) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2689) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2658) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.commit(StorageTxImpl.java:170) [na:na] at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) [na:na] at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:66) [na:na] at com.sun.proxy.$Proxy173.commit(Unknown Source) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:65) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.putPackageRoot(NpmProxyFacetImpl.java:196) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.store(NpmProxyFacetImpl.java:104) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:168) [na:na] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:49) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyRecipe$_closure1.doCall(NpmProxyRecipe.groovy:139) [na:na] at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [na:na] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [na:na] at com.sun.proxy.$Proxy172.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$1.handle(NpmHandlers.java:110) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.getAll(GroupHandler.java:147) [na:na] at sun.reflect.GeneratedMethodAccessor195.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210) [na:na] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmGroupPackageHandler.doGet(NpmGroupPackageHandler.groovy:51) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.2.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.2.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.2.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.2.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.2.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] 2016-09-02 15:30:01,422-0400 WARN [qtp391244988-365] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record #11:69: found duplicated key 'OCompositeKey{keys=[#9:8, null, sigmund]}' in index 'asset_bucket_component_name_idx' previously assigned to the record #11:68 at com.orientechnologies.orient.core.index.OIndexUnique.put(OIndexUnique.java:70) [na:na] at com.orientechnologies.orient.core.index.OIndexUnique.put(OIndexUnique.java:34) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.putInSnapshot(OIndexAbstract.java:965) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.applyIndexTxEntry(OIndexAbstract.java:1151) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.addTxOperation(OIndexAbstract.java:762) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic$CommitIndexesCallback.run(OTransactionOptimistic.java:101) [na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1211) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:606) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:156) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2689) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2658) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.commit(StorageTxImpl.java:170) [na:na] at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) [na:na] at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:66) [na:na] at com.sun.proxy.$Proxy173.commit(Unknown Source) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:65) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.putPackageRoot(NpmProxyFacetImpl.java:196) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.store(NpmProxyFacetImpl.java:104) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:168) [na:na] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:49) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyRecipe$_closure1.doCall(NpmProxyRecipe.groovy:139) [na:na] at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [na:na] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [na:na] at com.sun.proxy.$Proxy172.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$1.handle(NpmHandlers.java:110) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.getAll(GroupHandler.java:147) [na:na] at sun.reflect.GeneratedMethodAccessor195.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210) [na:na] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmGroupPackageHandler.doGet(NpmGroupPackageHandler.groovy:51) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.2.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.2.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.2.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.2.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.2.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] 2016-09-02 15:30:02,405-0400 WARN [qtp391244988-397] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record #11:151: found duplicated key 'OCompositeKey{keys=[#9:8, null, wrappy]}' in index 'asset_bucket_component_name_idx' previously assigned to the record #11:150 at com.orientechnologies.orient.core.index.OIndexUnique.put(OIndexUnique.java:70) [na:na] at com.orientechnologies.orient.core.index.OIndexUnique.put(OIndexUnique.java:34) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.putInSnapshot(OIndexAbstract.java:965) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.applyIndexTxEntry(OIndexAbstract.java:1151) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.addTxOperation(OIndexAbstract.java:762) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic$CommitIndexesCallback.run(OTransactionOptimistic.java:101) [na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1211) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:606) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:156) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2689) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2658) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.commit(StorageTxImpl.java:170) [na:na] at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) [na:na] at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:66) [na:na] at com.sun.proxy.$Proxy173.commit(Unknown Source) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:65) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.putPackageRoot(NpmProxyFacetImpl.java:196) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.store(NpmProxyFacetImpl.java:104) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:168) [na:na] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:49) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyRecipe$_closure1.doCall(NpmProxyRecipe.groovy:139) [na:na] at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [na:na] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [na:na] at com.sun.proxy.$Proxy172.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$1.handle(NpmHandlers.java:110) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.getAll(GroupHandler.java:147) [na:na] at sun.reflect.GeneratedMethodAccessor195.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210) [na:na] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmGroupPackageHandler.doGet(NpmGroupPackageHandler.groovy:51) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.2.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.2.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.2.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.2.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.2.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] 2016-09-02 15:30:02,411-0400 WARN [qtp391244988-372] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record #11:156: found duplicated key 'OCompositeKey{keys=[#9:8, null, wrappy]}' in index 'asset_bucket_component_name_idx' previously assigned to the record #11:150 at com.orientechnologies.orient.core.index.OIndexUnique.put(OIndexUnique.java:70) [na:na] at com.orientechnologies.orient.core.index.OIndexUnique.put(OIndexUnique.java:34) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.putInSnapshot(OIndexAbstract.java:965) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.applyIndexTxEntry(OIndexAbstract.java:1151) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.addTxOperation(OIndexAbstract.java:762) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic$CommitIndexesCallback.run(OTransactionOptimistic.java:101) [na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1211) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:606) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:156) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2689) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2658) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.commit(StorageTxImpl.java:170) [na:na] at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) [na:na] at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:66) [na:na] at com.sun.proxy.$Proxy173.commit(Unknown Source) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:65) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.putPackageRoot(NpmProxyFacetImpl.java:196) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.store(NpmProxyFacetImpl.java:104) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:168) [na:na] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:49) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyRecipe$_closure1.doCall(NpmProxyRecipe.groovy:139) [na:na] at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [na:na] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [na:na] at com.sun.proxy.$Proxy172.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$1.handle(NpmHandlers.java:110) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.getAll(GroupHandler.java:147) [na:na] at sun.reflect.GeneratedMethodAccessor195.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210) [na:na] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmGroupPackageHandler.doGet(NpmGroupPackageHandler.groovy:51) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.2.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.2.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.2.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.2.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.2.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] 2016-09-02 15:30:04,293-0400 WARN [qtp391244988-365] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record #11:313: found duplicated key 'OCompositeKey{keys=[#9:8, null, repeat-string]}' in index 'asset_bucket_component_name_idx' previously assigned to the record #11:312 at com.orientechnologies.orient.core.index.OIndexUnique.put(OIndexUnique.java:70) [na:na] at com.orientechnologies.orient.core.index.OIndexUnique.put(OIndexUnique.java:34) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.putInSnapshot(OIndexAbstract.java:965) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.applyIndexTxEntry(OIndexAbstract.java:1151) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.addTxOperation(OIndexAbstract.java:762) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic$CommitIndexesCallback.run(OTransactionOptimistic.java:101) [na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1211) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:606) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:156) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2689) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2658) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.commit(StorageTxImpl.java:170) [na:na] at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) [na:na] at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:66) [na:na] at com.sun.proxy.$Proxy173.commit(Unknown Source) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:65) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.putPackageRoot(NpmProxyFacetImpl.java:196) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.store(NpmProxyFacetImpl.java:104) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:168) [na:na] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:49) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyRecipe$_closure1.doCall(NpmProxyRecipe.groovy:139) [na:na] at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [na:na] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [na:na] at com.sun.proxy.$Proxy172.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$1.handle(NpmHandlers.java:110) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.getAll(GroupHandler.java:147) [na:na] at sun.reflect.GeneratedMethodAccessor195.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210) [na:na] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmGroupPackageHandler.doGet(NpmGroupPackageHandler.groovy:51) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.2.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.2.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.2.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.2.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.2.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] 2016-09-02 15:30:04,529-0400 WARN [qtp391244988-316] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record #11:328: found duplicated key 'OCompositeKey{keys=[#9:8, null, is-buffer]}' in index 'asset_bucket_component_name_idx' previously assigned to the record #11:327 at com.orientechnologies.orient.core.index.OIndexUnique.put(OIndexUnique.java:70) [na:na] at com.orientechnologies.orient.core.index.OIndexUnique.put(OIndexUnique.java:34) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.putInSnapshot(OIndexAbstract.java:965) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.applyIndexTxEntry(OIndexAbstract.java:1151) [na:na] at com.orientechnologies.orient.core.index.OIndexAbstract.addTxOperation(OIndexAbstract.java:762) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic$CommitIndexesCallback.run(OTransactionOptimistic.java:101) [na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1211) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:606) [na:na] at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:156) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2689) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2658) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.commit(StorageTxImpl.java:170) [na:na] at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) [na:na] at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:66) [na:na] at com.sun.proxy.$Proxy173.commit(Unknown Source) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:65) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.putPackageRoot(NpmProxyFacetImpl.java:196) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.store(NpmProxyFacetImpl.java:104) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:168) [na:na] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:49) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyRecipe$_closure1.doCall(NpmProxyRecipe.groovy:139) [na:na] at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [na:na] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [na:na] at com.sun.proxy.$Proxy172.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$1.handle(NpmHandlers.java:110) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.getAll(GroupHandler.java:147) [na:na] at sun.reflect.GeneratedMethodAccessor195.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210) [na:na] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmGroupPackageHandler.doGet(NpmGroupPackageHandler.groovy:51) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.2.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.2.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.2.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.2.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.2.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {code} I also noticed several of these (different packages) in the npm output, I believe related. {code} npm http 500 http://localhost:8081/repository/npm-group/align-text npm ERR! registry error parsing json npm info retry will retry, error on last attempt: SyntaxError: Unexpected token < npm info retry npm info retry npm info retry npm info retry npm info retry 500 - Nexus Repository Manager npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry npm info retry
npm info retry
npm info retry npm info retry Error 500 npm info retry Internal Server Error npm info retry
npm info retry
npm info retry
npm info retry javax.servlet.ServletException: com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record #11:2486: found duplicated key 'OCompositeKey{keys=[#9:11, null, align-text]}' in index 'asset_bucket_component_name_idx' previously assigned to the record #11:2485 RID=#11:2485 npm info retry
npm info retry
npm info retry
npm info retry npm info retry {code} ",3 +"NEXUS-10808","09/07/2016 17:00:18","eager caching of nuget versions contributes to slow query performance","External Report: *Paket*: [#1912](https://github.com/fsprojects/Paket/issues/1912) I build our solutions with FAKE. In Interaction with Nexus 3 the `paket update` took very long, if I have FAKE in it (I think the problem here is on Nexus 3 side, because it tries to download all the versions of FAKE - and there are a lot of them). And it fails. {noformat} C:\Temp\NexusTest>.paket\paket.exe update Paket version 3.19.1.0 Resolving packages for group Main: Paket failed with: Could not find versions for package FAKE on http://localhost:8081/repository/nuget-group. {noformat} I prepared a simple project to reproduce the steps: https://github.com/WebDucer/Nexus3PaketIssue 1. Install the Docker container for Nexus 3 {noformat} docker run -d -p 8081:8081 --name nuget-repo sonatype/docker-nexus3 {noformat} 2. Use the project above to execute `paket update` against nuget.org or Nexus3 as source (comment the unneded sources out). Expected behavior `paket update` should update quicker for packages with a lot of versions Actual behavior `paket update` need a lot of time, if package `FAKE` is in it. Known workarounds Using of two sources (nuget.org on the first place and Nexus 3 on the second). Thread dump shows the thread getting all versions doing this: {noformat} qtp2081197315-75 id=75 state=RUNNABLE at java.util.HashMap.hash(HashMap.java:338) at java.util.HashMap.containsKey(HashMap.java:595) at com.orientechnologies.orient.core.db.record.OTrackedMap.put(OTrackedMap.java:72) at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.readEmbeddedMap(ORecordSerializerBinaryV0.java:439) at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.readSingleValue(ORecordSerializerBinaryV0.java:365) at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.readEmbeddedMap(ORecordSerializerBinaryV0.java:435) at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.readSingleValue(ORecordSerializerBinaryV0.java:365) at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.deserializePartial(ORecordSerializerBinaryV0.java:143) at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinary.fromStream(ORecordSerializerBinary.java:72) at com.orientechnologies.orient.core.record.impl.ODocument.deserializeFields(ODocument.java:1817) at com.orientechnologies.orient.core.sql.filter.OSQLFilterItemField.getValue(OSQLFilterItemField.java:105) at com.orientechnologies.orient.core.sql.filter.OSQLFilterCondition.evaluate(OSQLFilterCondition.java:315) at com.orientechnologies.orient.core.sql.filter.OSQLFilterCondition.evaluate(OSQLFilterCondition.java:76) at com.orientechnologies.orient.core.sql.filter.OSQLFilterCondition.evaluate(OSQLFilterCondition.java:320) at com.orientechnologies.orient.core.sql.filter.OSQLFilterCondition.evaluate(OSQLFilterCondition.java:76) at com.orientechnologies.orient.core.sql.filter.OSQLFilter.evaluate(OSQLFilter.java:100) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.evaluateRecord(OCommandExecutorSQLResultsetAbstract.java:401) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.filter(OCommandExecutorSQLResultsetAbstract.java:391) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearchRecord(OCommandExecutorSQLSelect.java:570) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchFromTarget(OCommandExecutorSQLSelect.java:1481) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:502) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:460) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:90) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:1547) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:1528) at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:67) at org.sonatype.nexus.repository.storage.MetadataNodeEntityAdapter.browseByQuery(MetadataNodeEntityAdapter.java:160) at org.sonatype.nexus.repository.storage.StorageTxImpl.findAssets(StorageTxImpl.java:311) at org.sonatype.nexus.repository.storage.StorageTxImpl.findAssets(StorageTxImpl.java:317) at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source) {noformat}",3 +"NEXUS-10813","09/08/2016 13:28:02","add anonymous read access support for docker repositories","Users would like to have anonymous read (pull) access to docker repositories in Nexus. This helps consume and share docker images more easily by not requiring a specific login. This is analogous to the benefits offered by anonymous access by other formats. As an end user, I don't want to have to configure authentication for read only access to docker repositories. Docker hub does not require this, and neither should Nexus Repository Manager. According to this comment from a Docker developer the correct way to do this would be to implement token authentication, and to have Nexus hand out tokens for anonymous access: https://github.com/docker/docker/issues/24129#issuecomment-230610547 There might also be a simpler implementation that should be considered for blanket anonymous access to a repository. ",8 +"NEXUS-10817","09/09/2016 15:00:32","publishing npm packages with wrongly encoded ISO-8859-1 JSON fails with 400","It is [common knowledge|https://issues.sonatype.org/browse/NEXUS-8043?focusedCommentId=298663&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-298663] that the official NPM registry contains packages that have wrongly encoded ( non UTF-8 ) pakage.json. Nexus tries to handle JSON wrongly encoded as ISO-8859-1, by falling back to that encoding when parsing JSON as UTF-8 fails. *It seems that the npm client may allow you to attempt publishing package.json that is not encoded properly - need to verify this* The [code from here|https://github.com/sonatype/nexus-internal/blob/ee9501671d3d030a88b2bcf740538b6a706bd09b/private/plugins/nexus-repository-npm/src/main/java/com/sonatype/nexus/repository/npm/internal/NpmJsonUtils.java#L75-L75] shows how Nexus performs a fallback when UTF-8 parsing fails: {code} @Nonnull static NestedAttributesMap parse(final Supplier streamSupplier) throws IOException { try { final Map backing = mapper.>readValue(streamSupplier.get(), rawMapJsonTypeRef); return new NestedAttributesMap(String.valueOf(backing.get(NpmMetadataUtils.NAME)), backing); } catch (JsonParseException e) { // fallback if (e.getMessage().contains(""Invalid UTF-8 middle byte"")) { // try again, but assume ISO8859-1 encoding now, that is illegal for JSON final Map backing = mapper.>readValue( new InputStreamReader(streamSupplier.get(), Charsets.ISO_8859_1), rawMapJsonTypeRef ); return new NestedAttributesMap(String.valueOf(backing.get(NpmMetadataUtils.NAME)), backing); } throw new InvalidContentException(""Invalid JSON input"", e); } } {code} However, parsing can fail with at least one other variation of exception message ( excluding any localized messages ): {noformat} 2016-09-02 10:17:31,147+0200 WARN [qtp2014951231-9618] deploy.milestones.npm com.sonatype.nexus.repository.npm.internal.NpmHandlers - Error: PUT /0126af95c0e2d9b0a7c78738c4c00a860b04acc8: Status{successful=false, code=400, message='null'} - Invalid JSON input org.sonatype.nexus.repository.InvalidContentException: Invalid JSON input at com.sonatype.nexus.repository.npm.internal.NpmJsonUtils.parse(NpmJsonUtils.java:84) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmFacetUtils.parse(NpmFacetUtils.java:93) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHostedFacetImpl.putPackageRoot(NpmHostedFacetImpl.java:98) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:54) [org.sonatype.nexus.transaction:3.0.1.01] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [org.sonatype.nexus.transaction:3.0.1.01] at com.sonatype.nexus.repository.npm.internal.NpmHostedFacetImpl.putPackage(NpmHostedFacetImpl.java:81) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$3.handle(NpmHandlers.java:172) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.1.01] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$1.handle(NpmHandlers.java:110) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.1.01] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.1.01] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.1.01] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.1.01] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.1.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.1.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.1.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.1.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.1.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:812) [na:1.8.0_72] Caused by: com.fasterxml.jackson.core.JsonParseException: Invalid UTF-8 start byte 0xa9 at [Source: sun.nio.ch.ChannelInputStream@3400c0ff; line: 1, column: 3880] at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1586) [na:na] at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:521) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidInitial(UTF8StreamJsonParser.java:3482) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidChar(UTF8StreamJsonParser.java:3476) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._finishString2(UTF8StreamJsonParser.java:2503) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._finishAndReturnString(UTF8StreamJsonParser.java:2429) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.getText(UTF8StreamJsonParser.java:318) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.deserialize(UntypedObjectDeserializer.java:514) [na:na] at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringMap(MapDeserializer.java:495) [na:na] at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:341) [na:na] at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:26) [na:na] at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3788) [com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2856) [com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.sonatype.nexus.repository.npm.internal.NpmJsonUtils.parse(NpmJsonUtils.java:70) [na:na] ... 95 common frames omitted {noformat} ",1 +"NEXUS-10829","09/12/2016 19:15:05","Store commonly customized configuration in the data folder","There are commonly customized configuration options that are currently stored in the installation folder and a user needs to remember to copy these over every time. As an admin, I want to be able to store the commonly customized property files inside the data folder so that I don't have to remember to reapply them or copy them every time I upgrade. This should include things like the jetty config, port, webapp context, logging, jvm options, ha (hazelcast, orient), ehcache.xml etc. Acceptance Criteria * Create a single property file with commonly-changed properties ** this lives in the data folder, which is read and pushed into other configuration via templates/property placeholders, so that (e.g.) jetty configuration files can still change structure version-to-version ** a similarly structured default properties file provides values for properties not set by the user (e.g. in cases where Nexus 3.(n+1) adds a new user-configurable property) ** When NX3 first boots, if the property override file does not exist, NX creates it *** (No overrides are set in this NX-created file, but comments explain the available configuration properties) * Subdivide the /etc directory into sub-directories to separate routinely changed configuration from rarely/never-changed configuration files * Documentation exists to explain this, including the different manual steps needed to upgrade from pre-3.0 to 3.1 * Circulate the proposed layout with the NX team and Support prior to implementation",5 +"NEXUS-10883","09/15/2016 17:07:15","DEBUG level logging should print HTTP response code Nexus is sending","Nexus 3 has a debug log message indicating that it is sending a response, but it does not show what the response is: {noformat} 2016-09-15 09:27:48,345-0500 DEBUG [qtp2022203553-1078] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - HTTP response sender: org.sonatype.nexus.repository.httpbridge.DefaultHttpResponseSender@1226dad5 {noformat} You need to enable TRACE logging to see it: {noformat} 2016-09-15 09:27:48,345-0500 TRACE [qtp2022203553-1078] admin org.sonatype.nexus.repository.httpbridge.DefaultHttpResponseSender - Sending response: Response{status=Status{successful=true, code=201, message='null'}, payload=null} {noformat} Please just put the above at DEBUG, it's a PITA to have customers enable trace logging of any kind, because the noise makes it very difficult to go through logs.",0.5 +"NEXUS-10893","09/16/2016 19:37:19","outreach outbound HEAD request triggers OutreachServlet WARN IOException Broken Pipe","No idea why this happens, but something doesn't seem right here with this WARN message related to Outreach: {noformat} 2016-09-16 15:20:45,535-0300 DEBUG [pool-143-thread-4] admin org.apache.http.client.protocol.RequestAddCookies - CookieSpec selected: ignoreCookies 2016-09-16 15:20:45,535-0300 DEBUG [pool-143-thread-4] admin org.apache.http.client.protocol.RequestAuthCache - Auth cache not set in the context 2016-09-16 15:20:45,535-0300 DEBUG [pool-143-thread-4] admin org.sonatype.nexus.httpclient.outbound - http://links.sonatype.com:80/products/nexus/outreach/oss/3.0.2-02/en/admin > HEAD /products/nexus/outreach/oss/3.0.2-02/en/admin HTTP/1.1 2016-09-16 15:20:45,535-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.MainClientExec - Opening connection {}->http://links.sonatype.com:80 2016-09-16 15:20:45,536-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.conn.DefaultHttpClientConnectionOperator - Connecting to links.sonatype.com/207.223.241.68:80 2016-09-16 15:20:45,588-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.conn.DefaultHttpClientConnectionOperator - Connection established 192.168.2.97:59349<->207.223.241.68:80 2016-09-16 15:20:45,588-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-3: set socket timeout to 20000 2016-09-16 15:20:45,588-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.MainClientExec - Executing request HEAD /products/nexus/outreach/oss/3.0.2-02/en/admin HTTP/1.1 2016-09-16 15:20:45,588-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.MainClientExec - Target auth state: UNCHALLENGED 2016-09-16 15:20:45,588-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.MainClientExec - Proxy auth state: UNCHALLENGED 2016-09-16 15:20:45,588-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-3 >> HEAD /products/nexus/outreach/oss/3.0.2-02/en/admin HTTP/1.1 2016-09-16 15:20:45,589-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-3 >> Host: links.sonatype.com 2016-09-16 15:20:45,589-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-3 >> Connection: Keep-Alive 2016-09-16 15:20:45,589-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-3 >> User-Agent: Nexus/3.0.2-02 (OSS; Mac OS X; 10.11.6; x86_64; 1.8.0_60) 2016-09-16 15:20:45,589-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-3 >> Accept-Encoding: gzip,deflate 2016-09-16 15:20:45,640-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-3 << HTTP/1.1 302 Found 2016-09-16 15:20:45,640-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-3 << Date: Fri, 16 Sep 2016 18:20:45 GMT 2016-09-16 15:20:45,640-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-3 << Server: Apache 2016-09-16 15:20:45,640-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-3 << Location: http://download.sonatype.com/nexus/outreach/oss-en-all-admin.zip 2016-09-16 15:20:45,640-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-3 << Connection: close 2016-09-16 15:20:45,640-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-3 << Content-Type: text/html; charset=iso-8859-1 2016-09-16 15:20:45,640-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-3: Close connection 2016-09-16 15:20:45,640-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.MainClientExec - Connection discarded 2016-09-16 15:20:45,640-0300 DEBUG [pool-143-thread-4] admin org.sonatype.nexus.httpclient.outbound - http://links.sonatype.com:80/products/nexus/outreach/oss/3.0.2-02/en/admin < HTTP/1.1 302 Found @ 105.1 ms 2016-09-16 15:20:45,640-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.client.DefaultRedirectStrategy - Redirect requested to location 'http://download.sonatype.com/nexus/outreach/oss-en-all-admin.zip' 2016-09-16 15:20:45,641-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.RedirectExec - Resetting target auth state 2016-09-16 15:20:45,641-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.RedirectExec - Redirecting to 'http://download.sonatype.com/nexus/outreach/oss-en-all-admin.zip' via {}->http://download.sonatype.com:80 2016-09-16 15:20:45,641-0300 DEBUG [pool-143-thread-4] admin org.apache.http.client.protocol.RequestAddCookies - CookieSpec selected: ignoreCookies 2016-09-16 15:20:45,641-0300 DEBUG [pool-143-thread-4] admin org.apache.http.client.protocol.RequestAuthCache - Auth cache not set in the context 2016-09-16 15:20:45,641-0300 DEBUG [pool-143-thread-4] admin org.sonatype.nexus.httpclient.outbound - http://download.sonatype.com:80/nexus/outreach/oss-en-all-admin.zip > HEAD /nexus/outreach/oss-en-all-admin.zip HTTP/1.1 2016-09-16 15:20:45,641-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.MainClientExec - Opening connection {}->http://download.sonatype.com:80 2016-09-16 15:20:45,642-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.conn.DefaultHttpClientConnectionOperator - Connecting to download.sonatype.com/207.223.241.68:80 2016-09-16 15:20:45,718-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.conn.DefaultHttpClientConnectionOperator - Connection established 192.168.2.97:59350<->207.223.241.68:80 2016-09-16 15:20:45,719-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-4: set socket timeout to 20000 2016-09-16 15:20:45,719-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.MainClientExec - Executing request HEAD /nexus/outreach/oss-en-all-admin.zip HTTP/1.1 2016-09-16 15:20:45,719-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.MainClientExec - Target auth state: UNCHALLENGED 2016-09-16 15:20:45,719-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.MainClientExec - Proxy auth state: UNCHALLENGED 2016-09-16 15:20:45,719-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-4 >> HEAD /nexus/outreach/oss-en-all-admin.zip HTTP/1.1 2016-09-16 15:20:45,719-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-4 >> Host: download.sonatype.com 2016-09-16 15:20:45,719-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-4 >> Connection: Keep-Alive 2016-09-16 15:20:45,719-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-4 >> User-Agent: Nexus/3.0.2-02 (OSS; Mac OS X; 10.11.6; x86_64; 1.8.0_60) 2016-09-16 15:20:45,719-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-4 >> Accept-Encoding: gzip,deflate 2016-09-16 15:20:45,770-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-4 << HTTP/1.1 302 Found 2016-09-16 15:20:45,770-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-4 << Date: Fri, 16 Sep 2016 18:20:45 GMT 2016-09-16 15:20:45,770-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-4 << Server: Apache 2016-09-16 15:20:45,770-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-4 << Location: http://sonatype-download.global.ssl.fastly.net/nexus/outreach/oss-en-all-admin.zip 2016-09-16 15:20:45,770-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-4 << Connection: close 2016-09-16 15:20:45,770-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-4 << Content-Type: text/html; charset=iso-8859-1 2016-09-16 15:20:45,770-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-4: Close connection 2016-09-16 15:20:45,770-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.MainClientExec - Connection discarded 2016-09-16 15:20:45,770-0300 DEBUG [pool-143-thread-4] admin org.sonatype.nexus.httpclient.outbound - http://download.sonatype.com:80/nexus/outreach/oss-en-all-admin.zip < HTTP/1.1 302 Found @ 129.1 ms 2016-09-16 15:20:45,770-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.client.DefaultRedirectStrategy - Redirect requested to location 'http://sonatype-download.global.ssl.fastly.net/nexus/outreach/oss-en-all-admin.zip' 2016-09-16 15:20:45,770-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.RedirectExec - Resetting target auth state 2016-09-16 15:20:45,771-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.RedirectExec - Redirecting to 'http://sonatype-download.global.ssl.fastly.net/nexus/outreach/oss-en-all-admin.zip' via {}->http://sonatype-download.global.ssl.fastly.net:80 2016-09-16 15:20:45,771-0300 DEBUG [pool-143-thread-4] admin org.apache.http.client.protocol.RequestAddCookies - CookieSpec selected: ignoreCookies 2016-09-16 15:20:45,771-0300 DEBUG [pool-143-thread-4] admin org.apache.http.client.protocol.RequestAuthCache - Auth cache not set in the context 2016-09-16 15:20:45,771-0300 DEBUG [pool-143-thread-4] admin org.sonatype.nexus.httpclient.outbound - http://sonatype-download.global.ssl.fastly.net:80/nexus/outreach/oss-en-all-admin.zip > HEAD /nexus/outreach/oss-en-all-admin.zip HTTP/1.1 2016-09-16 15:20:45,773-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-2: set socket timeout to 20000 2016-09-16 15:20:45,773-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.MainClientExec - Executing request HEAD /nexus/outreach/oss-en-all-admin.zip HTTP/1.1 2016-09-16 15:20:45,773-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.MainClientExec - Target auth state: UNCHALLENGED 2016-09-16 15:20:45,773-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.MainClientExec - Proxy auth state: UNCHALLENGED 2016-09-16 15:20:45,773-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 >> HEAD /nexus/outreach/oss-en-all-admin.zip HTTP/1.1 2016-09-16 15:20:45,773-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 >> Host: sonatype-download.global.ssl.fastly.net 2016-09-16 15:20:45,774-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 >> Connection: Keep-Alive 2016-09-16 15:20:45,774-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 >> User-Agent: Nexus/3.0.2-02 (OSS; Mac OS X; 10.11.6; x86_64; 1.8.0_60) 2016-09-16 15:20:45,774-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 >> Accept-Encoding: gzip,deflate 2016-09-16 15:20:45,818-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 << HTTP/1.1 200 OK 2016-09-16 15:20:45,819-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 << Server: Apache 2016-09-16 15:20:45,819-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 << Last-Modified: Thu, 15 Sep 2016 15:45:39 GMT 2016-09-16 15:20:45,819-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 << ETag: ""77e48-50fa-53c8dbcca8ec0"" 2016-09-16 15:20:45,819-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 << Access-Control-Allow-Origin: * 2016-09-16 15:20:45,819-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 << Content-Type: application/zip 2016-09-16 15:20:45,819-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 << Content-Length: 20730 2016-09-16 15:20:45,819-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 << Accept-Ranges: bytes 2016-09-16 15:20:45,819-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 << Date: Fri, 16 Sep 2016 18:20:45 GMT 2016-09-16 15:20:45,819-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 << Via: 1.1 varnish 2016-09-16 15:20:45,819-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 << Age: 95401 2016-09-16 15:20:45,819-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 << Connection: keep-alive 2016-09-16 15:20:45,819-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 << X-Served-By: cache-iad2640-IAD 2016-09-16 15:20:45,819-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 << X-Cache: HIT 2016-09-16 15:20:45,819-0300 DEBUG [pool-143-thread-4] admin org.apache.http.headers - http-outgoing-2 << X-Cache-Hits: 2 2016-09-16 15:20:45,819-0300 DEBUG [pool-143-thread-4] admin org.apache.http.impl.execchain.MainClientExec - Connection can be kept alive for 30000 MILLISECONDS 2016-09-16 15:20:45,820-0300 DEBUG [pool-143-thread-4] admin org.sonatype.nexus.httpclient.outbound - http://sonatype-download.global.ssl.fastly.net:80/nexus/outreach/oss-en-all-admin.zip < HTTP/1.1 200 OK @ 48.64 ms 2016-09-16 15:20:46,015-0300 WARN [qtp1107062179-1433] admin com.sonatype.nexus.plugins.outreach.internal.OutreachServlet - Error while processing page bundle org.eclipse.jetty.io.EofException: null at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:197) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:419) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:313) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:141) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:732) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:509) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:673) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:722) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:177) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:163) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:441) [org.eclipse.jetty.server:9.3.7.v20160115] at org.sonatype.nexus.common.io.StreamHelper.copy(StreamHelper.java:60) [na:na] at org.sonatype.nexus.servlet.ServletHelper.sendContent(ServletHelper.java:102) [na:na] at org.sonatype.nexus.servlet.ServletHelper$sendContent$0.call(Unknown Source) [na:na] at com.sonatype.nexus.plugins.outreach.internal.OutreachServlet$_doGet_closure1.doCall(OutreachServlet.groovy:90) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_60] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_60] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_60] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_60] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at groovy.lang.Closure.call(Closure.java:442) [na:na] at org.codehaus.groovy.runtime.IOGroovyMethods.withStream(IOGroovyMethods.java:1207) [na:na] at org.codehaus.groovy.runtime.dgm$878.invoke(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) [na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [na:na] at com.sonatype.nexus.plugins.outreach.internal.OutreachServlet.doGet(OutreachServlet.groovy:89) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.2.02] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.2.02] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.2.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.2.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.2.02] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60] Caused by: java.io.IOException: Broken pipe at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [na:1.8.0_60] at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [na:1.8.0_60] at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) [na:1.8.0_60] at sun.nio.ch.IOUtil.write(IOUtil.java:65) [na:1.8.0_60] at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471) [na:1.8.0_60] at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:175) [org.eclipse.jetty.io:9.3.7.v20160115] ... 95 common frames omitted 2016-09-16 15:21:11,595-0300 DEBUG [nexus-httpclient-eviction-thread] *SYSTEM org.apache.http.impl.conn.CPool - Connection [id:2][route:{}->http://sonatype-download.global.ssl.fastly.net:80][state:null] expired @ Fri Sep 16 15:21:06 ADT 2016 2016-09-16 15:21:11,595-0300 DEBUG [nexus-httpclient-eviction-thread] *SYSTEM org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-2: Close connection {noformat} ",1 +"NEXUS-10917","09/20/2016 19:07:28","Repository Combobox Filtering not working","It appears that ExtJS store filtering is not working properly for Repositories Combobox. It will properly filter when including a single Type/Format, but not with multiples, and also not when trying to exclude Type/Format. ",0.5 +"NEXUS-10929","09/21/2016 15:28:23","Unable to upload Python wheel using PyBuilder","I am getting an error when I upload a wheel to Nexus using PyBuilder (http://pybuilder.github.io/). The same project can upload the wheel to pypi-server so I do not believe the problem is with the client. I can successfully install packages using pip and Nexus. The error message in nexus log is: {noformat} 2016-09-19 03:06:58,733-0400 WARN [qtp486497747-339] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure java.lang.RuntimeException: org.apache.commons.fileupload.MultipartStream$MalformedStreamException: Stream ended unexpectedly at com.google.common.base.Throwables.propagate(Throwables.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.HttpPartIteratorAdapter.iterator(HttpPartIteratorAdapter.java:56) [na:na] at org.sonatype.nexus.repository.pypi.internal.HostedHandlers.extractPayloads(HostedHandlers.java:115) [na:na] at org.sonatype.nexus.repository.pypi.internal.HostedHandlers.lambda$2(HostedHandlers.java:96) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:41) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at org.sonatype.nexus.repository.pypi.internal.PyPiRecipeSupport$_closure1.doCall(PyPiRecipeSupport.groovy:90) [na:na] at sun.reflect.GeneratedMethodAccessor678.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_102] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_102] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [na:na] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [na:na] at com.sun.proxy.$Proxy180.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.2.02] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.2.02] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.2.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.2.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.2.02] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_102] Caused by: org.apache.commons.fileupload.MultipartStream$MalformedStreamException: Stream ended unexpectedly at org.apache.commons.fileupload.MultipartStream.readHeaders(MultipartStream.java:540) [na:na] at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.findNextItem(FileUploadBase.java:1038) [na:na] at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.(FileUploadBase.java:1003) [na:na] at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:310) [na:na] at org.apache.commons.fileupload.servlet.ServletFileUpload.getItemIterator(ServletFileUpload.java:154) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.HttpPartIteratorAdapter.iterator(HttpPartIteratorAdapter.java:52) [na:na] ... 103 common frames omitted {noformat}",2 +"NEXUS-10945","09/22/2016 21:04:25","deleting a repository may not remove it as a member from group repository","After deleting a -docker- repository (hosted or proxy) that belongs to a group, requests made through the group continue to try to access the deleted repository as seen in the logs. If a new repository is made with the same name, it is automatically re-added to the group with the old configuration. If a bad configuration is deleted, then recreated with correct configuration, requests still fail. The work around is to remove the repo from the group, then delete it, then recreate it and add it to the group. For example: If npm-host-test repo is member of group npm-group-test If you delete repository npm-host-test, from the UI npm-host-test is no longer a member of npm-group-test, but any requests made to that group generates the following warning: {noformat} 2017-03-31 14:40:37,027+0100 WARN [qtp1259796356-262] admin org.sonatype.nexus.repository.group.GroupFacetImpl - Ignoring missing member repository: npm-host-test 2017-03-31 14:40:37,341+0100 WARN [qtp1259796356-261] admin org.sonatype.nexus.repository.group.GroupFacetImpl - Ignoring missing member repository: npm-host-test 2017-03-31 14:40:38,073+0100 WARN [qtp1259796356-62] admin org.sonatype.nexus.repository.group.GroupFacetImpl - Ignoring missing member repository: npm-host-test{noformat} Additionally the support zip will still show the repository as a member of the npm-group-test.",1 +"NEXUS-10957","09/24/2016 22:30:19","ETag 304 causes 404 response through npm proxy group","I'm running the latest 3.x in Docker as an npm proxy. I have two repos setup. One is just a proxy of https://registry.npmjs.org. The other is a npm group containing the proxy. I found that {{jspm install npm:string_decoder}} was failing with a 404 response while {{npm install string_decoder}} was working. The Nexus request log showed identical requests with one returning 404 and the other 200, so I enabled trace logging and observed that the jspm request was sending an {{If-None-Match: ""3SLQP4XEWUIBONOV855WOPR0B""}} header while the npm request was not. Here is the full request that was logged: {noformat} 2016-09-24 20:31:20,193+0000 DEBUG [qtp2076534592-77] org.eclipse.jetty.server.Server - REQUEST on HttpChannelOverHttp@4cc991b9{r=1,c=false,a=DISPATCHED,uri=//localhost:8081/repository/npm-group/string_decoder} GET //localhost:8081/repository/npm-group/string_decoder If-None-Match: ""3SLQP4XEWUIBONOV855WOPR0B"" Host: localhost:8081 Accept-Encoding: gzip Connection: close {noformat} This seems to be the reason for the difference in the response. Further in the log, I see: {noformat} 2016-09-24 20:40:09,506+0000 DEBUG [qtp2076534592-216] *UNKNOWN org.sonatype.nexus.repository.view.Router - Response: Response{status=Status{successful=true, code=304, message='null'}, payload=null} 2016-09-24 20:40:09,506+0000 TRACE [qtp2076534592-216] *UNKNOWN org.sonatype.nexus.repository.view.Router - Response headers: 2016-09-24 20:40:09,506+0000 TRACE [qtp2076534592-216] *UNKNOWN org.sonatype.nexus.repository.view.Router - ETag: ""3SLQP4XEWUIBONOV855WOPR0B"" 2016-09-24 20:40:09,506+0000 TRACE [qtp2076534592-216] *UNKNOWN org.sonatype.nexus.repository.view.Router - No response attributes 2016-09-24 20:40:09,506+0000 TRACE [qtp2076534592-216] *UNKNOWN org.sonatype.nexus.common.collect.AttributesMap - Set: success=false (java.lang.Boolean) 2016-09-24 20:40:09,507+0000 TRACE [qtp2076534592-216] *UNKNOWN org.sonatype.nexus.common.collect.AttributesMap - Set: error=Not found (java.lang.String) {noformat} I found that if I configured my npm registry to reference the proxy repository url directly, that jspm started to work. It was only with the group repository that the ETag 304 response was being turned into a 404. So it appears that something may be broken with how an npm group repository handles ETag headers. A workaround is to just target the proxy repository directly or temporarily disable proxying through Nexus. (jspm only seems to have this problem for node core modules; other npm requests came through the group just fine, but presumably w/o etags...no clue why it's requesting core modules at all, but it must have some added local metadata for them that it's using to produce the If-None-Match header for its request.)",3 +"NEXUS-10961","09/26/2016 14:04:04","document logging configuration and output files","https://books.sonatype.com/nexus-book/3.0/reference/install.html#directories This section of the book makes no reference to where a user can find the Nexus log files, and what the log files contain. This makes a poor user experience if a user is trying to debug a startup problem in particular, because they do not know where to look for logs or what the different log files could contain. Acceptance: - document log **configuration** file locations that are visible on disk -- what are they used for internally -- when should they be manually edited, if at all -- possibly do not document at all files that should never be edited manually ( see NEXUS-9304 ) - document *log output* files that are actual logs containing output of the application, located in the $data-dir/log directory -- jvm.log -- nexus.log -- karaf.log -- request.log -- archives of nexus and request log Probably out of scope: - document how to customize log rotation settings, including location for output - document console commands like nexus:logger ",1 +"NEXUS-10978","09/28/2016 14:20:29","UnauthenticatedException should not be logged as ERROR","When someone has an old browser session and they are viewing the Nexus UI, and they need to be authenticated again, Nexus can spit ERROR level log messages in the log related to org.apache.shiro.authz.UnauthenticatedException. {noformat} 2016-09-28 14:39:27,809+0200 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - ------------------------------------------------- Started Sonatype Nexus OSS 3.0.2-02 ------------------------------------------------- 2016-09-28 14:40:05,548+0200 INFO [qtp1884520425-161] *UNKNOWN org.apache.shiro.session.mgt.AbstractValidatingSessionManager - Enabling session validation scheduler... 2016-09-28 14:40:05,565+0200 INFO [qtp1884520425-161] *UNKNOWN org.sonatype.nexus.security.internal.AnonymousManagerImpl - Loaded configuration: AnonymousConfiguration{enabled=true, userId='anonymous', realmName='NexusAuthorizingRealm'} 2016-09-28 14:40:20,363+0200 INFO [qtp1884520425-651] *UNKNOWN com.sonatype.nexus.analytics.internal.EventSubmitterImpl - Service URL: https://analytics.sonatype.com 2016-09-28 14:41:42,369+0200 ERROR [qtp1884520425-608] *UNKNOWN org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Repository.coreui_Repository_readStatus, java-method: org.sonatype.nexus.coreui.RepositoryComponent.readStatus org.apache.shiro.authz.UnauthenticatedException: The current Subject is not authenticated. Access denied. at org.apache.shiro.authz.aop.AuthenticatedAnnotationHandler.assertAuthorized(AuthenticatedAnnotationHandler.java:53) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:84) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:67) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_92] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_92] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_92] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_92] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.0.2.02] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.0.2.02] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.0.2.02] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.0.2.02] at com.softwarementors.extjs.djn.router.processor.poll.PollRequestProcessor.process(PollRequestProcessor.java:145) [org.sonatype.nexus.extdirect:3.0.2.02] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$4.processPollRequest(ExtDirectServlet.java:315) [org.sonatype.nexus.extdirect:3.0.2.02] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:621) [org.sonatype.nexus.extdirect:3.0.2.02] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.extdirect:3.0.2.02] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:127) [org.sonatype.nexus.extdirect:3.0.2.02] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doGet(DirectJNgineServlet.java:553) [org.sonatype.nexus.extdirect:3.0.2.02] at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.2.02] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.2.02] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.2.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.2.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.2.02] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_92] Caused by: org.apache.shiro.authz.AuthorizationException: Not authorized to invoke method: public java.util.List org.sonatype.nexus.coreui.RepositoryComponent.readStatus(java.util.Map) at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:90) [na:na] ... 83 common frames omitted {noformat} h4. Expected - permission problems due to unauthenticated access should not be logged at ERROR level. This causes unwarranted concern from log scanners looking for more critical ERROR level server issues. It is completely normal in a server application that sessions sent from a browser can have been expired on the server. This is not an ERROR condition.",1 +"NEXUS-10981","09/28/2016 18:12:04","Pro plugins leaked into OSS version and are shown as missing","Starting a vanilla Nexus OSS shows in the plugin console that several of them are missing. Though, they are likely to be available in the Pro version only. Please see attached screenshot.",0.5 +"NEXUS-10982","09/28/2016 19:23:29","Admin cog appears then disappears...then reappears","Testing the past couple days, I've noticed that after signin the admin cog in the header appears briefly then disappears then reappears. See attached. It's just fast enough that I can't click it at first unless I try really hard/know it's coming. This does not impact NX2 and also seems ok in NX3.0.2 and seems recent regression. It doesn't break anything but could be polished up.",2 +"NEXUS-10987","09/29/2016 09:17:35","NoClassDefFoundError for SSLSocketImpl on non-Oracle JVM prevents proxying https remote","Description The fix for [NEXUS-6838] introduced a hard dependency on sun.security.ssl.SSLSocketImpl. JREs with alternative JSSE implementations like the IBM JRE do not ship this class. This dependency leads to a NoClassDefFoundError on attempts to configure a proxy repository with a HTTPS URL, and thus renders the proxy repository feature unusable for https URLs *on non-Oracle JVMs*. Symptoms # Browsing remote for proxy repositories with https remote does not work # Logfile shows {noformat} SEVERE: Unhandled exception or error intercepted java.lang.NoClassDefFoundError: sun/security/ssl/SSLSocketImpl at org.sonatype.nexus.apachehttpclient.NexusSSLConnectionSocketFactory.connectSocket(NexusSSLConnectionSocketFactory.java:114) at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:123) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:318) at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363) at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195) {noformat} Steps to reproduce: # download and install IBM JRE # start nexus 2.x with IBM JRE # configure a proxy repository with a https remote # navigate to ""browse remote"" and try to browse the content Suggested fix Use the plattform independent way to set the host for SNI as documented by Oracle: https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#SNIExamples Quick fix Remove dependency on Oracle JRE by using reflection to access SSLSocketImpl. The quick fix makes https usable for non-Oracle JREs, but removes SNI support for these JREs. --- --- *The quick was implemented in this issue - SNI still does not work for any JVM other than Oracle JVMs. See NEXUS-6844.* --- ---",2 +"NEXUS-11001","09/30/2016 14:24:04","Get rid of ""connection pending..."" status message","The ""connection pending..."" message makes proxy repositories in Nexus 3 look broken. We've seen this over and over now in support: I think it would be better to change the status to ""OK"" or something similar. I get that we don't really know if it's OK until a connection attempt is made, but this message is too much detail. It just confuses users.",0.5 +"NEXUS-11020","09/30/2016 20:22:06","too much DEBUG logging from com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage","On relatively calm instances, we ask customers to set their ROOT logger level to DEBUG to help diagnose problems they are experiencing. But this turns on too much DEBUG logging at from orient for the simplest requests - for example the status resource the UI pings with. {noformat} 2016-09-30 16:16:22,654-0300 DEBUG [qtp1351833400-1201] admin com.softwarementors.extjs.djn.router.processor.poll.PollRequestProcessor - Request data (POLL)=>analytics=ac0b77a721ddea2e2231fd1b213b4080a09e075e&activeBundles=1235568ebf09038996adaf0e3df8fe253906aaac&license=2478ac32fb6be8aa543da6048819d23f620845b9&anonymousUsername=0164dd50523969de34f4d8d75d6cfb46e269fecd&permissions=dd75922c87ec7f23a98ae58df105fe74a08683b2&migration=ac0b77a721ddea2e2231fd1b213b4080a09e075e&uiSettings=059e1973fddfadb8cf4427d23ea5fe51198a3427&user=c40a2f1a66f7c7cdf4d6bc01fa450e2cd2e65d3f&serverId=7554a008c2908e926b9ad3c6d06b6847af49f079&status=a6200a86216524effb9438eefb8569f340e8a5e4 Event name='rapture_State_get' 2016-09-30 16:16:22,654-0300 DEBUG [qtp1351833400-1201] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Creating instance of action class 'org.sonatype.nexus.rapture.internal.state.StateComponent' mapped to 'rapture_State 2016-09-30 16:16:22,654-0300 DEBUG [qtp1351833400-1201] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Invoking action method: rapture_State.rapture_State_get, java-method: org.sonatype.nexus.rapture.internal.state.StateComponent.getState 2 2016-09-30 16:16:22,655-0300 DEBUG [qtp1351833400-1201] admin org.sonatype.nexus.rapture.internal.security.SecurityComponent - Calculating permissions 2016-09-30 16:16:22,658-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,658-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,658-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,659-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,659-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,659-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,660-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,660-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,661-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,661-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,661-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,661-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,662-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,662-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,662-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,662-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,663-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,663-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,664-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,664-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,664-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,665-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,665-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,665-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,665-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,666-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,666-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,666-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,666-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,667-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,667-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,667-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,667-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,668-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,668-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,668-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,668-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,669-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,669-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,669-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,669-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,670-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,670-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,670-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,670-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,671-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,671-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,671-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,672-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,672-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,672-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,672-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,673-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,673-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,673-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,674-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,674-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,674-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,675-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,675-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,675-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,676-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,676-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,677-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,677-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,678-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,678-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,678-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,679-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,679-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,679-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,679-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,680-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,680-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,680-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,681-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,681-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,681-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,682-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,682-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,682-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,682-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,683-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,683-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,683-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,683-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,684-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,684-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,684-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,685-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,685-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,685-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,686-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,686-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,686-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,686-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,687-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,687-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,687-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,687-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,688-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,688-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,688-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,688-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,689-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,689-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,689-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,689-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,690-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,690-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,690-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,691-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,691-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,691-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,691-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,692-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,692-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,692-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,692-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,693-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,693-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,693-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,694-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,694-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,694-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,694-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,695-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,696-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,696-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,696-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,697-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,697-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,697-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,697-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,698-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,698-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,698-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,698-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,699-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,699-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,699-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,699-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,700-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,700-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,700-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,701-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,701-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,701-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,701-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,702-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,702-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,702-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,702-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,703-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,703-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,703-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,703-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,704-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,704-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,704-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,704-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,705-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,705-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,705-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,705-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,706-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,706-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,706-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,706-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,706-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,707-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,707-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,707-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,707-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,708-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,708-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,708-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,708-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,708-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,709-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,709-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,709-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,710-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,710-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,710-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,711-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,711-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,711-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,711-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,712-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,712-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,712-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,713-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,713-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,713-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,713-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,714-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,714-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,714-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,715-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,715-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,715-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,715-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,716-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,716-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,716-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,717-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,717-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,717-0300 DEBUG [qtp1351833400-1201] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - {db=security} Read record #10:0 v.1 size=63 bytes 2016-09-30 16:16:22,718-0300 DEBUG [qtp1351833400-1201] admin com.softwarementors.extjs.djn.Timer - - Java method dispatch time (StateComponent.rapture_State_get): 63.97 ms. {noformat} Not only is it too verbose, it is relatively useless for human consumption. Expected - the above logging needs to be moved to TRACE in orient *and/or* we need to add an explicit default log level for com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage to level INFO - the above logging is a huge performance suck and if enabled could contribute to system instability if enabled in a busy system. ",1 +"NEXUS-11027","10/02/2016 11:48:16","accessibility problems with checkboxes","I would like to report an accessibility bug. Some things like a field that enables using emails are reported to my screenreader as checkbox. I assume this is not a . The problem is that pressing a space bar on any checkbox toggles it, but screenreader does not see the state change, and checkbox is always seen unchecked. I assume you marked a checkbox with aria state properties, so it is actually needed to change the aria state when a real state changes.",1 +"NEXUS-11139","10/05/2016 20:33:08","ConcurrentModificationException when deleting NPM resource","Some components in an npm repo will persistently throw ConcurrentModificationException on trying to delete them. This seems to affect all versions of a component with a semver-patch range (every 1.1.x version of a component may be affected but 1.2.x will not be). Using nexus 3.0.1-01 inside a docker container loosely based off the official sonatype nexus3 dockerfile. Specifically, https://download.sonatype.com/nexus/3/nexus-3.0.1-01-unix.tar.gz The issue seems to be related to how the component is stored, as once it occurs it will persist across reboots. There seems to be no way to get rid of it once it occurs, although I haven't tried dumping the repo entirely. If the offending package is published to another npm repo on the same server, it usually is not affected, so I doubt it is related to the content of the package. I seem to recall that some of the affected package version ranges used to delete just fine, but I can't be sure of that. The issue happens fairly often to me, about 1 in every 5 semver-patch ranges seem to be affected. My workflow may be causing this: I have redeploy off, but tend to play fast and loose when developing, and will commonly delete a semver-patch version if I discover a bug soon after publishing it. Additionally, I tend to scan through the codebase and remove earlier patch versions that are no longer in use. {code}2016-10-05 18:55:43,378+0000 org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Component.deleteComponent, java-method: org.sonatype.nexus.coreui.ComponentComponent.deleteComponent java.util.ConcurrentModificationException: null at java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:719) [na:1.8.0_102] at java.util.LinkedHashMap$LinkedEntryIterator.next(LinkedHashMap.java:752) [na:1.8.0_102] at java.util.LinkedHashMap$LinkedEntryIterator.next(LinkedHashMap.java:750) [na:1.8.0_102] at com.sonatype.nexus.repository.npm.internal.NpmHostedComponentMaintenanceImpl.deleteTarball(NpmHostedComponentMaintenanceImpl.java:114) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHostedComponentMaintenanceImpl.deleteAssetTx(NpmHostedComponentMaintenanceImpl.java:75) [na:na] at java.lang.Iterable.forEach(Iterable.java:75) [na:1.8.0_102] at com.sonatype.nexus.repository.npm.internal.NpmHostedComponentMaintenanceImpl.deleteComponentTx(NpmHostedComponentMaintenanceImpl.java:49) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:54) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [na:na] at org.sonatype.nexus.repository.storage.DefaultComponentMaintenanceImpl.deleteComponent(DefaultComponentMaintenanceImpl.java:47) [na:na] at org.sonatype.nexus.repository.storage.ComponentMaintenance$deleteComponent.call(Unknown Source) [na:na] at org.sonatype.nexus.coreui.ComponentComponent$_deleteComponent_closure1.doCall(ComponentComponent.groovy:305) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_102] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_102] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_102] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_102] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:42) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) [na:na] at org.sonatype.nexus.coreui.ComponentComponent.deleteEntity(ComponentComponent.groovy:324) [na:na] at org.sonatype.nexus.coreui.ComponentComponent$deleteEntity.callCurrent(Unknown Source) [na:na] at org.sonatype.nexus.coreui.ComponentComponent.deleteComponent(ComponentComponent.groovy:304) [na:na] at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.GeneratedMethodAccessor475.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_102] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_102] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.0.1.01] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.0.1.01] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.0.1.01] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.0.1.01] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.0.1.01] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.0.1.01] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.extdirect:3.0.1.01] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.extdirect:3.0.1.01] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.extdirect:3.0.1.01] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.extdirect:3.0.1.01] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.extdirect:3.0.1.01] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:127) [org.sonatype.nexus.extdirect:3.0.1.01] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.1.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.1.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.1.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.1.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.1.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_102]{code}",2 +"NEXUS-11140","10/06/2016 14:44:52","Elasticsearch (JDK) overflow on disks larger than 2^63 (Amazon EFS)","I'm using Nexus OSS 3.0.2-02 in a docker container and the /nexus-data directory is and NFS mount (Amazon EFS). This version of Nexus uses Elasticsearch 2.2 which has a bug with handling large filesystems. Check references below: https://discuss.elastic.co/t/elasticsearch-with-amazon-elastic-file-system/55867/5 https://github.com/elastic/elasticsearch/pull/20527 https://bugs.openjdk.java.net/browse/JDK-8162520 https://www.elastic.co/guide/en/elasticsearch/reference/2.4/release-notes-2.4.1.html Any chance you can update nexus bundles org.apache.servicemix.bundles.elasticsearch and org.sonatype.nexus.elasticsearch to use elasticsearch 2.4.1 ?",2 +"NEXUS-11141","10/06/2016 15:45:11","support for nuget repository ""package-versions"" endpoint","Please support the nuget API endpoint ""package-versions"" (e.g.: [https://www.nuget.org/api/v2/package-versions/NUnit?includePrerelease=true]) for faster version check.",1 +"NEXUS-11148","10/06/2016 17:32:38","Ldap Button ""View Certificate"" does not appear on Firefox","When creating a LDAP connection, there is a display bug preventing the ""View Certificate"" button to appear, thus preventing to store the certificate. That makes it impossible to create a LDAPS connection using firefox. The button appears correctly on Chrome. The bug appears on the latest version of Firefox.",1 +"NEXUS-11172","10/11/2016 19:02:25","Update license/eula shown in About dialog","*Background* When we created a single OSS/Pro binary, we inadvertently dropped all language associated with Nexus Repository OSS being a free product to use. This has caused user confusion and consternation. *Acceptance* * The about box should shows either the OSS or Pro license, depending on whether there is a license installed. ** ""PRO OSS"" licensed instances should show the Pro license. * The OSS license should make it clear that Nexus Repo OSS is licensed under the EPL. * The 'license installation' dialog should show the Pro license.",3 +"NEXUS-11174","10/11/2016 23:30:31","Upgraded (maven?) components do not show in format specific search","An EA user noticed that, post-Upgrade he could keyword search for a component and it would show up but if he searched format specific (maven) that it would not. I was able to duplicate this by performing the below steps: 1) In your NX2 add a maven artifact like http://localhost:8082/nexus/content/repositories/central/org/stagemonitor/stagemonitor-core/0.19.0/stagemonitor-core-0.19.0.pom 2) Setup and Upgrade NX2 to NX3 3) In your NX3 UI, go to search and expand the list and select Maven specific. 4) Enter artifact ID matching your artifact above (in our case ""stagemonitor-core""). BUG: No components found message back. I also see the same issue with Group ID. The components do show on the list unfiltered, so this seems to be a filtering issue. After doing this, I added another version to NX3 and this I *was* able to see in format specific search (but still not the original) so this seems to be a problem with Upgrade. {quote} http://localhost:8081/repository/maven-central/org/stagemonitor/stagemonitor-core/0.25.0/stagemonitor-core-0.25.0.pom {quote} I also checked with a component with no dash in it in case it was a problem with the dash (like NEXUS-9493) but didn't seem to matter. Upgrade is new to 3.1 so no older backchecking is needed.",1 +"NEXUS-11179","10/12/2016 22:32:21","Error on login from anonymous from a browse details level","I noticed an error firing when I was browsing the details of a component (or asset) and logged in. See attached. Subsequently, login does not give the admin cog. You have to refresh the browser to see it. This also causes the browse details to show. Here's the detail from my console: {code} Uncaught TypeError: Cannot read property 'findPlugin' of undefinedon VM50 nexus-coreui-plugin-prod.js?_v=3.1.0-SNAPSHOT&_dc=1476305901642:1 RepositorySelection @ VM50 nexus-coreui-plugin-prod.js?_v=3.1.0-SNAPSHOT&_dc=1476305901642:1 (anonymous function) @ VM50 nexus-coreui-plugin-prod.js?_v=3.1.0-SNAPSHOT&_dc=1476305901642:1 callback @ VM34 baseapp-prod.js?_v=3.1.0-SNAPSHOT&_dc=1476305901642:1 onProxyLoad @ VM34 baseapp-prod.js?_v=3.1.0-SNAPSHOT&_dc=1476305901642:1 processResponse @ VM34 baseapp-prod.js?_v=3.1.0-SNAPSHOT&_dc=1476305901642:1 (anonymous function) @ VM34 baseapp-prod.js?_v=3.1.0-SNAPSHOT&_dc=1476305901642:1 (anonymous function) @ VM34 baseapp-prod.js?_v=3.1.0-SNAPSHOT&_dc=1476305901642:1 runCallback @ VM34 baseapp-prod.js?_v=3.1.0-SNAPSHOT&_dc=1476305901642:1 onData @ VM34 baseapp-prod.js?_v=3.1.0-SNAPSHOT&_dc=1476305901642:1 callback @ VM34 baseapp-prod.js?_v=3.1.0-SNAPSHOT&_dc=1476305901642:1 onComplete @ VM34 baseapp-prod.js?_v=3.1.0-SNAPSHOT&_dc=1476305901642:1 onStateChange @ VM34 baseapp-prod.js?_v=3.1.0-SNAPSHOT&_dc=1476305901642:1 (anonymous function) @ VM34 baseapp-prod.js?_v=3.1.0-SNAPSHOT&_dc=1476305901642:1 {code} I did not check older NX3 or NX2 at this time.",1 +"NEXUS-11190","10/14/2016 18:30:29","java.nio.file.NoSuchFileException for inaccessible mounts prevents support zip generation","It's not clear to me exactly what caused this, but this exception prevented a support zip from being generated on this ticket:  We should catch this exception, log it, and keep going with the system information retrieval. {noformat} 2016-10-14 13:10:40,974+0200 ERROR [qtp612816330-7765] admin org.sonatype.nexus.internal.atlas.SupportZipGeneratorImpl - Failed to create support ZIP java.nio.file.NoSuchFileException: /nmvp_simu_data at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86) [na:1.8.0_45] at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) [na:1.8.0_45] at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) [na:1.8.0_45] at sun.nio.fs.UnixFileStore.readAttributes(UnixFileStore.java:111) [na:1.8.0_45] at sun.nio.fs.UnixFileStore.getTotalSpace(UnixFileStore.java:118) [na:1.8.0_45] at sun.reflect.GeneratedMethodAccessor1120.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_45] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_45] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.MethodMetaProperty$GetBeanMethodMetaProperty.getProperty(MethodMetaProperty.java:76) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite.getProperty(GetEffectivePojoPropertySite.java:64) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:296) [groovy-all:2.4.4] at org.sonatype.nexus.internal.atlas.SystemInformationGeneratorImpl$_report_closure4$_closure12.doCall(SystemInformationGeneratorImpl.groovy:126) [na:na] at sun.reflect.GeneratedMethodAccessor1117.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_45] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_45] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:442) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2030) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2015) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.dgm$158.invoke(Unknown Source) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [groovy-all:2.4.4] at org.sonatype.nexus.internal.atlas.SystemInformationGeneratorImpl$_report_closure4.doCall(SystemInformationGeneratorImpl.groovy:123) [na:na] at org.sonatype.nexus.internal.atlas.SystemInformationGeneratorImpl$_report_closure4.doCall(SystemInformationGeneratorImpl.groovy) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_45] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_45] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_45] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_45] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:42) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117) [groovy-all:2.4.4] at org.sonatype.nexus.internal.atlas.SystemInformationGeneratorImpl.report(SystemInformationGeneratorImpl.groovy:238) [na:na] at org.sonatype.nexus.common.atlas.SystemInformationGenerator$report.call(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117) [groovy-all:2.4.4] at org.sonatype.nexus.internal.atlas.customizers.SystemInformationCustomizer$1.generate(SystemInformationCustomizer.groovy:54) [na:na] at org.sonatype.nexus.supportzip.GeneratedContentSourceSupport.prepare(GeneratedContentSourceSupport.java:51) [org.sonatype.nexus.supportzip-api:3.0.2.02] at org.sonatype.nexus.supportzip.SupportBundle$ContentSource$prepare.call(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [groovy-all:2.4.4] at org.sonatype.nexus.supportzip.SupportBundle$ContentSource$prepare$0.call(Unknown Source) [na:na] at org.sonatype.nexus.internal.atlas.SupportZipGeneratorImpl$_generate_closure3.doCall(SupportZipGeneratorImpl.groovy:153) [na:na] at sun.reflect.GeneratedMethodAccessor1181.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_45] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_45] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4] at groovy.lang.Closure.call(Closure.java:442) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2030) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2015) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2056) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.dgm$162.invoke(Unknown Source) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [groovy-all:2.4.4] at org.sonatype.nexus.internal.atlas.SupportZipGeneratorImpl.generate(SupportZipGeneratorImpl.groovy:151) [na:na] at org.sonatype.nexus.supportzip.SupportZipGenerator$generate.call(Unknown Source) [!/:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [groovy-all:2.4.4] at org.sonatype.nexus.coreui.atlas.SupportZipComponent.create(SupportZipComponent.groovy:53) [org.sonatype.nexus.plugins.nexus-coreui-plugin:3.0.2.02] at org.sonatype.nexus.coreui.atlas.SupportZipComponent$$EnhancerByGuice$$775cdce1.CGLIB$create$8() [!/:na] at org.sonatype.nexus.coreui.atlas.SupportZipComponent$$EnhancerByGuice$$775cdce1$$FastClassByGuice$$80259b24.invoke() [!/:na] at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [org.hibernate.validator:5.1.2.Final] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [org.apache.shiro.guice:1.2.4] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [org.apache.shiro.core:1.2.4] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [org.apache.shiro.guice:1.2.4] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [org.apache.shiro.guice:1.2.4] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [org.apache.shiro.core:1.2.4] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [org.apache.shiro.guice:1.2.4] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:75) [com.google.inject:4.0.0] at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) [com.google.inject:4.0.0] at org.sonatype.nexus.coreui.atlas.SupportZipComponent$$EnhancerByGuice$$775cdce1.create() [!/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_45] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_45] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_45] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_45] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.0.2.02] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.0.2.02] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.0.2.02] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.0.2.02] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.0.2.02] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.0.2.02] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.extdirect:3.0.2.02] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.extdirect:3.0.2.02] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.extdirect:3.0.2.02] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.extdirect:3.0.2.02] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.extdirect:3.0.2.02] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:127) [org.sonatype.nexus.extdirect:3.0.2.02] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.2.02] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.2.02] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.2.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.2.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.2.02] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45] {noformat} Minimally we should catch this exception and allow the support zip generation to proceed, which appears to happen if a drive can't be queried for remaining size (dead mapped drive perhaps?).",1 +"NEXUS-11191","10/14/2016 19:56:24","Docker group with registry.access.redhat.com proxy as member does not work","Following set up - 1 proxy repo of DockerHub - 1 proxy repo of https://registry.access.redhat.com/ to get access to OpenShift and other certified images - 1 hosted repo for internal stuff All of those repos work. The repos are using a HTTP connector behind a F5 reverse proxy that terminates HTTPS. But all this is working so should not matter. Now when I create a group and add the hosted repo and the DockerHub proxy - everything still works. However as soon as I add the RedHat repo the group repo seems to not work anymore. I can no longer search or pull anything. The order of the repos does not seem to matter. But we desired order would be internal, redhat, dockerhub. NXRM is running on RedHat with Oracle Java 8. Docker client version used was 1.12",3 +"NEXUS-11215","10/19/2016 11:46:52","valid .woff files fail Strict Content Type Validation with 400 response","My Maven Plugin configuration is {code:java} org.apache.maven.plugins maven-site-plugin 3.5.1 org.apache.maven.doxia doxia-core 1.7 org.apache.maven.doxia doxia-module-markdown 1.6 {code} When i execute the command {code:java} mvn site site:deploy {code} I'm getting the below error in the Maven build: {code:java} ###########https://nexus.dev.two-clicks.de/repository/sites/de.wkss/deployment-maven-plugin/1.0-SNAPSHOT/./fonts/glyphicons-halflings-regular.woff - Status code: 400 Transfer error: org.apache.maven.wagon.TransferFailedException: Failed to transfer file: https://nexus.dev.two-clicks.de/repository/sites/de.wkss/deployment-maven-plugin/1.0-SNAPSHOT/./fonts/glyphicons-halflings-regular.woff. Return code is: 400 https://nexus.dev.two-clicks.de/repository/sites/de.wkss/deployment-maven-plugin/1.0-SNAPSHOT/ - Session: Disconnecting https://nexus.dev.two-clicks.de/repository/sites/de.wkss/deployment-maven-plugin/1.0-SNAPSHOT/ - Session: Disconnected {code} Nexus error log: {code:java} Invalid content: PUT /de.wkss/deployment-maven-plugin/1.0-SNAPSHOT/images/apache-maven-project-2.png: org.sonatype.nexus.repository.InvalidContentException: Detected content type [image/jpeg], but expected [image/png]: de.wkss/deployment-maven-plugin/1.0-SNAPSHOT/images/apache-maven-project-2.png Invalid content: PUT /de.wkss/deployment-maven-plugin/1.0-SNAPSHOT/fonts/glyphicons-halflings-regular.woff: org.sonatype.nexus.repository.InvalidContentException: Content type could not be determined: de.wkss/deployment-maven-plugin/1.0-SNAPSHOT/fonts/glyphicons-halflings-regular.woff {code} ",2 +"NEXUS-11219","10/19/2016 17:17:53","Drop Inactive Staging Repositories task aborts if a repository is not found","If a staging repository cleanup task encounters a staging repository that is no longer on it's clean up list it aborts running completely. {noformat} 2016-10-17 18:00:18 INFO [pxpool-1-thread-1] *TASK com.sonatype.nexus.staging.internal.task.DropInactiveRepositoriesTask - STARTED Drop staging repositories 2016-10-17 18:00:18 INFO [pxpool-1-thread-1] *TASK com.sonatype.nexus.staging.internal.task.DropInactiveRepositoriesTask - Inactive repositories selected to drop: [build-36007, ..., build-36646] 2016-10-17 18:00:18 INFO [pxpool-1-thread-1] *TASK com.sonatype.nexus.staging.internal.DefaultStagingManager - Dropping staging repositories [build-36007, ..., build-36646] 2016-10-17 18:00:18 WARN [pxpool-1-thread-1] *TASK com.sonatype.nexus.staging.internal.DefaultStagingManager - Abort background; task preparations failed org.sonatype.nexus.proxy.NoSuchRepositoryException: Repository with ID=""build-36202"" not found at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getRepository(DefaultRepositoryRegistry.java:124) at com.sonatype.nexus.staging.internal.task.RepositoryDropTask$DropItem.(RepositoryDropTask.java:79) ~[nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.task.RepositoryDropTask$DropItem.(RepositoryDropTask.java:76) ~[nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.task.RepositoryDropTask.createItem(RepositoryDropTask.java:85) ~[nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.task.OperationTaskSupport$1.doApply(OperationTaskSupport.java:126) ~[nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.task.OperationTaskSupport$1.doApply(OperationTaskSupport.java:1) ~[nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.persist.ConfigurationFunctionSupport.apply(ConfigurationFunctionSupport.java:48) ~[nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.persist.DefaultStagingConfiguration.browsex(DefaultStagingConfiguration.java:616) ~[nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.task.OperationTaskSupport.resolveItem(OperationTaskSupport.java:113) ~[nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.task.OperationTaskSupport$OperationSupport.(OperationTaskSupport.java:164) ~[nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.task.RepositoryDropTask$DropOperation.(RepositoryDropTask.java:95) ~[nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.task.RepositoryDropTask.createOperation(RepositoryDropTask.java:264) ~[nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.task.RepositoryDropTask.createOperation(RepositoryDropTask.java:1) ~[nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.task.OperationTaskSupport.discoverOperations(OperationTaskSupport.java:401) ~[nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.task.OperationTaskSupport.prepare(OperationTaskSupport.java:386) ~[nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.DefaultStagingManager.prepareBackgroundTask(DefaultStagingManager.java:193) [nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.DefaultStagingManager.dropStagingRepositories(DefaultStagingManager.java:376) [nexus-staging-plugin-2.12.0-01/:na] at com.sonatype.nexus.staging.internal.task.DropInactiveRepositoriesTask.execute(DropInactiveRepositoriesTask.java:146) [nexus-staging-plugin-2.12.0-01/:na] {noformat} It shouldn't do this. Having this task complete is critical to end users who have large numbers of staging repositories, when the task doesn't run it can cause the entire instance to become unstable. ",2 +"NEXUS-11253","10/24/2016 16:19:49","repodata not updated in repository group after last staging repository is dropped or released","I found out that Nexus Professional does not update Yum metadata after last staging repository present in repository group is dropped or released. Could you please report that to the development team? Reproduction scenario on Nexus Professional 2.12.1-01: 1. Configure release repository for RPM packages (packages-el6 in our configuration) and a repository group grouping corresponding staging repositories (staged-packages-el6). 2. Configure a staging profile (packages-el6, id: 33ede191a55) that adds staged artifacts to the repository group and releases them to the release repository. 3. Configure Yum: Merge Metadata and Yum: Staging Generate Metadata capabilities for the repository group and staging profile. 4. Create and close two staging repositories containing some artifacts (packages-el6-1003 contained ns-repositories-4.1.0-1.el6; packages-el6-1004 contained ns-repositories-4.1.2-1.el6 and ns-repositories-4.1.3-1.el6). 5. Request repodata/repomd.xml from the repository group - this will merge metadata from the two staging repositories. The metadata should contain artifacts from both staging repositories. 6. Release the first staging repository (packages-el6-1003) and again request repodata/repomd.xml. The updated metadata should contain only artifacts from the remaining staging repository. 7. Release the second staging repository (packages-el6-1004) and request repodata/repomd.xml once more, so Nexus updates the metadata. Although the repository group is now empty, the yum metadata still contains artifacts from the last released staging repository. ",2 +"NEXUS-11283","10/27/2016 16:32:14","Blobstore counts inaccurate","To replicate: # Start Nexus 3, look at the blob store stats # Migrate content from 2x, in a single repository (hard-linking) # 832 changes are brought across # Blob store stats show 2080 blobs (exactly 2.5x 832) # In Nexus 3, delete the repository that was migrated # Blob store stats now show 832 blobs (which is weird) # Run the 'compact blobstore' scheduled task # Blob store stats now show 832 blobs (still weird) => They _should_ be zero.",2 +"NEXUS-11290","10/28/2016 18:41:43","provide option to suppress merging metadata for the same npm package in different group members","*Background* Consider a hypothetical npm package 'bezor' version 1.0.0 (with no namespace), which lives in an npm hosted repo in Nexus. Various client npm projects use this package, and the dependency version is ""~1.0.0"" which signifies that the latest minor point release is acceptable. The hosted repo is the first member of a group, which also contains a proxy for npmjs.org. One day, 'bezor' 1.0.5 shows up on npmjs.org, no relation to the hosted package. Suddenly, builds start failing as the unrelated package is pulled down. This is an inevitable consequence of a lack of namespacing with tilde-style dependency versioning, and it's also a blocker for a client adopting NX3 from a home-rolled npm repo. *Acceptance* * Administrators can set a system property that prevents npm groups from merging package metadata on a request-by-request basis. * This only applies to the default namespace. Namespaced components continue to have their metadata merged, regardless of the system property's value. If this property is set for the example, above, when a client requests metadata for package 'bezor' the client will only be shown metadata from the hosted repo. This contains 'bezor' 1.0.0 and nothing else. *Notes* This change won't affect the 'all' endpoint. Clients who request 'all' will still be able to see the multi-member merged metadata for a given package. We believe the exposure to this is minimal since the client doesn't use this to resolve dependencies.",2 +"NEXUS-11300","10/31/2016 22:51:56","Unable to connect to private repository on dockerhub","Steps to reproduce: * Set up a private repository on docker hub and add an image to it. * Proxy Dockerhub, and add HTTP User authentication. * Attempt to pull the image from your private repository, it fails: {noformat} ericdcobb@Erics-MacBook-Pro ~/d/s/nexus-internal (master) [1]> docker pull 192.168.1.46:18078/ericdcobb/test:myapp Pulling repository 192.168.1.46:18078/ericdcobb/test Error: image ericdcobb/test:myapp not found {noformat} If I add a basic auth header to the retrieve bearer token http request here: https://github.com/sonatype/nexus-internal/blob/master/private/plugins/nexus-repository-docker/src/main/java/org/sonatype/nexus/repository/docker/internal/DockerProxyFacetImpl.java#L420 then the request succeeds.",3 +"NEXUS-11301","11/01/2016 15:23:20","upgrade to Nexus 3 fails if Nexus 2 has no anonymous user defined","If there is no ""anonymous"" user in Nexus 2.x (that is, the user has been deleted and anonymous access is disabled) upgrade fails. Nexus 3.1.0 log: {noformat} 2016-11-01 15:29:43,486+0100 WARN [plan-executor-5-thread-2] admin com.sonatype.nexus.migration.config.ConfigurationStep - Upgrade configuration: security.anonymous failed javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.handleErrorStatus(ClientInvocation.java:209) [org.sonatype.nexus.siesta:3.1.0.04] at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:174) [org.sonatype.nexus.siesta:3.1.0.04] at org.jboss.resteasy.client.jaxrs.internal.proxy.extractors.BodyEntityExtractor.extractEntity(BodyEntityExtractor.java:59) [org.sonatype.nexus.siesta:3.1.0.04] at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:104) [org.sonatype.nexus.siesta:3.1.0.04] at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:64) [org.sonatype.nexus.siesta:3.1.0.04] at com.sonatype.nexus.migration.config.$Proxy190.get(Unknown Source) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.1.0.04] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_111] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_111] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_111] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_111] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:233) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [groovy-all:2.4.4] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) [groovy-all:2.4.4] at com.sonatype.nexus.migration.config.ConfigurationIngesterSupport.get(ConfigurationIngesterSupport.groovy:76) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.1.0.04] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_111] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_111] {noformat} Nexus 2.x log: {noformat} 2016-11-01 15:29:43 WARN [qtp782082420-94] - org.sonatype.sisu.siesta.server.internal.mappers.ThrowableExceptionMapper - org.sonatype.security.usermanagement.UserNotFoundException: User: 'anonymous' could not be found. at org.sonatype.security.DefaultSecuritySystem.getUser(DefaultSecuritySystem.java:447) ~[nexus-security-2.14.1-01.jar:2.14.1-01] at org.sonatype.security.SecuritySystem$getUser.call(Unknown Source) ~[na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) ~[na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) ~[na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) ~[na:na] at com.sonatype.nexus.migrationagent.config.SecurityAnonymousExtractor.getConfiguration(SecurityAnonymousExtractor.groovy:53) ~[na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_111] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_111] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_111] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_111] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) ~[na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) ~[na:na] at org.codehaus.groovy.runtime.metaclass.MethodMetaProperty$GetBeanMethodMetaProperty.getProperty(MethodMetaProperty.java:76) ~[na:na] at org.codehaus.groovy.runtime.callsite.GetEffectivePogoPropertySite.getProperty(GetEffectivePogoPropertySite.java:85) ~[na:na] at org.codehaus.groovy.runtime.callsite.GetEffectivePogoPropertySite.callGetProperty(GetEffectivePogoPropertySite.java:45) ~[na:na] at com.sonatype.nexus.migrationagent.rest.ConfigurationResource.get(ConfigurationResource.groovy:55) ~[na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_111] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_111] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_111] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_111] at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) ~[nexus-siesta-plugin-2.14.1-01/:na] at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ObjectOutInvoker._dispatch(AbstractResourceMetho {noformat} ",1 +"NEXUS-11435","11/01/2016 18:47:29","Ability to clean up old docker images/layers from hosted repository","There is currently no way to clean up old docker images from a hosted repository. Docker images can be very large, and are often deployed in environments where access to older versions of an image is not necessary. There should be a scheduled task to clean up old hosted docker images, and to also clean up layers which are no longer used by any hosted images. *Acceptance Criteria* * A user will be able to purge Docker images older than X days from a Docker hosted repository ** Since Docker images share layers we can't remove all of the layers attached to the image, we have to remove them after we know they aren't used anymore ** As a part of removing the old images, we should clean up all orphaned layers NOTE: * More info on how Docker is handling deletes: [https://github.com/docker/distribution/blob/master/ROADMAP.md#deletes]",5 +"NEXUS-11518","11/04/2016 14:19:57","ProxyServiceException stack trace logged at WARN when remote responds with HTTP/1.1 401","When the remote proxy repository responds with 401, a stack trace at WARN is on the logs. {noformat} 2016-11-04 06:31:48,814-0700 WARN [qtp1250484473-16157] admin org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyFacet - Failed to fetch: com/ibm/analytics/entity/entity-model-content/1.0.15-SNAPSHOT/maven-metadata.xml org.sonatype.nexus.repository.proxy.ProxyServiceException: HTTP/1.1 401 Unauthorized at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.mayThrowProxyServiceException(ProxyFacetSupport.java:280) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:254) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:210) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyFacet.fetch(MavenProxyFacet.java:75) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:166) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:49) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:41) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.group.GroupHandler.getAll(GroupHandler.java:147) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.maven.internal.group.MergingGroupHandler.doGet(MergingGroupHandler.java:70) [org.sonatype.nexus.plugins.nexus-repository-maven:3.0.2.02] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:41) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.2.02] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.2.02] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.2.02] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.2.02] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.2.02] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.2.02] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.2.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.2.02] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.2.02] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:197) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_92] {noformat} This is not desireable. One does not need a full stack trace at WARN level for a 401 response from the remote. Expected Log a message at WARN level if the outbound request failed because the expected response code did not match the received response code, with a simple message showing expected code and received HTTP status line. If the same Logger is at DEBUG levels, print the same message using the WARN logger, but also include the full stack trace. ",0.5 +"NEXUS-11615","11/11/2016 14:27:09","Clicking on first (unlabeled) column in component browser gives an illegal argument exception","If you click on the very first (unlabeled) column of the component browser you'll get an illegal argument exception. The component browser is unusable after doing this until you sort by another column. {noformat} 2016-11-11 15:19:58,220+0100 ERROR [qtp1389586213-3438] chuck org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Component.read, java-method: org.sonatype.nexus.coreui.ComponentComponent.read java.lang.IllegalArgumentException: null at com.google.common.base.Preconditions.checkArgument(Preconditions.java:108) [com.google.guava:18.0.0] at org.sonatype.nexus.repository.browse.internal.QueryOptions.(QueryOptions.java:55) [na:na] at org.sonatype.nexus.repository.browse.internal.BrowseServiceImpl.browseComponents(BrowseServiceImpl.java:95) [na:na] at org.sonatype.nexus.repository.browse.BrowseService$browseComponents.call(Unknown Source) [na:na] at org.sonatype.nexus.coreui.ComponentComponent.read(ComponentComponent.groovy:126) [na:na] at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49) [na:na] at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47) [na:na] at sun.reflect.GeneratedMethodAccessor703.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_102] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_102] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.1.0.04] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype {noformat}",2 +"NEXUS-11616","11/11/2016 16:12:53","Upgrade does not rescan repositories on back and next","I just noticed if I am Upgrading repositories and click Back to return to ""Repository Defaults"", delete a repository and then click Next again, that repository is still on the list. Similarly, while testing NEXUS-11530, I made a capability change that should impact the ability to Upgrade the repo but it still said un-Upgradable. For the first case, if you click Next, it fails the Preview (with a 404). In either case you can workaround by restarting Upgrade, however, this workaround will likely be unclear to anyone doing this. Tested with Jelly SNAPSHOT and did not test older NX3 at this time, however, I have no reason to believe this works differently in 3.1.",3 +"NEXUS-11632","11/15/2016 14:14:09","Content selector preview not handling leading slash properly","Suppose i have some content in a docker repository (this most likely applies to other formats, this just happens to be the format i was using), and I want to restrict access to that content, I need to create content selectors that match against paths of ""/v2/blah"". These paths are now secured as i expect. Problem is, when trying to test these queries using the content selector preview, I am forced to omit the leading slash to get any results. We should be able to use the same path matching in both cases",1 +"NEXUS-11634","11/15/2016 14:50:22","Search and Browse not handling leading slash properly for content selectors","Very similar to NEXUS-11632 i have content selectors setup against {code}path =^ ""/v2/library/busybox/""{code} Which works great for content retrieval. In order for search/browse to work, I need to also include a {code}path =^ ""v2/library/busybox/""{code} (note the lack of leading slash) content selector",1 +"NEXUS-11639","11/16/2016 16:02:38","legacy url mapping instructions are too confusing and not near enough to upgrade documentation","The [Nexus Book chapter on legacy URLs|http://books.sonatype.com/nexus-book/3.1/reference/install.html#config-legacy-url] is a little confusing, I'm not sure I could understand it if I didn't already know what it meant. I think we just need to say: # Nexus 3 URLs are different than Nexus 2 URLs, here's an example of each # If you want Nexus 3 URL to match what you were using in Nexus 2, then you need to do a few things: #* Ensure the hostname, port, and context root are the same (how to do each of those is documented elsewhere) #* Set this system property so that the repository URLs match Nexus 2. # Please note, there's no repository directory browsing in Nexus 3. --- From NEXUS-11542 (merged into 1 effort): Based on [this ticket|https://sonatype.zendesk.com/agent/tickets/16116]: User could not locate how to enable legacy URL mapping. While it is documented in the book - it is not in the context of the upgrade docs. The whole legacy URL enablement section here: https://books.sonatype.com/nexus-book/reference3/install.html#config-legacy-url Should directly be in the After Upgrade section of the book here: https://books.sonatype.com/nexus-book/reference3/upgrading.html#_after_the_upgrade Configuring the legacy url is only relevant for 2.x to 3.x upgrades - putting it in the generic section of the book does not make sense. I realize there is a link out to it, but again, it is only relevant to upgrades, and should not be in the ""Configuring the Runtime Environment"" section of the book.",1 +"NEXUS-11647","11/17/2016 15:02:56","Log spam... HEAD requests for docker blobs that return 404 logged with warning","Nexus 3.1.0 logs HEAD requests which are not found with WARN level, and ""Error"" in the message: {quote} 2016-11-16 21:26:55,574+0000 WARN \[qtp1729674283-259] someuser org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: HEAD /v2/1114/sample-project/blobs/sha256:aa02b7a32ac3cc52451474c7b78f6aea3d2c20c92aff40dcc0c5244aea5ff3ad: 404 - org.sonatype.nexus.repository.docker.internal.V2Exception$BlobNotFound: blob unknown to registry {quote} It should not do this, this is not indicative of a problem. For example, Docker will do a HEAD request before it does a put to see if a layer already exists: {quote} 22.115.159.20 - someuser \[16/Nov/2016:21:26:55 +0000] ""HEAD /repository/1114/v2/1114/sample-project/blobs/sha256:aa02b7a32ac3cc52451474c7b78f6aea3d2c20c92aff40dcc0c5244aea5ff3ad HTTP/1.1"" 404 0 19 22.115.159.20 - someuser \[16/Nov/2016:21:26:56 +0000] ""PUT /repository/1114/v2/1114/sample-project/blobs/uploads/0552bc82-77c6-4ee8-aa61-5c465968d4bf?digest=sha256%3Aaa02b7a32ac3cc52451474c7b78f6aea3d2c20c92aff40dcc0c5244aea5ff3ad HTTP/1.1"" 201 0 229 22.115.159.20 - someuser \[16/Nov/2016:21:26:56 +0000] ""HEAD /repository/1114/v2/1114/sample-project/blobs/sha256:aa02b7a32ac3cc52451474c7b78f6aea3d2c20c92aff40dcc0c5244aea5ff3ad HTTP/1.1"" 200 0 5 {quote} We should log this at DEBUG, and remove ""Error"" from the message. ",1 +"NEXUS-11664","11/21/2016 15:48:28","HA - add nodeId to analytics events","The current analytics event data definition (which I believe is shared with some analytics tools hosted by OPS) doesn't include the nodeId where the UI event occurred. This story will look at adding nodeId to analytics events. Whoever works on this task should check with OPS to find out whether adding this new field will cause any issues with their downstream analytics tools. Open questions: * should we also look at versioning the analytics data definition? * does the local sequence counter provide much value in HA? * existing records should leave the nodeId unspecified",2 +"NEXUS-11670","11/21/2016 23:22:18","show ldap server name instead of id in Audit context column","While writing the audit documentation, I noticed that on the initial row in context, LDAP adjustments show ID not name. ID isn't shown anywhere else in the UI, so this seems unhelpful for correlation. You can see the name in the expanded row information so marking minor. I didn't check older versions of NX3 however very little work has been done on this so I strongly suspect it's the same since implementation. NX2 doesn't have audit but has system feeds instead. I did not cross check against that either. See attached, let me know if unclear.",0.5 +"NEXUS-11698","11/23/2016 18:03:06","browsing hosted docker repo may trigger UnrecognizedPropertyException Unrecognized field","When browsing to attributes of the assets of a component in our hosted docker repo we get large stack traces like this as log spam. The UI and everything seems to work fine but there is a LOT of this filling up the log. ********************* * Testing exception * ********************* 2016-11-23 18:00:09,578+0000 WARN [qtp1616493320-1434] t841815 org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field ""should_filter"" (class org.sonatype.nexus.repository.docker.internal.V1SearchResult), not marked as ignorable (7 known properties: ""is_official"", ""star_count"", ""metaClass"", ""name"", ""description"", ""is_trusted"", ""is_automated""]) at [Source: org.apache.http.conn.EofSensorInputStream@67527483; line: 1, column: 262] (through reference chain: org.sonatype.nexus.repository.docker.internal.V1SearchResults[""results""]->java.util.ArrayList[0]->org.sonatype.nexus.repository.docker.internal.V1SearchResult[""should_filter""]) at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:62) [na:na] at com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:855) [na:na] at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1083) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1389) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1367) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:266) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125) [na:na] at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:277) [na:na] at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:249) [na:na] at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:26) [na:na] at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:490) [na:na] at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:95) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:260) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125) [na:na] at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3788) [na:na] at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2849) [na:na] at com.fasterxml.jackson.databind.ObjectMapper$readValue$5.call(Unknown Source) [na:na] at org.sonatype.nexus.repository.docker.internal.V1GroupSearchHandler$_doGet_closure2.doCall(V1GroupSearchHandler.groovy:73) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_101] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_101] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_101] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_101] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:5226) [na:na] at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3446) [na:na] at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3463) [na:na] at org.codehaus.groovy.runtime.dgm$67.invoke(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) [na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [na:na] at org.sonatype.nexus.repository.docker.internal.V1GroupSearchHandler.doGet(V1GroupSearchHandler.groovy:72) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at org.sonatype.nexus.repository.docker.internal.V1Handlers$_closure17.doCall(V1Handlers.groovy:245) [na:na] at sun.reflect.GeneratedMethodAccessor432.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_101] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_101] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [na:na] at groovy.lang.Closure.call(Closure.java:426) [na:na] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [na:na] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [na:na] at com.sun.proxy.$Proxy115.handle(Unknown Source) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:114) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:60) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.1.0.04] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.1.0.04] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:112) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.1.0.04] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.1.0.04] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.1.0.04] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.1.0.04] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101]",0.5 +"NEXUS-11712","11/28/2016 10:41:51","RAR uploading fails - Detected content type ""x-zip-compressed"" but expected ""/x-rar""","I tryed to upload a JCA RAR, but Nexus (OSS 3.0.2-02) throws the following error: {quote}Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.4:deploy (default-deploy) on project jca.adapter: Failed to deploy artifacts: Could not transfer artifact de.jca:jca.adapter:rar:1.0.0 from/t o nexus-deploy (http://x.x.x.x:8081/repository/releases/): Failed to transfer file: http://x.x.x.x:8081/repository/releases/jca/jca.adapter/1.0.0/jca.adapter-1.0.0.rar. Return code is: 400, Reason Phrase: Detected content type [application/zip, application/x-zip-compressed], but expected [application/java-archive, application/x-rar-compressed, application/x-rar]: jca/jca.adapter/1.0.0/jca.adapter-1.0.0.rar.{quote} This is how my pom file looks: 4.0.0 jca.adapter rar ",3 +"NEXUS-11726","11/30/2016 13:05:31","archived log file names should be named consistently","By default the request.log and nexus.log files are archived every 24 hours. nexus-yyyy-mmdd.log.gz request-yyyy-mm-dd.log.gz The file name formats are defined in logback.xml and logback-access.xml respectively. Example from nexus-3.1.0-02: {noformat} ├── jvm.log ├── karaf.log ├── nexus-2016-1020.log.gz ├── nexus-2016-1021.log.gz ├── nexus-2016-1108.log.gz ├── nexus-2016-1117.log.gz ├── nexus-2016-1121.log.gz ├── nexus-2016-1122.log.gz ├── nexus-2016-1124.log.gz ├── nexus-2016-1128.log.gz ├── nexus.log ├── request-2016-10-20.log.gz ├── request-2016-10-21.log.gz ├── request-2016-11-08.log.gz ├── request-2016-11-17.log.gz ├── request-2016-11-21.log.gz ├── request-2016-11-22.log.gz ├── request-2016-11-24.log.gz ├── request-2016-11-28.log.gz └── request.log {noformat} There is a needless inconsistency. This also appears to be a regression - this was once fixed in : https://github.com/sonatype/nexus-oss/pull/1550/files h3. Expected: Change the name format of the nexus log to match the request log: {noformat} ${karaf.data}/log/nexus-%d{yyyy-MM-dd}.log.gz {noformat} What happened to archiving the karaf.log? Any other log archives should be named similar to above pattern.",0.5 +"NEXUS-11732","12/01/2016 14:15:18","prevent ClassCastException when handling StorageLinkItem during upgrade to Nexus 3","Migration does not seem to handle finding a org.sonatype.nexus.proxy.item.DefaultStorageLinkItem in a maven2 hosted repo well. It throws a ClassCastException trying to cast it to StorageFileItem. {noformat} 2016-11-30 15:09:42 DEBUG [qtp498541853-82] - com.sonatype.nexus.migrationagent.repository.RepositoryMigrationManagerImpl - Finding configuration extractor for: maven2-hosted 2016-11-30 15:09:42 DEBUG [qtp498541853-82] - com.sonatype.nexus.migrationagent.repository.RepositoryMigrationManagerImpl - Finding configuration extractor for: maven2-hosted 2016-11-30 15:09:42 DEBUG [qtp498541853-82] - com.sonatype.nexus.migrationagent.repository.extractors.Maven2HostedConfigurationExtractor - Extracted Repository configuration Releases (releases), {browseable=true, exposed=true, indexable=true, notFoundCacheActive=false, notFoundCacheTimeToLive=1440, pathPrefix=releases, searchable=true, writePolicy=allow-write-once, rhcConfigured=false, rhcEnabled=false, fileTypeValidation=false, versionPolicy=release} 2016-11-30 15:09:45 WARN [qtp498541853-82] - org.sonatype.sisu.siesta.server.internal.mappers.ThrowableExceptionMapper - java.lang.ClassCastException: org.sonatype.nexus.proxy.item.DefaultStorageLinkItem cannot be cast to org.sonatype.nexus.proxy.item.StorageFileItem java.lang.ClassCastException: org.sonatype.nexus.proxy.item.DefaultStorageLinkItem cannot be cast to org.sonatype.nexus.proxy.item.StorageFileItem at com.sonatype.nexus.migrationagent.repository.RepositoryMigratorSupport.resolveItem(RepositoryMigratorSupport.java:292) ~[na:na] at com.sonatype.nexus.migrationagent.repository.RepositoryMigratorSupport.extract(RepositoryMigratorSupport.java:246) ~[na:na] at com.sonatype.nexus.migrationagent.repository.RepositoryMigrator$extract.call(Unknown Source) ~[na:na] at com.sonatype.nexus.migrationagent.rest.RepositoryChangelogResource$_get_closure1$_closure2.doCall(RepositoryChangelogResource.groovy:115) ~[na:na] at sun.reflect.GeneratedMethodAccessor164.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_101] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_101] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) ~[na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) ~[na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) ~[na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) ~[na:na] at groovy.lang.Closure.call(Closure.java:426) ~[na:na] at groovy.lang.Closure.call(Closure.java:442) ~[na:na] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2030) ~[na:na] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2015) ~[na:na] at org.codehaus.groovy.runtime.dgm$158.invoke(Unknown Source) ~[na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) ~[na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) ~[na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) ~[na:na] at com.sonatype.nexus.migrationagent.rest.RepositoryChangelogResource$_get_closure1.doCall(RepositoryChangelogResource.groovy:107) ~[na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_101] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_101] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_101] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_101] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) ~[na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) ~[na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) ~[na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) ~[na:na] at groovy.lang.Closure.call(Closure.java:426) ~[na:na] at groovy.lang.Closure.call(Closure.java:442) ~[na:na] at org.codehaus.groovy.runtime.IOGroovyMethods.withCloseable(IOGroovyMethods.java:1622) ~[na:na] at org.codehaus.groovy.runtime.NioGroovyMethods.withCloseable(NioGroovyMethods.java:1754) ~[na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_101] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_101] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_101] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_101] at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:54) ~[na:na] at org.codehaus.groovy.runtime.metaclass.NewInstanceMetaMethod.invoke(NewInstanceMetaMethod.java:56) ~[na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) ~[na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) ~[na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) ~[na:na] at com.sonatype.nexus.migrationagent.rest.RepositoryChangelogResource.get(RepositoryChangelogResource.groovy:106) ~[na:na] at com.sonatype.nexus.migrationagent.rest.RepositoryChangelogResource.getAsSmile(RepositoryChangelogResource.groovy:145) ~[na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_101] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_101] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_101] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_101] at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) ~[nexus-siesta-plugin-2.14.1-01/:na] at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205) ~[nexus-siesta-plugin-2.14.1-01/:na] at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) ~[nexus-siesta-plugin-2.14.1-01/:na] at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302) ~[nexus-siesta-plugin-2.14.1-01/:na] at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) ~[nexus-siesta-plugin-2.14.1-01/:na] at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) ~[nexus-siesta-plugin-2.14.1-01/:na] at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) ~[nexus-siesta-plugin-2.14.1-01/:na] at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511) [nexus-siesta-plugin-2.14.1-01/:na] at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442) [nexus-siesta-plugin-2.14.1-01/:na] at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391) [nexus-siesta-plugin-2.14.1-01/:na] at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381) [nexus-siesta-plugin-2.14.1-01/:na] at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) [nexus-siesta-plugin-2.14.1-01/:na] at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538) [nexus-siesta-plugin-2.14.1-01/:na] at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716) [nexus-siesta-plugin-2.14.1-01/:na] at org.sonatype.sisu.siesta.server.internal.SiestaServlet.service(SiestaServlet.java:121) [nexus-siesta-plugin-2.14.1-01/:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) [javax.servlet-3.0.0.v201112011016.jar:na] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:297) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:281) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:186) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.AbstractServletPipeline.service(AbstractServletPipeline.java:65) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [guice-servlet-3.2.6.jar:3.2.6] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [shiro-web-1.3.2.jar:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.1-01.jar:2.14.1-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.2.6.jar:3.2.6] at com.sonatype.nexus.analytics.internal.RestRequestCollector.doFilter(RestRequestCollector.java:81) [nexus-analytics-plugin-2.14.1-01/:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.2.6.jar:3.2.6] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [shiro-web-1.3.2.jar:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.3.2.jar:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.3.2.jar:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.3.2.jar:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.3.2.jar:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [shiro-web-1.3.2.jar:1.3.2] at org.sonatype.nexus.web.internal.SecurityFilter.executeChain(SecurityFilter.java:90) [nexus-core-2.14.1-01.jar:2.14.1-01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [shiro-web-1.3.2.jar:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.3.2.jar:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.3.2.jar:1.3.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [shiro-core-1.3.2.jar:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [shiro-web-1.3.2.jar:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.3.2.jar:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.1-01.jar:2.14.1-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.2.6.jar:3.2.6] at com.yammer.metrics.web.WebappMetricsFilter.doFilter(WebappMetricsFilter.java:76) [metrics-web-2.2.0.jar:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.CommonHeadersFilter.doFilter(CommonHeadersFilter.java:69) [nexus-core-2.14.1-01.jar:2.14.1-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.ErrorPageFilter.doFilter(ErrorPageFilter.java:71) [nexus-core-2.14.1-01.jar:2.14.1-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:66) [nexus-core-2.14.1-01.jar:2.14.1-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.1-01.jar:2.14.1-01] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterPipeline.dispatch(NexusGuiceFilter.java:56) [nexus-core-2.14.1-01.jar:2.14.1-01] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [guice-servlet-3.2.6.jar:3.2.6] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476) [jetty-servlet-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501) [jetty-servlet-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) [jetty-security-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429) [jetty-servlet-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at com.yammer.metrics.jetty.InstrumentedHandler.handle(InstrumentedHandler.java:200) [metrics-jetty-2.2.0.jar:na] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.Server.handle(Server.java:370) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) [jetty-http-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) [jetty-http-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696) [jetty-io-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53) [jetty-io-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [jetty-util-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [jetty-util-8.1.16.v20140903.jar:8.1.16.v20140903] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101] 2016-11-30 15:09:45 WARN [qtp498541853-82] - org.sonatype.sisu.siesta.server.internal.mappers.ThrowableExceptionMapper - (ID db8ac9d3-212d-424e-a1f2-0aa9d02bc77c) Response: [500] (no entity/body) mapped from java.lang.ClassCastException/org.sonatype.nexus.proxy.item.DefaultStorageLinkItem cannot be cast to org.sonatype.nexus.proxy.item.StorageFileItem 2016-11-30 15:09:45 INFO [qtp498541853-82] - org.sonatype.nexus.velocity.VelocityEngineProvider - Creating Nexus VelocityEngine {noformat} h3. Expected: - migrate that item - if an exception is thrown like this related to storage items migration, ALWAYS log the file name trying to be processed ( not sure if scouring code to ensure this does warrant a separate issue )",3 +"NEXUS-11733","12/01/2016 16:55:19","editing nexus-default.properties is not discouraged","When you extract the nexus download archive, you notice a file at /etc/nexus-default.properties with uncommented property values. Because this file is similar enough in name to nexus.properties ( from nexus 2 ) and the properties file we intend for them to customize is only created on startup at sonatype-work/nexus3/etc/nexus.properties , people are starting to edit the nexus-default.properties file instead of the nexus.properties file. We keep seeing installations that have edited nexus-default.properties and not nexus.properties. We want to discourage editing nexus-default.properties because the location of that file means that the custom values put there are not moved during upgrade, defeating the purpose of supporting a nexus.properties file in the work directory in the first place. Acceptance criteria: - keep nexus-default.properties + add comments in the file explaining this file should not be edited - ensure that comments about 'not editing' are not copied to nexus.properties ",0.5 +"NEXUS-11739","12/01/2016 21:47:58","Clearing (analytics) Events on Page 2+ hides Events until browser refresh","I noticed that if I have 2(+) pages of analytics events and I am on a page other than the first and clear, the pagination resets to 0 of 0 and I cannot see further events until a browser refresh. Changing navigation or header refresh do not work. This same behavior does not occur if you have 1 page or are on page 1. See attached video. I found if you were to wait until there was a page of events you were on it display (at page 1). I didn't check older NX3 or NX2 at this time.",2 +"NEXUS-11859","12/06/2016 20:02:04","Upgrade fails if Nexus 2 ""override local storage"" is not using a file URL","If you have a repository in Nexus 2 which overrides local storage using a simple file path upgrade to Nexus 3 will fail. {code:XML} file Z:\repositories\snapshots {code} The above is valid, the field takes either a file URL or a simple file path, see [here|https://github.com/sonatype/nexus-public/blob/477164f49c386e25a86c3866e4ac3a58c422b562/components/nexus-core/src/main/java/org/sonatype/nexus/proxy/storage/local/AbstractLocalRepositoryStorage.java#L137-L137]. But the upgrade fails with this: {noformat} 2016-12-06 11:15:11,225-0800 WARN [qtp1852448465-81 - /nexus/service/siesta/migrationagent/repository/central] *UNKNOWN org.sonatype.sisu.siesta.server.internal.mappers.ThrowableExceptionMapper - java.net.MalformedURLException: Unknown protocol: z java.net.MalformedURLException: Unknown protocol: z at java.net.URL.(Unknown Source) ~[na:1.7.0_51] at java.net.URL.(Unknown Source) ~[na:1.7.0_51] at java.net.URL.(Unknown Source) ~[na:1.7.0_51] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.7.0_51] at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[na:1.7.0_51] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[na:1.7.0_51] at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[na:1.7.0_51] at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:80) ~[na:na] at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) ~[na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60) ~[na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235) ~[na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247) ~[na:na] at com.sonatype.nexus.migrationagent.rest.RepositoryResource.storageDir(RepositoryResource.groovy:210) ~[na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_51] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_51] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_51] at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.7.0_51] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) ~[na:na] at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite$StaticMetaMethodSiteNoUnwrapNoCoerce.invoke(StaticMetaMethodSite.java:151) ~[na:na] at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.callStatic(StaticMetaMethodSite.java:102) ~[na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:56) ~[na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:194) ~[na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:206) ~[na:na] at com.sonatype.nexus.migrationagent.rest.RepositoryResource.get(RepositoryResource.groovy:141) ~[na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_51] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_51] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_51] at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.7.0_51] at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) ~[nexus-siesta-plugin-2.14.1-01/:na] at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185) ~[nexus-siesta-plugin-2.14.1-01/:na] {noformat}",1 +"NEXUS-11868","12/07/2016 20:34:14","Filtered items remain filtered after leaving the page but filter itself clears","I noticed that when I filtered some privileges, moved to Roles and moved back to Privileges that the filter remained in effect but the filter field itself cleared. This was momentarily confusing, I thought I might have erased something or been on the wrong page. You can click the clear ""x"" or refresh the browser as a workaround to restore the non-filtered list. See attached vid. I did not check vs NX2 at this time. I did check 3.1.0 and this is not recent regression.",1 +"NEXUS-11869","12/07/2016 21:09:33","Repository Administration shows errors with limited privileges","I made myself a role with nx-repository-admin-* and assigned to a user and when I logged in and navigated to repository admin, I got the attached error as well as the below from nexus.log. I am suspect this is because I didn't have healthcheck privileges (as it says) and I know we want people to use healthcheck but I am skeptical we want them to use it so bad we throw errors down their throats. This seemed familiar but I only saw one issue with this error and it was regarding anonymous access. I didn't check NX2 at this time. I checked also against NX3.1 and this is not recent regression. Nexus.log snip: {code} 2016-12-07 10:50:36,581-0500 ERROR [pool-41-thread-14] joedragons org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: healthcheck_Status.read, java-method: com.sonatype.nexus.plugins.healthcheck.ui.HealthCheckStatusComponent.read org.apache.shiro.authz.AuthorizationException: User is not permitted: nexus:healthcheck:read at org.sonatype.nexus.security.authz.ExceptionCatchingModularRealmAuthorizer.checkPermission(ExceptionCatchingModularRealmAuthorizer.java:66) [na:na] at org.apache.shiro.mgt.AuthorizingSecurityManager.checkPermission(AuthorizingSecurityManager.java:137) [na:na] at org.apache.shiro.subject.support.DelegatingSubject.checkPermission(DelegatingSubject.java:205) [org.apache.shiro.core:1.3.2] at org.apache.shiro.authz.aop.PermissionAnnotationHandler.assertAuthorized(PermissionAnnotationHandler.java:74) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:84) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:67) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_102] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_102] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_102] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_102] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.1.0.04] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.processor.standard.json.DefaultJsonRequestProcessorThread.processRequest(DefaultJsonRequestProcessorThread.java:72) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.servlet.ssm.SsmJsonRequestProcessorThread.processRequest(SsmJsonRequestProcessorThread.java:43) [org.sonatype.nexus.extdirect:3.1.0.04] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread.access$1(ExtDirectJsonRequestProcessorThread.java:1) [org.sonatype.nexus.extdirect:3.1.0.04] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread$1.call(ExtDirectJsonRequestProcessorThread.java:61) [org.sonatype.nexus.extdirect:3.1.0.04] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread$1.call(ExtDirectJsonRequestProcessorThread.java:1) [org.sonatype.nexus.extdirect:3.1.0.04] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletScopes$4.call(ServletScopes.java:274) [com.google.inject:4.0.0] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread.processRequest(ExtDirectJsonRequestProcessorThread.java:75) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.processor.standard.json.DefaultJsonRequestProcessorThread.call(DefaultJsonRequestProcessorThread.java:56) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.processor.standard.json.DefaultJsonRequestProcessorThread.call(DefaultJsonRequestProcessorThread.java:30) [org.sonatype.nexus.extdirect:3.1.0.04] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_102] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_102] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_102] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_102] Caused by: org.apache.shiro.authz.AuthorizationException: Not authorized to invoke method: public java.util.List com.sonatype.nexus.plugins.healthcheck.ui.HealthCheckStatusComponent.read() at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:90) [na:na] ... 26 common frames omitted 2016-12-07 10:50:36,583-0500 ERROR [pool-41-thread-2] joedragons org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: healthcheck_Status.read, java-method: com.sonatype.nexus.plugins.healthcheck.ui.HealthCheckStatusComponent.read org.apache.shiro.authz.AuthorizationException: User is not permitted: nexus:healthcheck:read at org.sonatype.nexus.security.authz.ExceptionCatchingModularRealmAuthorizer.checkPermission(ExceptionCatchingModularRealmAuthorizer.java:66) [na:na] at org.apache.shiro.mgt.AuthorizingSecurityManager.checkPermission(AuthorizingSecurityManager.java:137) [na:na] at org.apache.shiro.subject.support.DelegatingSubject.checkPermission(DelegatingSubject.java:205) [org.apache.shiro.core:1.3.2] at org.apache.shiro.authz.aop.PermissionAnnotationHandler.assertAuthorized(PermissionAnnotationHandler.java:74) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:84) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:67) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_102] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_102] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_102] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_102] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.1.0.04] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.processor.standard.json.DefaultJsonRequestProcessorThread.processRequest(DefaultJsonRequestProcessorThread.java:72) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.servlet.ssm.SsmJsonRequestProcessorThread.processRequest(SsmJsonRequestProcessorThread.java:43) [org.sonatype.nexus.extdirect:3.1.0.04] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread.access$1(ExtDirectJsonRequestProcessorThread.java:1) [org.sonatype.nexus.extdirect:3.1.0.04] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread$1.call(ExtDirectJsonRequestProcessorThread.java:61) [org.sonatype.nexus.extdirect:3.1.0.04] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread$1.call(ExtDirectJsonRequestProcessorThread.java:1) [org.sonatype.nexus.extdirect:3.1.0.04] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletScopes$4.call(ServletScopes.java:274) [com.google.inject:4.0.0] at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread.processRequest(ExtDirectJsonRequestProcessorThread.java:75) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.processor.standard.json.DefaultJsonRequestProcessorThread.call(DefaultJsonRequestProcessorThread.java:56) [org.sonatype.nexus.extdirect:3.1.0.04] at com.softwarementors.extjs.djn.router.processor.standard.json.DefaultJsonRequestProcessorThread.call(DefaultJsonRequestProcessorThread.java:30) [org.sonatype.nexus.extdirect:3.1.0.04] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_102] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_102] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_102] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_102] Caused by: org.apache.shiro.authz.AuthorizationException: Not authorized to invoke method: public java.util.List com.sonatype.nexus.plugins.healthcheck.ui.HealthCheckStatusComponent.read() at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:90) [na:na] ... 26 common frames omitted {code}",2 +"NEXUS-11872","12/08/2016 23:08:34","Deleting a repository with an item in it errors in nexus.log","I deployed the attached pom to the default maven-snapshots repo and subsequently deleted it and later noticed the below error in the nexus.log. I was able to repro this. This does not occur when the snapshot repo is empty. I did not check older NX3 or NX2 at this time however this reminded me of NEXUS-10759 where this doesn't occur (or at least the error is different) so there's either some subtly here or it's recent regression. As with NEXUS-10759 the repo as far as I can tell does delete properly (definitely disappears from the UI and is able to be recreated), so marking minor for now despite the scary error. Nothing bad shows on the UI side either. {code} 2016-12-08 17:58:16,807-0500 ERROR [event-1-thread-5] admin com.google.common.eventbus.EventBus.reentrant.async - Could not dispatch event EntityBatchEvent{events=[AssetDeletedEvent{metadata=AttachedEntityMetadata{schema=asset, document=#45:1{bucket:#26:1,format:maven2,last_updated:Thu Dec 08 17:51:30 EST 2016,attributes:[4],component:#34:0,name:jtt/jtzapp/1.0-SNAPSHOT/jtzapp-1.0-20161208.225130-1.jar,size:1467,content_type:application/java-archive,blob_ref:default@1CC43181-A2868557-7287045C-3ABDFEFE-CF78022F:25874fd9-c8c6-4647-abd3-f6b9e50995a7,last_accessed:Thu Dec 08 17:51:30 EST 2016} v1}, remoteNodeId=null}, AssetDeletedEvent{metadata=AttachedEntityMetadata{schema=asset, document=#47:1{bucket:#26:1,format:maven2,last_updated:Thu Dec 08 17:51:30 EST 2016,attributes:[4],component:#34:0,name:jtt/jtzapp/1.0-SNAPSHOT/jtzapp-1.0-20161208.225130-1.jar.md5,size:32,content_type:text/plain,blob_ref:default@1CC43181-A2868557-7287045C-3ABDFEFE-CF78022F:24efa603-c0fe-4f5b-9b50-544ac439c9e0,last_accessed:Thu Dec 08 17:51:30 EST 2016} v1}, remoteNodeId=null}, AssetDeletedEvent{metadata=AttachedEntityMetadata{schema=asset, document=#46:1{bucket:#26:1,format:maven2,last_updated:Thu Dec 08 17:51:30 EST 2016,attributes:[4],component:#34:0,name:jtt/jtzapp/1.0-SNAPSHOT/jtzapp-1.0-20161208.225130-1.jar.sha1,size:40,content_type:text/plain,blob_ref:default@1CC43181-A2868557-7287045C-3ABDFEFE-CF78022F:a7dbafab-6566-444e-aafe-7a2737868d86,last_accessed:Thu Dec 08 17:51:30 EST 2016} v1}, remoteNodeId=null}, AssetDeletedEvent{metadata=AttachedEntityMetadata{schema=asset, document=#48:1{bucket:#26:1,format:maven2,last_updated:Thu Dec 08 17:51:30 EST 2016,attributes:[4],component:#34:0,name:jtt/jtzapp/1.0-SNAPSHOT/jtzapp-1.0-20161208.225130-1.pom,size:1246,content_type:application/xml,blob_ref:default@1CC43181-A2868557-7287045C-3ABDFEFE-CF78022F:ad67bde8-9a9d-4cc2-9841-4a543b875599,last_accessed:Thu Dec 08 17:51:30 EST 2016} v1}, remoteNodeId=null}, AssetDeletedEvent{metadata=AttachedEntityMetadata{schema=asset, document=#42:2{bucket:#26:1,format:maven2,last_updated:Thu Dec 08 17:51:30 EST 2016,attributes:[4],component:#34:0,name:jtt/jtzapp/1.0-SNAPSHOT/jtzapp-1.0-20161208.225130-1.pom.md5,size:32,content_type:text/plain,blob_ref:default@1CC43181-A2868557-7287045C-3ABDFEFE-CF78022F:38b9d3b3-29d2-41b6-8168-04eda05a8579,last_accessed:Thu Dec 08 17:51:30 EST 2016} v1}, remoteNodeId=null}, AssetDeletedEvent{metadata=AttachedEntityMetadata{schema=asset, document=#41:2{bucket:#26:1,format:maven2,last_updated:Thu Dec 08 17:51:30 EST 2016,attributes:[4],component:#34:0,name:jtt/jtzapp/1.0-SNAPSHOT/jtzapp-1.0-20161208.225130-1.pom.sha1,size:40,content_type:text/plain,blob_ref:default@1CC43181-A2868557-7287045C-3ABDFEFE-CF78022F:3ac53ec4-3f51-4d09-a779-4a7b843405b4,last_accessed:Thu Dec 08 17:51:30 EST 2016} v1}, remoteNodeId=null}, ComponentDeletedEvent{metadata=AttachedEntityMetadata{schema=component, document=#34:0{bucket:#26:1,format:maven2,last_updated:Thu Dec 08 17:51:30 EST 2016,attributes:[1],group:jtt,name:jtzapp,version:1.0-20161208.225130-1} v2}, remoteNodeId=null}]} to subscriber org.sonatype.nexus.repository.search.ComponentSubscriber@665637c2 method [public void org.sonatype.nexus.repository.search.ComponentSubscriber.on(org.sonatype.nexus.common.entity.EntityBatchEvent)] java.lang.IllegalStateException: Invalid state: DELETED; allowed: [STARTED] at org.sonatype.nexus.common.stateguard.StateGuard._ensure(StateGuard.java:115) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard.access$1(StateGuard.java:108) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:269) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.repository.search.ComponentSubscriber.on(ComponentSubscriber.java:86) [na:na] at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) [na:na] at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) [na:na] at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) [org.sonatype.nexus.thread:3.2.0.SNAPSHOT] at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [org.apache.shiro.core:1.3.2] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_40] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_40] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {code}",1 +"NEXUS-11874","12/09/2016 11:29:18","npm packages cannot be migrated due to IllegalStateException PackageVersion expected when contained in a rebuilt hosted repository","Trying to migrate a npm repo from 2.14.1 to 3.1. Error at Nexus 3.1 is {noformat} 2016-11-15 10:24:30,150+1100 WARN [plan-executor-4-thread-3] admin com.sonatype.nexus.migration.repository.ProcessChangesStep - Process changes failed javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error {noformat} Error at Nexus 2.14.1 is {noformat} 2016-11-15 10:24:30 WARN [qtp625399792-185] *UNKNOWN org.sonatype.sisu.siesta.server.internal.mappers.ThrowableExceptionMapper - java.lang.IllegalStateException: PackageVersion expected for npm tarball /auspost-array-includes/-/auspost-array-includes-1.0.0.tgz java.lang.IllegalStateException: PackageVersion expected for npm tarball /auspost-array-includes/-/auspost-array-includes-1.0.0.tgz at com.google.common.base.Preconditions.checkState(Preconditions.java:200) ~[guava-16.0.1.jar:na] at com.sonatype.nexus.migrationagent.repository.migrators.NpmRepositoryMigrator.findVersion(NpmRepositoryMigrator.java:85) ~[na:na] at com.sonatype.nexus.migrationagent.repository.migrators.NpmRepositoryMigrator.extract(NpmRepositoryMigrator.java:63) ~[na:na] at com.sonatype.nexus.migrationagent.repository.RepositoryMigratorSupport.extract(RepositoryMigratorSupport.java:248) ~[na:na] at com.sonatype.nexus.migrationagent.repository.RepositoryMigrator$extract.call(Unknown Source) ~[na:na] {noformat}",1 +"NEXUS-11888","12/12/2016 17:32:25","http request header values should be checked for validity before allowing a request to proceed","Certain HTTP request headers have well established value formats. Nexus should check the format of these header values and reject the request with a 400 response in such a case. Log a message in nexus.log in such a case at INFO level.",3 +"NEXUS-11902","12/12/2016 21:45:55","REST Asset Search & Download Resource","*Background* This feature serves as a handy bridge between searching for things and downloading them. Having a download sub-resource means that clients can make simple HTTP calls for artifacts that may or may not exist, and download them without parsing any JSON. *Acceptance* * This sub-resource builds on NEXUS-14603 (asset search json api), but returns: ** A 302 redirect to download the asset bytes *** Rationale: This has the benefit of leaving a trail in build tools' logs that explains what specific artifact was suggested as the thing to download (e.g. in the case of a ""latest"" search), rather than simply returning bytes. *** It's fine to reuse existing format-specific content-serving endpoints, if that's expedient (as with the asset download sub-resource) ** If there are no search results, HTTP 404 ** If the search isn't sufficiently precise to pick a winning asset (i.e. there's no sort order and there's more than one search result), then we should return HTTP 400 (client error) ** Request logs should make it easy to tell whether users were searching for content vs. trying to download content (e.g. because downloading is a sub-endpoint or uses a 'download' param or whatever) *Questions/Notes* * Partial fetch/HEAD support is of course desirable, but that will be handled by the format-specific content bytes endpoint ",3 +"NEXUS-11909","12/13/2016 16:23:32","content requests to Nexus 2 by migration agent should avoid HTTP 404 Not Found caused by URL encoding","*Background* A number of customer bug reports have been traced to the fact that the NX2->NX3 migration REST API is using encoded slashes in requests. This causes problems with reverse proxies, and so far our recommendation is to fine tune the reverse proxy settings. This will continue to be problematic in the future, so let's adjust to eliminate the encoding. The problem manifests itself when the HTTP download option is used during upgrade to Nexus 3, and Nexus 3 is sending requests for artifacts to Nexus 2. Nexus 3 sends requests to Nexus 2 with encoded slashes like {{/service/siesta/migrationagent/repository-content/npmproxy/which%2F-%2Fwhich-1.0.9.tgz}}, those decoded slashes need to arrive at the Nexus 2 instance unaltered/undecoded in order for migration to work. *Symptoms* Requests by the Nexus migration agent to Nexus 2 will fail with 404 not found. Example stack trace from your nexus.log: {noformat} 2016-11-08 08:39:26,510+0100 ERROR [plan-executor-5-thread-6] admin com.sonatype.nexus.migration.repository.ProcessChangesStep - Failed processing of CREATE /package/-/package-2.0.1.tgz, will ignore and move on. HTTP 404 Not Found javax.ws.rs.NotFoundException: HTTP 404 Not Found at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.handleErrorStatus(ClientInvocation.java:201) [na:na] at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:174) [na:na] at org.jboss.resteasy.client.jaxrs.internal.proxy.extractors.BodyEntityExtractor.extractEntity(BodyEntityExtractor.java:59) [na:na] at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:104) [na:na] at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:64) [na:na] at com.sonatype.nexus.migration.client.$Proxy193.get(Unknown Source) [na:na] {noformat} This can happen with any repository type. *Acceptance* * Remove slash encoding from the NX2 migration REST API so that we don't have problems with reverse proxies. * Revert note added by https://github.com/sonatype/nexus-book-internal/pull/55 which will become obsolete *Workaround* - configure Nexus 3 to send requests to Nexus 2 directly instead of going through an intermediary reverse proxy - configure the httpd in front of Nexus 2 with the directive {{AllowEncodedSlashes NoDecode}} and the option {{nocanon}} for your ProxyPass directive - do a similar change for nginx if using that server - upgrade to 2.14.3/3.2.1 once released ",3 +"NEXUS-11910","12/13/2016 18:15:28","npm search against group repository fails with HTTP 500 due to not properly supporting /-/all resource","Steps to reproduce: * Create {{npm-internal}} (hosted) repository with *its own blob store*. * Create {{registry.npmjs.org-proxy}} (proxy for https://registry.npmjs.org/) repository with *its own blob store*. * Create {{npm-group}} repository containing the first two repos with *its own blobstore*. * Update your {{.npmrc}} to set {{registry=http:///repository/npm-group}} * Open a terminal and run {{npm search --verbose}} The HTTP {{500}} response should be printed on the terminal and the following is observed in the Nexus logs: {code} 2016-12-13 13:34:50,236+0000 WARN [qtp1252819137-69952] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure 2016-12-13 13:34:40,140+0000 WARN [qtp1252819137-69950] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure java.lang.IllegalStateException: Blob not found: npm-hosted@BAF1DDC1-D02BAD86-DED30B05-26ABD8A1-651AF16F:0756bea4-fc20-4ce5-acd5-124a2b6e5315 at com.google.common.base.Preconditions.checkState(Preconditions.java:197) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.requireBlob(StorageTxImpl.java:707) [na:na] at sun.reflect.GeneratedMethodAccessor1850.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_65] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63) [na:na] at com.sun.proxy.$Proxy162.requireBlob(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmFacetUtils.loadPackageRoot(NpmFacetUtils.java:268) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetHosted.buildIndex(NpmSearchIndexFacetHosted.java:68) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetCaching.searchIndex(NpmSearchIndexFacetCaching.java:65) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:44) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetGroup.buildIndex(NpmSearchIndexFacetGroup.java:93) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetCaching.searchIndex(NpmSearchIndexFacetCaching.java:65) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:54) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$7.handle(NpmHandlers.java:248) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.1.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.1.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.0.1.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.0.1.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.1.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65] {code} It appears that the {{npm-group}} repository is attempting to find the {{npm-hosted/-/all}} asset *in its blobstore*. I've confirmed something like this is happening by performing the steps outlined above but used _the same blobstore for all repositories_ and no error is observed.",2 +"NEXUS-11911","12/13/2016 19:50:26","Stopping Nexus while a ""Drop Inactive Staging Repositories"" is running can lead to configuration inconsistencies","Saw this in a customer log. A ""drop inactive staging repositories"" task was started: {quote} 2016-12-09 18:00:02 INFO \[pxpool-1-thread-14\] *TASK com.sonatype.nexus.staging.internal.task.DropInactiveRepositoriesTask - Inactive repositories selected to drop: [build-50727, build-50728, build-50729, build-50730, build-50731, build-50732, build-50733, build-50734, build-50735, build-50736, build-50737, build-50738, build-50739, build-50740, build-50741, build-50742, build-50743, build-50744, build-50745, build-50746, build-50747, build-50748, build-50749, build-50750, build-50751, build-50752, build-50753, build-50754, build-50755, build-50756, build-50757, build-50758, build-50759, build-50760, build-50761, build-50762, build-50763, build-50764, build-50765, build-50766, build-50767, build-50768, build-50769, build-50770, build-50771, build-50772, build-50773, build-50774, build-50775, build-50776, build-50777, build-50778, build-50779, build-50780, build-50781, build-50782, build-50783, build-50784, build-50785, build-50786, build-50787, build-50788, build-50789, build-50790, build-50791, build-50792, build-50793, build-50794, build-50795, build-50796, build-50797, build-50798, build-50799, build-50800, build-50801, build-50802, build-50803, build-50804, build-50805, build-50806, build-50807, build-50808, build-50809, build-50810, build-50811, build-50812, build-50813, build-50814, build-50815, build-50816, build-50817, build-50818, build-50819, build-50820, build-50821, build-50822, build-50823, build-50824, build-50825, build-50826, build-50827, build-50828, build-50829, build-50830, build-50831, build-50832, build-50833, build-50834, build-50835, build-50836, build-50837, build-50838, build-50839, build-50840, build-50841, build-50842, build-50843, build-50844, build-50845, build-50846, build-50847, build-50848, build-50849, build-50850, build-50851, build-50852, build-50853, build-50854, build-50855, build-50856, build-50857, build-50858, build-50859, build-50860, build-50861, build-50862, build-50863, build-50864, build-50865, build-50866, build-50867, build-50868, build-50869, build-50870, build-50871, build-50872, build-50873, build-50874, build-50875, build-50876, build-50877, build-50878, build-50879, build-50880, build-50881, build-50882, build-50883, build-50884, build-50885, build-50886, build-50887, build-50888\] {quote} About a minute later Nexus was shut down: {quote} 2016-12-09 18:01:07 INFO \[WrapperListener_stop_runner] *SYSTEM org.sonatype.nexus.bootstrap.jsw.JswLauncher - Stopping with code: 0 2016-12-09 18:01:07 INFO \[WrapperListener_stop_runner] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - Stopping 2016-12-09 18:01:07 INFO \[WrapperListener_stop_runner] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - Stopping: org.eclipse.jetty.server.Server@695d7d60 2016-12-09 18:01:07 INFO \[WrapperListener_stop_runner] *SYSTEM org.eclipse.jetty.server.Server - Graceful shutdown InstrumentedSelectChannelConnector@0.0.0.0:8080 2016-12-09 18:01:08 INFO \[WrapperListener_stop_runner] *SYSTEM org.eclipse.jetty.server.Server - Graceful shutdown o.e.j.w.WebAppContext\{/nexus,file\:/usr/local/nexus-professional-2.12.0-01/nexus/},/usr/local/nexus-professional-2.12.0-01/nexus {quote} During shut down there are quite a few exceptions from the thread running the drop task. And in the end the thread dropping the repositories is the last thing running, this is the end of the log: {quote} 2016-12-09 18:01:17 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:17 WARN \[pxpool-1-thread-19] *TASK com.sonatype.nexus.staging.internal.task.RepositoryDropTask - One or more operations failed; aborting: com.sonatype.nexus.staging.StagingConfigurationException: org.sonatype.nexus.proxy.NoSuchRepositoryException: Repository with ID=""build-50745"" not found 2016-12-09 18:01:17 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:18 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:18 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:18 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:18 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:18 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:18 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:18 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:18 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:19 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:19 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:19 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:19 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:19 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:19 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:19 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:19 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:19 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml 2016-12-09 18:01:20 INFO \[pxpool-1-thread-19] *TASK org.sonatype.nexus.configuration.ModelUtils - Saving model /usr/local/sonatype-work/nexus/conf/staging.xml {quote} After restart there are numerous inconsistencies between repositories in the nexus.xml and staging.xml files. This resulted in the log getting enormous (20Gb), due to warnings, and also left a large number of staging repositories in a state where they couldn't be dropped. ",5 +"NEXUS-11922","12/15/2016 17:57:43","Book inaccurately states Group search criteria supports asterisk for pattern matching","Description: In Section 3.3.1 the book states ""Each criteria can be used with a search term and supports the * character (star, asterisk) for pattern matching. E.g., you could search with the *Group* search criteria and search for org.sonatype.nexus.*. This would return components with the group of org.sonatype.nexus, but also org.sonatype.nexus.plugins and many others."" But, applying the asterisk for the Keyword field seems to work. Acceptance: Update the example to Keyword search, instead of Group search. ",0.5 +"NEXUS-11925","12/15/2016 18:32:12","Nexus 2 to Nexus 3 upgrade may fail with NullPointerException Cannot invoke method extract while processing RepositoryChangelogResource","I try to upgrade from 2.14.1-01 to 3.1.0-04. I selected single proxy repository and got the following: !upgrade.JPG|thumbnail! Nexus 2 log contains the following: {noformat} 2016-11-22 15:06:22 WARN [qtp10032359-104] *UNKNOWN org.sonatype.sisu.siesta.server.internal.mappers.ThrowableExceptionMapper - java.lang.NullPointerException: Cannot invoke method extract() on null object java.lang.NullPointerException: Cannot invoke method extract() on null object at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91) ~[na:na] at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48) ~[na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) ~[na:na] at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:35) ~[na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) ~[na:na] at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:57) ~[na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) ~[na:na] at com.sonatype.nexus.migrationagent.rest.RepositoryChangelogResource$_get_closure1$_closure2.doCall(RepositoryChangelogResource.groovy:115) ~[na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_111] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_111] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_111] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_111] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) ~[na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) ~[na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) ~[na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) ~[na:na] at groovy.lang.Closure.call(Closure.java:426) ~[na:na] at groovy.lang.Closure.call(Closure.java:442) ~[na:na] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2030) ~[na:na] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2015) ~[na:na] at org.codehaus.groovy.runtime.dgm$158.invoke(Unknown Source) ~[na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) ~[na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) ~[na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) ~[na:na] at com.sonatype.nexus.migrationagent.rest.RepositoryChangelogResource$_get_closure1.doCall(RepositoryChangelogResource.groovy:107) ~[na:na] {noformat} ",2 +"NEXUS-11935","12/16/2016 16:26:25","REST-Controlled Scheduled Tasks","*Background* Currently, there's a gap in terms of how NX3 backups can be orchestrated. We want admins to export the database (i.e. via the scheduled task), and keep the export files safe, and synchronize this with a blob store/rest of Nexus backup. This is tricky because the scheduled task is controlled inside Nexus, while blob stores are often backed up using an externally controlled rsync. *Acceptance* * There is a mechanism to list configured scheduled tasks, query their run status and invoke them (as if they were being manually invoked). *Technical Notes* * Perhaps the right way to do this is as part of beefing up the Provisioning API to cover scheduled tasks (including finding and triggering them). * We'll defer configuration-specific endpoints (and this can currently be done with the provisioning API). * Consider that some tasks may not come from our own plugins.",3 +"NEXUS-11937","12/16/2016 17:44:34","privileges which allow reading repository content also expose all repository names when browsing assets / components ","Anonymous user is assigned one role with only the following: nexus:repository-view:maven2:maven-central:browse nexus:repository-view:maven2:maven-central:read There is a difference in behaviour between Nexus 3.0.2 and 3.1.0. In Nexus 3.0.2 you only see maven-central in Browse Assets/Components. !Browse 3.0.2.png! In Nexus 3.1.0 you see all the repos in Browse Assets/Components. You do not see artifacts under repositories that you do not permissions for, but the issue is that the repository should not displayed !Browse 3.1.0.png! NOTE: This does not allow users to see the repository content, just the repository names.",3 +"NEXUS-11947","12/19/2016 16:45:17","Deploying docker manifest which has unknown properties causes an entire docker package to become unusable.","An end user uploaded some docker images using docker 1.13.0 RC which had manifests containing unsupported tags. Now they can't seem to get out of the bad state, seems that deleting the bad manifests doesn't fix it, and they can't deploy new versions of this image using Docker 1.12. {quote} 2016-12-15 14:51:06,613-0600 INFO \[qtp252865835-11141] snikifor org.sonatype.nexus.repository.storage.SingleAssetComponentMaintenance - Deleting component: Component\{metadata=AttachedEntityMetadata\{document=component#10:33165\{bucket:#9:9,format:docker,last_updated:Thu Dec 15 14:49:20 CST 2016,attributes:\[1],group:null,name:dock2box/centos7.2.1511,version:fb8c651} v1}, name=dock2box/centos7.2.1511, version=fb8c651, group=null} 2016-12-15 15:08:52,271-0600 WARN \[qtp252865835-11186] registry_svc org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: HEAD /v2/stampede/centos7.2.1511/blobs/sha256:00e4abfa9a21665df632d0eaa741ba6dced8e8a3cf79722f85115d9d761125a9: 404 - org.sonatype.nexus.repository.docker.internal.V2Exception$BlobNotFound: blob unknown to registry 2016-12-15 15:09:05,293-0600 WARN \[qtp252865835-11201] snikifor org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/stampede/centos7.2.1511/manifests/fb8c651 com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field ""comment"" (class org.sonatype.nexus.repository.docker.internal.V2ManifestConfig), not marked as ignorable (11 known properties: ""container_config"", ""container"", ""config"", ""architecture"", ""os"", ""created"", ""docker_version"", ""author"", ""rootfs"", ""metaClass"", ""history""]) at \[Source: java.io.BufferedInputStream@12f67dcc; line: 1, column: 36] (through reference chain: org.sonatype.nexus.repository.docker.internal.V2ManifestConfig\[""comment""]) at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:62) \[com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:855) \[com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1083) \[com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1389) \[com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1367) \[com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:266) \[com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125) \[com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3788) \[com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2849) \[com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.ObjectMapper$readValue$1.call(Unknown Source) \[na:na] at org.sonatype.nexus.repository.docker.internal.V2ManifestUtilImpl.loadConfigurationFile(V2ManifestUtilImpl.groovy:209) \[na:na] at org.sonatype.nexus.repository.docker.internal.V2ManifestUtilImpl$loadConfigurationFile$16.callStatic(Unknown Source) \[na:na] at org.sonatype.nexus.repository.docker.internal.V2ManifestUtilImpl.mayDowngrade(V2ManifestUtilImpl.groovy:127) \[na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:44) \[org.sonatype.nexus.transaction:3.0.2.02] at org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl.getManifestByTag(DockerHostedFacetImpl.java:728) \[na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:54) \[org.sonatype.nexus.transaction:3.0.2.02] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) \[org.sonatype.nexus.transaction:3.0.2.02] at org.sonatype.nexus.repository.docker.internal.DockerHostedFacet$getManifestByTag.call(Unknown Source) \[na:na] at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure14.doCall(V2Handlers.groovy:240) \[na:na] at sun.reflect.GeneratedMethodAccessor296.invoke(Unknown Source) \[na:na] {quote} ",0.5 +"NEXUS-11965","12/21/2016 11:58:34","npm install fails with 500 error when user has Group level privileges","If a user has read privileges to a npm group, but not the underlying npm proxy, then the ""npm install "" will get a 500 response for any package that is not locally cached in the npm proxy. Steps to reproduce: 1) Setup a npm group _npm-all_ that has npm proxy _npmjs_ as a member 2) Setup a user that has access to group repo _npm-all_ (privilege nx-repository-view-npm-npm-all). 3) Try to install a npm package that is not locally cached in proxy _npmjs_ The npm install command will fail with something like the following: {noformat} npm http fetch GET http://localhost:8081/repository/npm-all/glob/-/glob-7.1.1.tgz npm http fetch 500 http://localhost:8081/repository/npm-all/glob/-/glob-7.1.1.tgz npm info retry will retry, error on last attempt: Error: server error 500 {noformat} Nexus logs will show the following: {noformat} 2016-12-21 11:21:38,899+0000 WARN [qtp1898010376-415] test org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure java.lang.RuntimeException: java.io.IOException: org.apache.shiro.authz.AuthorizationException at com.google.common.base.Throwables.propagate(Throwables.java:160) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.getUrl(NpmProxyFacetImpl.java:142) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:210) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.fetch(NpmProxyFacetImpl.java:62) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:166) [na:na] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:49) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyRecipe$_closure1.doCall(NpmProxyRecipe.groovy:160) [na:na] ... ... Caused by: java.io.IOException: org.apache.shiro.authz.AuthorizationException at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.retrievePackageRoot(NpmProxyFacetImpl.java:347) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.retrievePackageVersion(NpmProxyFacetImpl.java:299) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.getUrl(NpmProxyFacetImpl.java:138) [na:na] ... 131 common frames omitted Caused by: org.apache.shiro.authz.AuthorizationException: null at org.sonatype.nexus.repository.security.SecurityFacetSupport.ensurePermitted(SecurityFacetSupport.java:72) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:48) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:114) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:60) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.retrievePackageRoot(NpmProxyFacetImpl.java:336) [na:na] ... 133 common frames omitted {noformat} *Workaround* If you give that user a read privilege to the proxy _npmjs_ (nx-repository-view-npm-npmjs-read) then the user should be able to install the package that is not already cached. Group level permissions should be transitive, therefore use has the same privileges for all member repositories.",0.5 +"NEXUS-11972","12/21/2016 16:40:55","JobStoreImpl should skip over malformed records to allow nexus to start","In the case where jobs end up malformed in the config database, as such: {code} orientdb {db=config}> select from quartz_job_detail +----+-----+---------+-----+---------+---------+-----------+--------------------------------------------------------------------------------------------------+ |#   |@RID |@CLASS   |group|value_typ|name     |job_type   |value_data                                                                              | +----+-----+---------+-----+---------+---------+-----------+--------------------------------------------------------------------------------------------------+ |0   |#28:1|quartz...|nexus|org.qu...|641223...|org.sona...|{name=64122393-52ca-4013-9651-483bce8252a0, group=nexus, description=Health Check: maven-centra...| |1   |#28:3|quartz...|     |         |         |           |                                                                              | |2   |#28:4|quartz...|nexus|org.qu...|7b7806...|org.sona...|{name=7b7806df-8e25-4273-9572-8ffdedab76c0, group=nexus, description=Health Check: Pypi, jobCla...| +----+-----+---------+-----+---------+---------+-----------+--------------------------------------------------------------------------------------------------+ {code} 3 item(s) found. Query executed in 0.003 sec(s).}} and/or {code} orientdb {db=config}> select from quartz_trigger +----+-----+---------+-----+-------+---------+---------+---------+---------+-----------+-------------------------------------------------------------------------+ |#   |@RID |@CLASS   |group|state  |job_group|calendar_|name     |job_name |value_type |value_data | +----+-----+---------+-----+-------+---------+---------+---------+---------+-----------+-------------------------------------------------------------------------+ |0   |#42:1|quartz...|nexus|WAITING|nexus    |         |641223...|641223...|org.quar...|{name=64122393-52ca-4013-9651-483bce8252a0, group=nexus, jobName=64122...| |1   |#42:3|quartz...|     |       |         |         |         |         |       | | |2   |#42:4|quartz...|nexus|WAITING|nexus    |         |7b7806...|7b7806...|org.quar...|{name=7b7806df-8e25-4273-9572-8ffdedab76c0, group=nexus, jobName=7b780...| +----+-----+---------+-----+-------+---------+---------+---------+---------+-----------+-------------------------------------------------------------------------+}} {code} The empty records (#28:3 and #42:3) caused an NPE which stopped nexus from starting: ",3 +"NEXUS-11988","12/27/2016 22:07:51","npm hosted repository package metadata tarball URLs incorrectly contain generated-on-request placeholder after upgrade","NEXUS-11874 fixed an error which prevented some npm hosted packages from being migrated from 2.x to 3.x if the ""Rebuild npm hosted metadata"" task had been run on the source repository. Now an upgrade with Nexus Repository Manager 2.14.2 to 3.2.0, will migrate those hosted packages instead of failing the repository migration. However there is a new problem. When the package metadata for hosted npm packages are requested from Nexus 3, the tarball URLs may not be rewritten correctly and will contain invalid URLs which contain the internal placeholder term: ""generated-on-request"". 1. Deploy an npm package to a Nexus Repository Manager 2.x npm hosted repository. 2. Schedule and run at least one ""Rebuild npm hosted metadata"" task against the Nexus Repository Manager 2.x npm hosted repository. 3. Migrate the npm hosted repository to Nexus 3.2.0. 4. Request the root level package metadata of a migrated package. The tarball URLs will contain the term ""generated-on-request"" instead of the expected tarball file name. {noformat:title=Example bad metadata} {""maintainers"":[{""name"":""admin"",""email"":""my@example.com""}],""x-nx-rebuilt"":""2016-12-27T17:48:01.866-0400"",""keywords"":[""test1""],""dist-tags"":{""latest"":""0.0.1""},""versions"":{""0.0.1"":{""name"":""testproject1"",""version"":""0.0.1"",""description"":""Test Project 1"",""main"":""index.js"",""scripts"":{""test"":""echo \""Error: no test specified\"" && exit 0""},""dependencies"":{""commonjs"":""0.0.1""},""publishConfig"":{""registry"":""http://localhost:8081/nexus/content/repositories/npm-hosted/""},""keywords"":[""test1""],""author"":{""name"":""cstamas""},""license"":""ISC"",""readme"":""ERROR: No README data found!"",""_id"":""testproject1@0.0.1"",""_shasum"":""8bec15747a094d7720fc8a4d8e785b6ea5e23b85"",""_from"":""."",""_npmVersion"":""4.0.5"",""_nodeVersion"":""0.12.2"",""_npmUser"":{""name"":""admin"",""email"":""my@example.com""},""maintainers"":[{""name"":""admin"",""email"":""my@example.com""}],""dist"":{""shasum"":""8bec15747a094d7720fc8a4d8e785b6ea5e23b85"",""tarball"":""http://localhost:8091/repository/npm-hosted/testproject1/-/generated-on-request""}}},""name"":""testproject1"",""_rev"":""1"",""description"":""Test Project 1"",""_id"":""testproject1"",""readme"":""ERROR: No README data found!"",""time"":{""created"":""2016-12-27T21:34:40.348Z"",""modified"":""2016-12-27T21:48:01.870Z"",""0.0.1"":""2016-12-27T21:34:40.348Z""}} {noformat} The invalid URLs will of course return 404 and therefore builds which previously worked using Nexus 2 will fail when used with Nexus 3. h4. Expected Package metadata migrated from Nexus 2 should render with proper tarball urls. ",3 +"NEXUS-11994","12/29/2016 19:52:04","SNAPSHOT requests are processed by Maven 2 repositories with policy Release","h4. Nexus 2.x 1. Configure a Maven 2 proxy repo with policy RELEASE. 2. Add the Maven 2 proxy repo as a member to the public group. 3. Send the following request to a Nexus 2 public group containing a proxy repository member with policy RELEASE. Processing of the request is not handled by the RELEASE proxy repository as the path is detected as a SNAPSHOT request. Setting the logger {{remote.storage.outbound}} to DEBUG or processing the request with {{?describe}} proves this: http://localhost:8081/nexus/content/groups/public/gov/utah/dws/erep/arch/base-pom/2.16-SNAPSHOT/maven-metadata.xml h4. Nexus 3.2 1. Send the same request to a maven-public group with Release policy proxy repository ( ie. maven-central) as a group member and Nexus 3.2 sends the request outbound to the remote. Setting the logger {{org.sonatype.nexus.httpclient.outbound}} to DEBUG proves this. http://localhost:8081/repository/maven-public/gov/utah/dws/erep/arch/base-pom/2.16-SNAPSHOT/maven-metadata.xml h3. Expected For consistency - request paths that are detected as SNAPSHOT related in Nexus 2 should also be treated as SNAPSHOT related in Nexus 3 - unless Nexus 3 has an improvement to make over Nexus 2. SNAPSHOT requests should not be processed AT ALL by RELEASE policy repository group members in Nexus 3.x, whether they are hosted or proxy repositories. ",2 +"NEXUS-11995","12/29/2016 21:08:23","Repository migration fails with ""com.fasterxml.jackson.databind.JsonMappingException: Invalid type marker byte 0xfa for expected field name (or END_OBJECT marker)""","Upgrade fails with ""com.fasterxml.jackson.databind.JsonMappingException: Invalid type marker byte 0xfa for expected field name (or END_OBJECT marker)"". Initial investigation is showing that this may have something to do with migrating a proxy of the npm registry. {noformat} 2016-12-28 10:46:57,331-0500 DEBUG [plan-executor-5-thread-2] admin com.sonatype.nexus.migration.client.RepositoryChangelogClient - Fetching changelog from: http://e1djnsvap01.ert.com:8083/nexus/service/siesta/migrationagent 2016-12-28 10:46:58,486-0500 INFO [plan-executor-5-thread-2] admin com.sonatype.nexus.migration.client.http.MigrationRequestMonitorImpl - Upgrade HTTP connection indefinite retry false 2016-12-28 10:46:58,524-0500 WARN [plan-executor-5-thread-2] admin com.sonatype.nexus.migration.repository.ProcessChangesStep - Process changes failed javax.ws.rs.client.ResponseProcessingException: javax.ws.rs.ProcessingException: com.fasterxml.jackson.databind.JsonMappingException: Invalid type marker byte 0xfa for expected field name (or END_OBJECT marker) at [Source: java.io.BufferedInputStream@12cd19c8; line: -1, column: 610212] at [Source: java.io.BufferedInputStream@12cd19c8; line: -1, column: 610211] (through reference chain: java.util.ArrayList[40]->com.sonatype.nexus.migration.client.ChangeEntryXO[""change""]->com.sonatype.nexus.migration.client.ChangeDetailXO[""asset""]->com.sonatype.nexus.migration.client.AssetDetailXO[""attributes""]) at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:141) [na:na] at org.jboss.resteasy.client.jaxrs.internal.proxy.extractors.BodyEntityExtractor.extractEntity(BodyEntityExtractor.java:59) [na:na] at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:104) [na:na] at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:64) [na:na] at com.sonatype.nexus.migration.client.$Proxy190.get(Unknown Source) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at sun.reflect.GeneratedMethodAccessor433.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_77] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_77] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:233) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:141) [na:na] at com.sonatype.nexus.migration.client.RepositoryChangelogClient$1.get(RepositoryChangelogClient.groovy:173) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.client.RepositoryChangelogClient$ChangelogConnection$get.call(Unknown Source) [na:na] at com.sonatype.nexus.migration.repository.ProcessChangesStep$_after_closure3$_closure4.doCall(ProcessChangesStep.groovy:351) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.repository.ProcessChangesStep$_after_closure3$_closure4.doCall(ProcessChangesStep.groovy) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at sun.reflect.GeneratedMethodAccessor431.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_77] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_77] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) [na:na] at groovy.lang.Closure.call(Closure.java:414) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) [groovy-all:2.4.7] at com.sun.proxy.$Proxy200.get(Unknown Source) [na:na] at com.sonatype.nexus.migration.repository.BufferingIterator.fillBuffer(BufferingIterator.java:52) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.repository.BufferingIterator.ensureBufferFilled(BufferingIterator.java:47) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.repository.BufferingIterator.hasNext(BufferingIterator.java:35) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.google.common.collect.Iterators$PeekingImpl.hasNext(Iterators.java:1105) [com.google.guava:20.0.0] at java_util_Iterator$hasNext$0.call(Unknown Source) [na:na] at com.sonatype.nexus.migration.repository.ProcessChangesStep.sync(ProcessChangesStep.groovy:244) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.repository.ProcessChangesStep$sync.callCurrent(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:158) [na:na] at com.sonatype.nexus.migration.repository.ProcessChangesStep.doRun(ProcessChangesStep.groovy:147) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.plan.Step.run(Step.groovy:271) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.plan.Step$run$1.call(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [na:na] at com.sonatype.nexus.migration.plan.Step$run$1.call(Unknown Source) [na:na] at com.sonatype.nexus.migration.plan.StepExecutor.runSync(StepExecutor.groovy:168) [na:na] at sun.reflect.GeneratedMethodAccessor270.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_77] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_77] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:384) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) [na:na] at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166) [na:na] at com.sonatype.nexus.migration.plan.StepExecutor$_runAsync_closure1.doCall(StepExecutor.groovy:197) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.plan.StepExecutor$_runAsync_closure1.doCall(StepExecutor.groovy) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at sun.reflect.GeneratedMethodAccessor289.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_77] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_77] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) [na:na] at groovy.lang.Closure.call(Closure.java:414) [groovy-all:2.4.7] at groovy.lang.Closure.call(Closure.java:408) [groovy-all:2.4.7] at groovy.lang.Closure.run(Closure.java:495) [groovy-all:2.4.7] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_77] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_77] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] Caused by: javax.ws.rs.ProcessingException: com.fasterxml.jackson.databind.JsonMappingException: Invalid type marker byte 0xfa for expected field name (or END_OBJECT marker) at [Source: java.io.BufferedInputStream@12cd19c8; line: -1, column: 610212] at [Source: java.io.BufferedInputStream@12cd19c8; line: -1, column: 610211] (through reference chain: java.util.ArrayList[40]->com.sonatype.nexus.migration.client.ChangeEntryXO[""change""]->com.sonatype.nexus.migration.client.ChangeDetailXO[""asset""]->com.sonatype.nexus.migration.client.AssetDetailXO[""attributes""]) at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readFrom(ClientResponse.java:285) [na:na] at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readEntity(ClientResponse.java:181) [na:na] at org.jboss.resteasy.specimpl.BuiltResponse.readEntity(BuiltResponse.java:213) [na:na] at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:105) [na:na] ... 67 common frames omitted Caused by: com.fasterxml.jackson.databind.JsonMappingException: Invalid type marker byte 0xfa for expected field name (or END_OBJECT marker) at [Source: java.io.BufferedInputStream@12cd19c8; line: -1, column: 610212] at [Source: java.io.BufferedInputStream@12cd19c8; line: -1, column: 610211] (through reference chain: java.util.ArrayList[40]->com.sonatype.nexus.migration.client.ChangeEntryXO[""change""]->com.sonatype.nexus.migration.client.ChangeDetailXO[""asset""]->com.sonatype.nexus.migration.client.AssetDetailXO[""attributes""]) at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:339) [com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:299) [com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapAndThrow(BeanDeserializerBase.java:1511) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:262) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125) [na:na] at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:490) [na:na] at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:95) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:260) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125) [na:na] at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:490) [na:na] at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:95) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:260) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125) [na:na] at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:277) [na:na] at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:249) [na:na] at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:26) [na:na] at com.fasterxml.jackson.databind.ObjectReader._bind(ObjectReader.java:1534) [com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:944) [com.fasterxml.jackson.core.jackson-databind:2.7.1] at com.fasterxml.jackson.jaxrs.base.ProviderBase.readFrom(ProviderBase.java:811) [na:na] at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.readFrom(AbstractReaderInterceptorContext.java:61) [na:na] at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:53) [na:na] at org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor.aroundReadFrom(GZIPDecodingInterceptor.java:59) [na:na] at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:55) [na:na] at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readFrom(ClientResponse.java:251) [na:na] ... 70 common frames omitted Caused by: com.fasterxml.jackson.core.JsonParseException: Invalid type marker byte 0xfa for expected field name (or END_OBJECT marker) at [Source: java.io.BufferedInputStream@12cd19c8; line: -1, column: 610212] at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1586) [com.fasterxml.jackson.core.jackson-core:2.7.1] at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:521) [na:na] at com.fasterxml.jackson.dataformat.smile.SmileParser._handleFieldName(SmileParser.java:1572) [na:na] at com.fasterxml.jackson.dataformat.smile.SmileParser.nextToken(SmileParser.java:587) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.mapObject(UntypedObjectDeserializer.java:637) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.deserialize(UntypedObjectDeserializer.java:496) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.mapObject(UntypedObjectDeserializer.java:638) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.deserialize(UntypedObjectDeserializer.java:496) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.mapObject(UntypedObjectDeserializer.java:653) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.deserialize(UntypedObjectDeserializer.java:496) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.mapObject(UntypedObjectDeserializer.java:629) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.deserialize(UntypedObjectDeserializer.java:496) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.mapObject(UntypedObjectDeserializer.java:638) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.deserialize(UntypedObjectDeserializer.java:496) [na:na] at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringMap(MapDeserializer.java:495) [na:na] at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:341) [na:na] at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:26) [na:na] at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:490) [na:na] at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:95) [na:na] at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:260) [na:na] ... 90 common frames omitted 2016-12-28 10:46:58,528-0500 DEBUG [plan-executor-5-thread-2] admin com.sonatype.nexus.migration.plan.StepExecutor - Step finished: Step(name:Process changes, phase:SYNC) 2016-12-28 10:46:58,529-0500 INFO [plan-executor-5-thread-4] admin com.sonatype.nexus.migration.plan.StepExecutor - Step not runnable: Step(name:End phase: SYNC, phase:SYNC) {noformat}",2 +"NEXUS-11997","12/30/2016 15:27:24","provide guidance on using Amazon EFS with Nexus 3","*Background* Customers want to use Amazon EFS with Nexus 3. Our performance testing has associated significant slowdowns with EFS, and ElasticSearch documentation recommends against it. (See below.) *Acceptance* * Update documentation and/or KB articles to make it clear EFS is potentially troublesome. * Consider putting this on the Sonatype system requirements. ",1 +"NEXUS-12002","01/03/2017 16:42:07","Maven publish indexes task fails to run if repository's layout policy is ""strict""","Create a maven proxy repository in Nexus with the ""layout policy"" of ""strict"" (the default). Then try and run a ""publish indexes"" task agains it. No outbound connections to the remote server will be seen. Change the ""layout policy"" to ""permissive"". Then run ""publish indexes"" again. This time it will work.",2 +"NEXUS-12010","01/04/2017 19:26:47","Logging in from top level search errors and hides admin menu button","While on search either the top level ""Search"" or one of the children (eg. ""Custom"") if you login you get an error. Login happens but subsequently (on post-login refresh), the admin menu button does not appear. The error seems to be different depending on browser (I tried), but errors regardless. See below. This may seem familiar because of NEXUS-9087 but the result is different. Since that issue was also noted in 3.2, I am filing distinctly for triage. If they are found to be the same, we can merge them. In my quick attempt, this prevents me from seeing NEXUS-9087 so I believe if not the same, this should be addressed first. Workaround is to not login from search (from welcome or component browse). JS Error from Chrome: {code} Uncaught TypeError: Cannot read property 'down' of undefined nexus-coreui-plugin-prod.js?_v=3.3.0-SNAPSHOT&_dc=1483547980614:1 at j.showHideLimitMessage (nexus-coreui-plugin-prod.js?_v=3.3.0-SNAPSHOT&_dc=1483547980614:1) at j. (nexus-coreui-plugin-prod.js?_v=3.3.0-SNAPSHOT&_dc=1483547980614:1) at A.fire (baseapp-prod.js?_v=3.3.0-SNAPSHOT&_dc=1483547980614:1) at j.continueFireEvent (baseapp-prod.js?_v=3.3.0-SNAPSHOT&_dc=1483547980614:1) at j.fireEventArgs (baseapp-prod.js?_v=3.3.0-SNAPSHOT&_dc=1483547980614:1) at j.a.fireEventArgs (baseapp-prod.js?_v=3.3.0-SNAPSHOT&_dc=1483547980614:1) at j.fireEvent (baseapp-prod.js?_v=3.3.0-SNAPSHOT&_dc=1483547980614:1) at j.k.on.single (baseapp-prod.js?_v=3.3.0-SNAPSHOT&_dc=1483547980614:1) at j. (baseapp-prod.js?_v=3.3.0-SNAPSHOT&_dc=1483547980614:1) at A.fire (baseapp-prod.js?_v=3.3.0-SNAPSHOT&_dc=1483547980614:1) {code} JS Errors from FF: {code} no element found session:1:1 TypeError: a.getFeature(...) is undefined[Learn More] nexus-coreui-plugin-prod.js:1:443919 .showHideLimitMessage http://localhost:8081/static/rapture/nexus-coreui-plugin-prod.js:1:443919 .init/< http://localhost:8081/static/rapture/nexus-coreui-plugin-prod.js:1:442511 .fire http://localhost:8081/static/rapture/baseapp-prod.js:1:111367 .continueFireEvent http://localhost:8081/static/rapture/baseapp-prod.js:1:127325 .fireEventArgs http://localhost:8081/static/rapture/baseapp-prod.js:1:127110 .monitor/a.fireEventArgs http://localhost:8081/static/rapture/baseapp-prod.js:1:977539 .fireEvent http://localhost:8081/static/rapture/baseapp-prod.js:1:126955 .loadToPrefetch/< http://localhost:8081/static/rapture/baseapp-prod.js:1:805907 .createSingle/< http://localhost:8081/static/rapture/baseapp-prod.js:1:111970 .fire http://localhost:8081/static/rapture/baseapp-prod.js:1:111367 .continueFireEvent http://localhost:8081/static/rapture/baseapp-prod.js:1:127325 .fireEventArgs http://localhost:8081/static/rapture/baseapp-prod.js:1:127110 .monitor/a.fireEventArgs http://localhost:8081/static/rapture/baseapp-prod.js:1:977539 .fireEvent http://localhost:8081/static/rapture/baseapp-prod.js:1:126955 .onProxyPrefetch http://localhost:8081/static/rapture/baseapp-prod.js:1:807514 .processResponse http://localhost:8081/static/rapture/baseapp-prod.js:1:786270 .createRequestCallback/< http://localhost:8081/static/rapture/baseapp-prod.js:1:1141688 Ext.Function.bind/< http://localhost:8081/static/rapture/baseapp-prod.js:1:26049 .runCallback http://localhost:8081/static/rapture/baseapp-prod.js:1:1194733 .onData http://localhost:8081/static/rapture/baseapp-prod.js:1:1195036 .callback http://localhost:8081/static/rapture/baseapp-prod.js:1:81021 .onComplete http://localhost:8081/static/rapture/baseapp-prod.js:1:375005 .onStateChange http://localhost:8081/static/rapture/baseapp-prod.js:1:374348 Ext.Function.bind/< http://localhost:8081/static/rapture/baseapp-prod.js:1:26271 {code}",2 +"NEXUS-12017","01/05/2017 15:47:19","Upgrade fails with NPE if user has a group repository that contains only staging repositories","A user has a group repository that contains only staging repositories: {code:XML} Test_Profile Test Profile org.sonatype.nexus.proxy.repository.GroupRepository maven2 IN_SERVICE 15 true true true READ_ONLY true file test-1001 {code} The upgrade wizard allows this group repository to be selected (see screenshot). And then the upgrade subsequently fails with an NPE because the group repository cannot be found. Note: I had to patch the server to add extra logging to find out what repository caused this problem, because the repository ID was not printed in the log. {noformat} 2017-01-05 09:40:18,254-0600 WARN [plan-executor-8-thread-3] admin com.sonatype.nexus.migration.repository.RepositoryPrepareStep - Prepare repository for upgrade: BNPPF_Local_Assets_Snapshots failed org.sonatype.goodies.common.MultipleFailures$MultipleFailuresException: Failed to validate facets; 1 failure at org.sonatype.goodies.common.MultipleFailures.maybePropagate(MultipleFailures.java:95) [org.sonatype.goodies.common:2.2.3] at org.sonatype.nexus.repository.manager.internal.RepositoryImpl.validate(RepositoryImpl.java:171) [na:na] at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.update(RepositoryManagerImpl.java:306) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [org.sonatype.nexus.common:3.2.0.01] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [org.sonatype.nexus.common:3.2.0.01] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [org.sonatype.nexus.common:3.2.0.01] at org.sonatype.nexus.repository.manager.RepositoryManager$update$4.call(Unknown Source) [na:na] at com.sonatype.nexus.migration.repository.RepositoryPrepareStep.allowWrite(RepositoryPrepareStep.groovy:155) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at sun.reflect.GeneratedMethodAccessor362.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_102] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_102] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166) [groovy-all:2.4.7] at com.sonatype.nexus.migration.repository.RepositoryPrepareStep.doRun(RepositoryPrepareStep.groovy:134) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.plan.Step.run(Step.groovy:271) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.plan.Step$run$1.call(Unknown Source) [na:na] at com.sonatype.nexus.migration.plan.StepExecutor.runSync(StepExecutor.groovy:168) [na:na] at sun.reflect.GeneratedMethodAccessor294.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_102] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_102] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:384) [groovy-all:2.4.7] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166) [groovy-all:2.4.7] at com.sonatype.nexus.migration.plan.StepExecutor$_runAsync_closure1.doCall(StepExecutor.groovy:197) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.plan.StepExecutor$_runAsync_closure1.doCall(StepExecutor.groovy) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at sun.reflect.GeneratedMethodAccessor303.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_102] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_102] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.7] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) [groovy-all:2.4.7] at groovy.lang.Closure.call(Closure.java:414) [groovy-all:2.4.7] at groovy.lang.Closure.call(Closure.java:408) [groovy-all:2.4.7] at groovy.lang.Closure.run(Closure.java:495) [groovy-all:2.4.7] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_102] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_102] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_102] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_102] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_102] Suppressed: java.lang.NullPointerException: null at org.sonatype.nexus.repository.group.GroupFacetImpl.validateGroupDoesNotContainItself(GroupFacetImpl.java:124) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.group.GroupFacetImpl.doValidate(GroupFacetImpl.java:107) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.FacetSupport.validate(FacetSupport.java:113) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [org.sonatype.nexus.common:3.2.0.01] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [org.sonatype.nexus.common:3.2.0.01] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [org.sonatype.nexus.common:3.2.0.01] at org.sonatype.nexus.repository.manager.internal.RepositoryImpl.validate(RepositoryImpl.java:160) [na:na] ... 42 common frames omitted {noformat}",2 +"NEXUS-12020","01/05/2017 19:08:15","LDAP cache entries do not expire properly","Map an LDAP user into Nexus 3, and log in as this user. Change the user's LDAP password. Don't log out of Nexus, instead restart the web browser. Then wait 5 minutes for the cache entry to expire, and try the login again. It won't work with the new password, you still need to use the old password. Users have reported waiting over 24 hours, and still the old password works. It is necessary to manually clear out the LDAP cache in Nexus 3 to fix this. Note that if you do log out of the UI the cache entry is cleared, and the new password will work the next time.",3 +"NEXUS-12030","01/06/2017 19:33:31","Schedule task prompts for discarding changes after change of day","I noticed that if I have a weekly scheduled task saved if I go in to edit the day it runs, when I save, the changes save however, the discard button is still enabled and when I try and navigate away I get prompted to discard. If I do or click the discard button, it reverts the change, however, when I reload the task the change is saved. Since the save works, am marking minor, however, it is pretty confusing. Repro steps: 1) Create scheduled task (any afaik) filling in required fields. For frequency select weekly, any start time and pick a day (any afaik). Save. 2) Reselect the task (it goes to the list). 3) Edit the day from whatever you picked to another day. Save. BUG: Discard button is still enabled. 4) Click away, for example to ""Nodes"". BUG: Prompt occurs for discard or go back. I didn't check older NX3 or NX2 at this time.",1 +"NEXUS-12036","01/09/2017 16:05:45","NXRM3 does not use its SSL truststore for redirects","Configure Nexus to go through an http proxy server that rewrites remote site certificates using a private certificate. Trust the remote certificate in Nexus ( add to SSL certificates UI as a trusted cert ). When a request reaches the remote, the response may ask for a 302 redirect to a different host. Nexus trusts the SSL certificate of the first host. When Nexus follows the 302 redirect, and gets a response, it will not trust the response and fail with PKIX errors as expected. Go to the SSL UI, and add the certificate being returned from the second host manually using ""load from server"" and the host name of the redirect (in my case this was dseasb33srnrn.cloudfront.net). The outbound requests will still fail with SSL handshake errors because the truststore is not used for the 302 redirect. Example remote hosts that perform 302 redirects as normal course are as [https://registry-1.docker.io|https://registry-1.docker.io/] or [https://www.nuget.org|https://www.nuget.org/] - so at least docker and nuget proxy repositories are affected. h4. Diagnosis Set the logger  org.sonatype.nexus.httpclient.outbound to level DEBUG Repeat the build requests into nexus that cause this problem. The logger will show you the different hosts that outbound requests are being 3xx redirected to.  {noformat}  2017-09-12 10:12:29,327+0100 DEBUG [qtp1716963365-970] admin org.sonatype.nexus.httpclient.outbound - [https://www.nuget.org/api/v2/package/jQuery/3.1.1] > GET /api/v2/package/jQuery/3.1.1 HTTP/1.1 2017-09-12 10:12:29,421+0100 DEBUG [qtp1716963365-970] admin org.sonatype.nexus.httpclient.outbound - [https://www.nuget.org/api/v2/package/jQuery/3.1.1] < HTTP/1.1 302 Found @ 104.6 ms 2017-09-12 10:12:29,421+0100 DEBUG [qtp1716963365-970] admin org.apache.http.impl.client.DefaultRedirectStrategy - Redirect requested to location 'https://api.nuget.org/packages/jquery.3.1.1.nupkg' 2017-09-12 10:12:29,421+0100 DEBUG [qtp1716963365-970] admin org.sonatype.nexus.httpclient.outbound - [https://api.nuget.org/packages/jquery.3.1.1.nupkg] > GET /packages/jquery.3.1.1.nupkg HTTP/1.1 2017-09-12 10:12:29,530+0100 DEBUG [qtp1716963365-970] admin org.sonatype.nexus.internal.httpclient.SharedHttpClientConnectionManager - Connection released: [id: 198][route: \\{tls}->http://165.225.80.36:80->https://api.nuget.org:443][total kept alive: 1; route allocated: 0 of 20; total allocated: 1 of 200] 2017-09-12 10:12:29,530+0100 INFO [qtp1716963365-970] admin org.sonatype.nexus.repository.httpclient.internal.HttpClientFacetImpl - Repository status for nuget.org-proxy changed from AVAILABLE to UNAVAILABLE - reason javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target for [https://www.nuget.org|https://www.nuget.org/]{noformat} Compare the serial number of certificates already added in your SSL Certificates truststore to the certificates of all the redirected hostnames related to the PKIX error. If there are differences then you have verified this is the problem. A command to do this is: {noformat} keytool -printcert -sslserver : | grep Serial{noformat} h4. Expected If the Use Nexus Truststore option is enabled for a repository, then all TLS based hosts that might be encountered for 302/301/307 redirects fetching content from a proxy repository remote URL should consult the Nexus truststore for certificate verification, even if the hostname and port is different from the initial request. h4. Workaround It seems you can avoid the problem by importing the HTTP proxy server root certificate or redirect host certificate into a custom truststore. Then Nexus will implicitly trust any remote signed by that certificate, including redirected hosts. Follow the directions here: https://help.sonatype.com/repomanager3/security/configuring-ssl#ConfiguringSSL-OutboundSSL-TrustingSSLCertificatesUsingKeytool 1. Make a copy of JRE cacerts file 2. Import the certificates from the redirect hosts into it as trusted cert entries. Determine the redirect hosts by examining the DEBUG log statements from the org.sonatype.nexus.httpclient.outbound logger when the PKIX errors are reproduced inside of nexus.log 3. Specify to use the modified cacerts file as the JVM truststore for Nexus by specifying system properties inside bin/nexus.vmoptions. h4. Known SSL Certificates That May Require Explicit Import Into A Custom JVM Truststore h5. Nuget.org - [https://az320820.vo.msecnd.net|https://az320820.vo.msecnd.net/] or [https://api.nuget.org|https://api.nuget.org/] h5. Pypi - [https://files.pythonhosted.org|https://files.pythonhosted.org/] h5. Docker - https://production.cloudflare.docker.com/ - cloudflare.net - auth.docker.io",3 +"NEXUS-12040","01/10/2017 14:31:37","Faulty handling of query timeouts in OrientAsyncHelper.QueueConsumingIterable","https://github.com/sonatype/nexus-internal/blob/c341bcc9311c122cc17d51df0abb30920b2fe33f/components/nexus-repository/src/main/java/org/sonatype/nexus/repository/storage/OrientAsyncHelper.java#L184 The {{queue.poll()}} invocation there yields no exception but {{null}} when the timeout elapses. This causes the following issues: # {{hasNext()}} returning {{true}} when in reality no element is available # {{next()}} returning a non-deterministic number of {{null}} elements tripping up processing of the query results, e.g. {noformat} 2017-01-10 15:09:20,084+0100 ERROR [qtp172586730-295] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Component.read, java-method: org.sonatype.nexus.coreui.ComponentComponent.read java.lang.IllegalArgumentException: expected one element but was: at com.google.common.collect.Iterators.getOnlyElement(Iterators.java:322) [com.google.guava:20.0.0] at com.google.common.collect.Iterables.getOnlyElement(Iterables.java:294) [com.google.guava:20.0.0] at org.sonatype.nexus.repository.browse.internal.BrowseServiceImpl.getCount(BrowseServiceImpl.java:192) [na:na] at org.sonatype.nexus.repository.browse.internal.BrowseServiceImpl.browseComponents(BrowseServiceImpl.java:95) [na:na] at org.sonatype.nexus.repository.browse.BrowseService$browseComponents.call(Unknown Source) [na:na] at org.sonatype.nexus.coreui.ComponentComponent.read(ComponentComponent.groovy:126) [na:na] {noformat} # {{next()}} failing with {{NoSuchElementException}} although the caller previously checked {{hasNext() == true}} ({{next()}} calls {{hasNext()}} again and can observe a different value than the caller, like the end-of-query sentinel), e.g. {noformat} Suppressed: java.util.NoSuchElementException: Iterator depleted at org.sonatype.nexus.repository.storage.OrientAsyncHelper$QueueConsumingIterable.next(OrientAsyncHelper.java:202) [na:na] at org.sonatype.nexus.repository.storage.OrientAsyncHelper$QueueConsumingIterable.next(OrientAsyncHelper.java:1) [na:na] at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:47) [com.google.guava:20.0.0] at org.sonatype.nexus.repository.maven.internal.PurgeUnusedSnapshotsFacetImpl.deleteUnusedSnapshotComponents(PurgeUnusedSnapshotsFacetImpl.java:165) [na:na] {noformat}",2 +"NEXUS-12057","01/10/2017 19:04:45","Poor performance from Nexus 3 ""purge unused snapshots"" task","The purge unused snapshot task runs very slowly against large numbers of components. This has caused database query timeouts, and triggered a secondary bug in the handling of those timeouts: NEXUS-12040 This may be similar to NEXUS-11614, so it's possible the fixes for that issue may be relevant to fixing this one. ",3 +"NEXUS-12062","01/11/2017 11:58:14","If-Modified-Since header fails with NPM proxy repository","The Nexus Repository OSS 3 (in Version 3.0.1-01) fails with the common HTTP header 'If-Modified-Since' for NPM repositories. The official NPM registry does support this header, thus Nexus should also support it. (see example requests in the attachment) Even when Nexus does not support a '304 Not Modified' response for this case, the normal '200 OK' response should be returned instead of a '404 Not Found'. This header appears when for example a HTTP proxy is used between the NPM client and Nexus repository, that tries to do HTTP caching. (I did not see any mentions of this in the Release Notes for the newer 3.x releases, thus I did not yet try the newer versions.)",2 +"NEXUS-12064","01/11/2017 14:30:48","JPQLGenerator.toJpqlLiteral NullPointerException for NuGet /Packages() resource as submitted by OctopusDeploy","An end user has reported that OctopusDeploy submitted the following query to their NuGet repository in Nexus 3: {noformat} /Packages()?$filter=(substringof('bellrock',tolower(Id))%20or%20((Title%20ne%20null)%20and%20substringof('bellrock',tolower(Title))))%20and%20(IsLatestVersion%20or%20IsAbsoluteLatestVersion)&$top=10 {noformat} This results in an NPE (see below). I'm not sure if something is wrong with this query or not, but even if something is wrong Nexus should not get an NPE. This problem can be reproduced by sending the above query to any NuGet repository in Nexus 3.2. {noformat} 2017-01-11 08:22:20,743-0600 INFO [elasticsearch[05AEC5B0-F7E55614-A1162F50-C7BD9DE1-DEBAD0A3][clusterService#updateTask][T#1]] *SYSTEM org.elasticsearch.cluster.routing.allocation - [05AEC5B0-F7E55614-A1162F50-C7BD9DE1-DEBAD0A3] Cluster health status changed from [RED] to [GREEN] (reason: [shards started [[f4f760a96600549fd806bd908b01b9d6ea5e3bb5][0]] ...]). 2017-01-11 08:23:21,699-0600 ERROR [qtp908176036-385] admin com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler - Unknown error java.lang.NullPointerException: null at org.odata4j.producer.jpa.JPQLGenerator.toJpqlLiteral(JPQLGenerator.java:93) [wrap_file__Users_rseddon_temp_nexus-3.2.0-01_system_org_sonatype_sisu_sisu-odata4j_0.0.7_sisu-odata4j-0.0.7.jar:0.0.0] at com.sonatype.nexus.repository.nuget.odata.ODataUtils$CaseInsensitiveJPQLGenerator.toJpqlLiteral(ODataUtils.java:332) [com.sonatype.nexus.plugins.nexus-repository-nuget:3.2.0.01] at com.sonatype.nexus.repository.nuget.odata.ODataUtils$CaseInsensitiveJPQLGenerator.toJpql(ODataUtils.java:311) [com.sonatype.nexus.plugins.nexus-repository-nuget:3.2.0.01] at org.odata4j.producer.jpa.JPQLGenerator.binaryCommonExpressionToJpql(JPQLGenerator.java:389) [wrap_file__Users_rseddon_temp_nexus-3.2.0-01_system_org_sonatype_sisu_sisu-odata4j_0.0.7_sisu-odata4j-0.0.7.jar:0.0.0] at org.odata4j.producer.jpa.JPQLGenerator.toJpql(JPQLGenerator.java:260) [wrap_file__Users_rseddon_temp_nexus-3.2.0-01_system_org_sonatype_sisu_sisu-odata4j_0.0.7_sisu-odata4j-0.0.7.jar:0.0.0] at org.odata4j.producer.jpa.JPQLGenerator.toJpql(JPQLGenerator.java:99) [wrap_file__Users_rseddon_temp_nexus-3.2.0-01_system_org_sonatype_sisu_sisu-odata4j_0.0.7_sisu-odata4j-0.0.7.jar:0.0.0] at com.sonatype.nexus.repository.nuget.odata.ODataUtils$CaseInsensitiveJPQLGenerator.toJpql(ODataUtils.java:324) [com.sonatype.nexus.plugins.nexus-repository-nuget:3.2.0.01] at org.odata4j.producer.jpa.JPQLGenerator.toJpql(JPQLGenerator.java:373) [wrap_file__Users_rseddon_temp_nexus-3.2.0-01_system_org_sonatype_sisu_sisu-odata4j_0.0.7_sisu-odata4j-0.0.7.jar:0.0.0] at org.odata4j.producer.jpa.JPQLGenerator.toJpql(JPQLGenerator.java:264) [wrap_file__Users_rseddon_temp_nexus-3.2.0-01_system_org_sonatype_sisu_sisu-odata4j_0.0.7_sisu-odata4j-0.0.7.jar:0.0.0] at org.odata4j.producer.jpa.JPQLGenerator.toJpql(JPQLGenerator.java:99) [wrap_file__Users_rseddon_temp_nexus-3.2.0-01_system_org_sonatype_sisu_sisu-odata4j_0.0.7_sisu-odata4j-0.0.7.jar:0.0.0] at com.sonatype.nexus.repository.nuget.odata.ODataUtils$CaseInsensitiveJPQLGenerator.toJpql(ODataUtils.java:324) [com.sonatype.nexus.plugins.nexus-repository-nuget:3.2.0.01] at org.odata4j.producer.jpa.JPQLGenerator.toJpql(JPQLGenerator.java:373) [wrap_file__Users_rseddon_temp_nexus-3.2.0-01_system_org_sonatype_sisu_sisu-odata4j_0.0.7_sisu-odata4j-0.0.7.jar:0.0.0] at org.odata4j.producer.jpa.JPQLGenerator.toJpql(JPQLGenerator.java:272) [wrap_file__Users_rseddon_temp_nexus-3.2.0-01_system_org_sonatype_sisu_sisu-odata4j_0.0.7_sisu-odata4j-0.0.7.jar:0.0.0] at org.odata4j.producer.jpa.JPQLGenerator.toJpql(JPQLGenerator.java:99) [wrap_file__Users_rseddon_temp_nexus-3.2.0-01_system_org_sonatype_sisu_sisu-odata4j_0.0.7_sisu-odata4j-0.0.7.jar:0.0.0] at com.sonatype.nexus.repository.nuget.odata.ODataUtils$CaseInsensitiveJPQLGenerator.toJpql(ODataUtils.java:324) [com.sonatype.nexus.plugins.nexus-repository-nuget:3.2.0.01] at org.odata4j.producer.jpa.JPQLGenerator.toJpql(JPQLGenerator.java:373) [wrap_file__Users_rseddon_temp_nexus-3.2.0-01_system_org_sonatype_sisu_sisu-odata4j_0.0.7_sisu-odata4j-0.0.7.jar:0.0.0] at org.odata4j.producer.jpa.JPQLGenerator.toJpql(JPQLGenerator.java:264) [wrap_file__Users_rseddon_temp_nexus-3.2.0-01_system_org_sonatype_sisu_sisu-odata4j_0.0.7_sisu-odata4j-0.0.7.jar:0.0.0] at com.sonatype.nexus.repository.nuget.odata.ODataUtils.query(ODataUtils.java:155) [com.sonatype.nexus.plugins.nexus-repository-nuget:3.2.0.01] at com.sonatype.nexus.repository.nuget.internal.NugetGalleryFacetImpl.queryFeed(NugetGalleryFacetImpl.java:204) [com.sonatype.nexus.plugins.nexus-repository-nuget:3.2.0.01] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) [org.sonatype.nexus.transaction:3.2.0.01] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) [org.sonatype.nexus.transaction:3.2.0.01] at com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyGalleryFacet.feed(NugetProxyGalleryFacet.java:208) [com.sonatype.nexus.plugins.nexus-repository-nuget:3.2.0.01] at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.feed(NugetFeedHandler.java:70) [com.sonatype.nexus.plugins.nexus-repository-nuget:3.2.0.01] at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.doHandle(NugetFeedHandler.java:50) [com.sonatype.nexus.plugins.nexus-repository-nuget:3.2.0.01] at com.sonatype.nexus.repository.nuget.internal.AbstractNugetHandler.handle(AbstractNugetHandler.java:47) [com.sonatype.nexus.plugins.nexus-repository-nuget:3.2.0.01] at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.handle(NugetFeedHandler.java:1) [com.sonatype.nexus.plugins.nexus-repository-nuget:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.start(Context.java:114) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:63) [org.sonatype.nexus.repository:3.2.0.01] {noformat}",1 +"NEXUS-12073","01/12/2017 21:53:25","Pulling from Docker group generates error unless read access assigned directly to member","Create a docker group repository, and put a docker hub proxy repository in this group. Disable anonymous access in Nexus 3. Then create a test user, and grant them read access to the docker group repository, but not to the docker hub proxy repository. They will not be able to pull any docker images through the group, they'll get a 404 response every time. If you grant them direct read access to the docker hub proxy then requests through the docker group repository will start working. I also tested this scenario with Maven repositories, and for those transitive privileges worked. I've attached a support zip file with my setup. ",2 +"NEXUS-12075","01/13/2017 13:21:59","PyPi packages are case sensitive and not correctly redirected","Having uploaded all the Flask package to my PyPi repository and its dependencies I am unable to use easy_install to install Flask. The following {code:} > easy_install Flask Searching for Flask Reading http://hostname/repository/my-pypi/simple/Flask/ Authenticating as admin for http://hostname/repository/my-pypi/simple/Flask/ (from .pypirc) Couldn't find index page for 'Flask' (maybe misspelled?) Scanning index of all packages (this may take a while) Reading http://hostname/repository/my-pypi/simple/ Authenticating as admin for http://hostname/repository/my-pypi/simple/ (from .pypirc) No local packages or working download links found for Flask error: Could not find suitable distribution for Requirement.parse('Flask') {code} fails because it cannot find the Flask module. The following {code:} >easy_install flask Searching for flask Reading http://hostname/repository/my-pypi/simple/flask/ Authenticating as admin for http://hostname/repository/my-pypi/simple/flask/ (from .pypirc) Downloading http://hostname/repository/my-pypi/packages/flask/0.12/Flask-0.12.tar.gz#md5=c1d30f51cff4a38f9454b23328a15c5a {code} will start to work as it can find the module as the search url has the lowercase ""f"". This will however eventually fail when it tries to install the dependency of Jinja2 due to the same reason as above. i.e it is looking for Jinja2 with a capital 'J', as Jinja2 is supplied as a dependency it is not easy to change it to ask for the lowercase j. Easy Install works when pointing to pypi.python.org. Pip works ok and can deal with the case issues, but the requirement to use easy_install is due to the integration with setuptools which relies on easy_install. This is using nexus 3.2.0-01. ",2 +"NEXUS-12076","01/13/2017 15:12:26","Upgrade wizard checks for hard link capability even though a different ingest method is chosen","If you choose the Download ingest method during migration, Nexus 3 still seems to perform filesystem checks for hardlinking. If the hardlinking is not possible, this fills the Nexus 3 log with stack traces for potentially every repo being migrated ( if the storage is not hard link capable). h3. Expected - do not perform hard-link checking if a different ingest method is chosen h3. Symptoms: Stack traces in the nexus 3 log look something like this for every repo: {noformat} 2017-01-13 06:25:18,946-0600 DEBUG [qtp186926425-621] admin com.sonatype.nexus.migration.repository.RepositoryPrepareStep - Configuring null: [repository:logic_Releases, blobStore:default, ingestMethod:DOWNLOAD, selectedRepositories:[logic_Releases]] 2017-01-13 06:25:18,947-0600 DEBUG [qtp186926425-621] admin com.sonatype.nexus.migration.repository.RepositoryPrepareStep - Configured Prepare repository for upgrade: logic_Releases ... 2017-01-13 06:25:19,136-0600 DEBUG [qtp186926425-621] admin com.sonatype.nexus.migration.repository.RepositoryPrepareStep - Initializing Prepare repository for upgrade: logic_Releases 2017-01-13 06:25:19,139-0600 DEBUG [qtp186926425-621] admin com.sonatype.nexus.migration.client.RepositoryClient - Fetching repository 'logic_Releases' detail from: http://localhost:10011/maven/service/siesta/migrationagent 2017-01-13 06:25:19,260-0600 DEBUG [qtp186926425-621] admin com.sonatype.nexus.migration.repository.RepositoryPrepareStep - Fetched repository details for logic_Releases: RepositoryClient$RepositoryDetailXO(id:logic_Releases, type:proxy, format:maven2, supported:true, storageDir:/orgname/mvn/data/nexus-repo-server-workspace/Enterprise/storage/logic_Releases) 2017-01-13 06:25:19,437-0600 DEBUG [qtp186926425-621] admin com.sonatype.nexus.migration.repository.IngestionValidationImpl - Unable to create hard link to /orgname/mvn/data/nexus-repo-server-workspace/Enterprise/storage/logic_Releases/.nexus/migration-ingestion-testfile.tmp org.sonatype.nexus.blobstore.api.BlobStoreException: java.nio.file.FileSystemException: /orgname/mvn/repo/nexus/blobs/default/content/tmp/cb2fef44-e6d5-4d1c-bc7c-d91f8e962e5d.6b97d8f6-b9a6-48d7-9d34-ba509365b17e.bytes -> /orgname/mvn/data/nexus-repo-server-workspace/Enterprise/storage/logic_Releases/.nexus/migration-ingestion-testfile.tmp: Invalid cross-device link at org.sonatype.nexus.blobstore.file.internal.FileBlobStore.create(FileBlobStore.java:290) [na:na] at org.sonatype.nexus.blobstore.file.internal.FileBlobStore.create(FileBlobStore.java:234) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_65] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrap.invoke(PojoMetaMethodSite.java:213) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:149) [na:na] at com.sonatype.nexus.migration.repository.IngestionValidationImpl.availableMethods(IngestionValidationImpl.groovy:101) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.repository.IngestionValidation$availableMethods.call(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) [na:na] at com.sonatype.nexus.migration.repository.RepositoryPrepareStep.doInit(RepositoryPrepareStep.groovy:97) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_65] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.7] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:384) [groovy-all:2.4.7] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:158) [na:na] at com.sonatype.nexus.migration.plan.Step$_init_closure2.doCall(Step.groovy:227) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.plan.Step$_init_closure2.doCall(Step.groovy) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_65] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.7] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.7] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) [groovy-all:2.4.7] at groovy.lang.Closure.call(Closure.java:414) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) [groovy-all:2.4.7] at com.sun.proxy.$Proxy193.run(Unknown Source) [org.sonatype.nexus.common:3.2.0.01] at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) [org.sonatype.nexus.common:3.2.0.01] at sun.reflect.GeneratedMethodAccessor183.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_65] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrap.invoke(PojoMetaMethodSite.java:213) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [na:na] at com.sonatype.nexus.migration.plan.Step.init(Step.groovy:216) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.plan.Step$init$0.call(Unknown Source) [3.2.0-01:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [na:na] at com.sonatype.nexus.migration.plan.Step$init$0.call(Unknown Source) [3.2.0-01:na] at com.sonatype.nexus.migration.plan.Plan.doInit(Plan.groovy:197) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_65] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.7] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:384) [groovy-all:2.4.7] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:158) [na:na] at com.sonatype.nexus.migration.plan.Plan$_init_closure4.doCall(Plan.groovy:182) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.plan.Plan$_init_closure4.doCall(Plan.groovy) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_65] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.7] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.7] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) [groovy-all:2.4.7] at groovy.lang.Closure.call(Closure.java:414) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) [groovy-all:2.4.7] at com.sun.proxy.$Proxy193.run(Unknown Source) [org.sonatype.nexus.common:3.2.0.01] at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) [org.sonatype.nexus.common:3.2.0.01] at sun.reflect.GeneratedMethodAccessor183.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_65] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrap.invoke(PojoMetaMethodSite.java:213) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [na:na] at com.sonatype.nexus.migration.plan.Plan.init(Plan.groovy:181) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.plan.Plan$init$0.call(Unknown Source) [3.2.0-01:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117) [na:na] at com.sonatype.nexus.migration.assistant.MigrationAssistantImpl.configure(MigrationAssistantImpl.groovy:241) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.assistant.MigrationAssistantImpl$$EnhancerByGuice$$b32bab41.CGLIB$configure$23() [3.2.0-01:na] at com.sonatype.nexus.migration.assistant.MigrationAssistantImpl$$EnhancerByGuice$$b32bab41$$FastClassByGuice$$cf8627da.invoke() [3.2.0-01:na] at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) [com.google.inject:4.1.0] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) [com.google.inject:4.1.0] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [org.sonatype.nexus.common:3.2.0.01] at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) [org.sonatype.nexus.common:3.2.0.01] at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) [org.sonatype.nexus.common:3.2.0.01] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) [com.google.inject:4.1.0] at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) [com.google.inject:4.1.0] at com.sonatype.nexus.migration.assistant.MigrationAssistantImpl$$EnhancerByGuice$$b32bab41.configure() [3.2.0-01:na] at com.sonatype.nexus.migration.assistant.MigrationAssistant$configure$0.call(Unknown Source) [3.2.0-01:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [na:na] at com.sonatype.nexus.migration.ui.AssistantComponent.configure(AssistantComponent.groovy:236) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] at com.sonatype.nexus.migration.ui.AssistantComponent$$EnhancerByGuice$$ee282dab.CGLIB$configure$23() [3.2.0-01:na] at com.sonatype.nexus.migration.ui.AssistantComponent$$EnhancerByGuice$$ee282dab$$FastClassByGuice$$80690a9.invoke() [3.2.0-01:na] at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) [com.google.inject:4.1.0] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) [com.google.inject:4.1.0] at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49) [com.palominolabs.metrics.guice:3.0.2] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) [com.google.inject:4.1.0] at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47) [com.palominolabs.metrics.guice:3.0.2] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) [com.google.inject:4.1.0] at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) [com.google.inject:4.1.0] at com.sonatype.nexus.migration.ui.AssistantComponent$$EnhancerByGuice$$ee282dab.configure() [3.2.0-01:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_65] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.2.0.01] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.2.0.01] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.2.0.01] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.2.0.01] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.2.0.01] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.2.0.01] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.extdirect:3.2.0.01] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.extdirect:3.2.0.01] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.extdirect:3.2.0.01] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.extdirect:3.2.0.01] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.extdirect:3.2.0.01] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:127) [org.sonatype.nexus.extdirect:3.2.0.01] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.1.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.2.0.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.2.0.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:112) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.2.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68) [org.sonatype.nexus.base:3.2.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:102) [org.sonatype.nexus.base:3.2.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98) [org.sonatype.nexus.base:3.2.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.1.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) [com.google.inject:4.1.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.2.0.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65] Caused by: java.nio.file.FileSystemException: /orgname/mvn/repo/nexus/blobs/default/content/tmp/cb2fef44-e6d5-4d1c-bc7c-d91f8e962e5d.6b97d8f6-b9a6-48d7-9d34-ba509365b17e.bytes -> /orgname/mvn/data/nexus-repo-server-workspace/Enterprise/storage/logic_Releases/.nexus/migration-ingestion-testfile.tmp: Invalid cross-device link at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91) [na:1.8.0_65] at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) [na:1.8.0_65] at sun.nio.fs.UnixFileSystemProvider.createLink(UnixFileSystemProvider.java:476) [na:1.8.0_65] at java.nio.file.Files.createLink(Files.java:1086) [na:1.8.0_65] at org.sonatype.nexus.blobstore.file.internal.SimpleFileOperations.hardLink(SimpleFileOperations.java:73) [na:na] at org.sonatype.nexus.blobstore.file.internal.FileBlobStore.lambda$1(FileBlobStore.java:235) [na:na] at org.sonatype.nexus.blobstore.file.internal.FileBlobStore.create(FileBlobStore.java:268) [na:na] ... 200 common frames omitted {noformat}",1 +"NEXUS-12077","01/13/2017 15:34:53","Auto-blocked proxy repository logs gigantic stack trace, doesn't say what was blocked, or why","When a repository is auto-blocked in Nexus 3 a very large stack trace is logged. The log message does not indicate why it was auto-blocked, nor does it indicate what repository was blocked. So it's pretty useless. Furthermore, this WARN with the stack is logged every single time a request comes into the proxy repository, which fills up the log. The log message should indicate which repository was auto-blocked. It should only be logged when the repository is first auto-blocked. The stack trace should be logged at DEBUG. {noformat} 2017-01-13 00:14:30,980-0500 WARN [qtp1039614009-99] hudson org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyFacet - Failed to fetch: commons-io/commons-io/maven-metadata.xml java.io.IOException: Remote Auto Blocked at org.sonatype.nexus.repository.httpclient.internal.BlockingHttpClient.filter(BlockingHttpClient.java:84) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.execute(FilteredHttpClientSupport.java:71) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.execute(ProxyFacetSupport.java:290) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:230) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:210) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyFacet.fetch(MavenProxyFacet.java:73) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:166) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:49) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:43) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.start(Context.java:114) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:63) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.group.GroupHandler.getAll(GroupHandler.java:147) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.maven.internal.group.MergingGroupHandler.doGet(MergingGroupHandler.java:70) [org.sonatype.nexus.plugins.nexus-repository-maven:3.2.0.01] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:79) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:43) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.start(Context.java:114) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:63) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.group.GroupHandler.getAll(GroupHandler.java:147) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.maven.internal.group.MergingGroupHandler.doGet(MergingGroupHandler.java:70) [org.sonatype.nexus.plugins.nexus-repository-maven:3.2.0.01] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:79) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:43) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Context.start(Context.java:114) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:63) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.2.0.01] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.2.0.01] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.2.0.01] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.2.0.01] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.1.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.2.0.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.2.0.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.repository.httpbridge.internal.ExhaustRequestFilter.doFilter(ExhaustRequestFilter.java:71) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.2.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:112) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.2.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68) [org.sonatype.nexus.base:3.2.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:102) [org.sonatype.nexus.base:3.2.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98) [org.sonatype.nexus.base:3.2.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.1.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) [com.google.inject:4.1.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.2.0.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] {noformat}",1 +"NEXUS-12081","01/13/2017 19:33:25","Upgrade never completes if source repository has zero length files in it","If a source repository has zero length files in it upgrade never completes, the ""continue"" button at the end of migration is never enabled. Zero length files can be created in a Nexus 2 repository if the disk fills up, or the process runs out of file handles. On the Nexus 3 side we see: {noformat} 2017-01-13 13:20:31,132-0600 WARN [change-processing-9-thread-6] admin com.sonatype.nexus.migration.client.http.MigrationRequestMonitorImpl - Request failed: input contained no data 2017-01-13 13:20:31,132-0600 INFO [change-processing-9-thread-6] admin com.sonatype.nexus.migration.client.http.MigrationRequestMonitorImpl - Delaying until Fri Jan 13 13:20:36 CST 2017 2017-01-13 13:20:32,657-0600 DEBUG [pool-47-thread-1] admin com.sonatype.nexus.migration.ui.ProgressComponent - read SYNC 2017-01-13 13:20:33,366-0600 DEBUG [pool-47-thread-2] admin com.sonatype.nexus.migration.ui.ProgressComponent - read SYNC 2017-01-13 13:20:35,362-0600 DEBUG [pool-47-thread-4] admin com.sonatype.nexus.migration.ui.ProgressComponent - read SYNC 2017-01-13 13:20:36,156-0600 WARN [change-processing-9-thread-6] admin com.sonatype.nexus.migration.client.http.MigrationRequestMonitorImpl - Leaving failure mode 2017-01-13 13:20:36,162-0600 WARN [change-processing-9-thread-6] admin com.sonatype.nexus.migration.client.http.MigrationRequestMonitorImpl - Request failed: input contained no data 2017-01-13 13:20:36,162-0600 INFO [change-processing-9-thread-6] admin com.sonatype.nexus.migration.client.http.MigrationRequestMonitorImpl - Delaying until Fri Jan 13 13:20:41 CST 2017 {noformat} On Nexus 2 the request log shows it is asking for the zero length file over and over again: {noformat} 127.0.0.1 - - [13/Jan/2017:13:18:30 -0600] ""GET /nexus/service/siesta/migrationagent/repository-content/snapshots/org%2Fsonatype%2Fproject%2F1.1.1-SNAPSHOT%2Fproject-1.1.1-20170113.191359-2.pom HTTP/1.1"" 200 0 2 127.0.0.1 - - [13/Jan/2017:13:18:35 -0600] ""GET /nexus/service/siesta/migrationagent/repository-content/snapshots/org%2Fsonatype%2Fproject%2F1.1.1-SNAPSHOT%2Fproject-1.1.1-20170113.191359-2.pom HTTP/1.1"" 200 0 2 127.0.0.1 - - [13/Jan/2017:13:18:40 -0600] ""GET /nexus/service/siesta/migrationagent/repository-content/snapshots/org%2Fsonatype%2Fproject%2F1.1.1-SNAPSHOT%2Fproject-1.1.1-20170113.191359-2.pom HTTP/1.1"" 200 0 2 127.0.0.1 - - [13/Jan/2017:13:18:45 -0600] ""GET /nexus/service/siesta/migrationagent/repository-content/snapshots/org%2Fsonatype%2Fproject%2F1.1.1-SNAPSHOT%2Fproject-1.1.1-20170113.191359-2.pom HTTP/1.1"" 200 0 2 127.0.0.1 - - [13/Jan/2017:13:18:50 -0600] ""GET /nexus/service/siesta/migrationagent/repository-content/snapshots/org%2Fsonatype%2Fproject%2F1.1.1-SNAPSHOT%2Fproject-1.1.1-20170113.191359-2.pom HTTP/1.1"" 200 0 2 127.0.0.1 - - [13/Jan/2017:13:18:55 -0600] ""GET /nexus/service/siesta/migrationagent/repository-content/snapshots/org%2Fsonatype%2Fproject%2F1.1.1-SNAPSHOT%2Fproject-1.1.1-20170113.191359-2.pom HTTP/1.1"" 200 0 2 127.0.0.1 - - [13/Jan/2017:13:19:00 -0600] ""GET /nexus/service/siesta/migrationagent/repository-content/snapshots/org%2Fsonatype%2Fproject%2F1.1.1-SNAPSHOT%2Fproject-1.1.1-20170113.191359-2.pom HTTP/1.1"" 200 0 2 {noformat} Deleting the zero length files from repository storage in Nexus 2 allows the upgrade to continue. h3. Expected In most cases, a zero length file is not valid ( created due to out of disk for example, or some other error ) However we cannot guess why a zero length file exists. Maybe it is a marker file of some sort. The consensus seems to be that zero length files should be migrated and Nexus 3 should handle them. Add a single INFO log message per migrated component/asset on the nexus 3 side stating the full path and repo being processed, and that that path was zero-length. Do not confuse a zero length file in nexus 2 with a failure to download all bytes from Nexus 2. ",1 +"NEXUS-12091","01/17/2017 18:10:49","HTTP Proxy host name setting accepts invalid characters such as space which can prevent server start","The host name filed of Nexus 3 http proxy settings accepts spaces. It should not. Worse, once you've set a host name with spaces in it it prevents startup of the server. {noformat} 2017-01-17 11:34:22,544-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - java.lang.RuntimeException: org.sonatype.goodies.common.MultipleFailures$MultipleFailuresException: Failed to start 1 components; 1 failure 2017-01-17 11:34:22,544-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at com.google.common.base.Throwables.propagate(Throwables.java:240) 2017-01-17 11:34:22,544-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:195) 2017-01-17 11:34:22,545-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429) 2017-01-17 11:34:22,545-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) 2017-01-17 11:34:22,545-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at java.lang.Thread.run(Thread.java:745) 2017-01-17 11:34:22,545-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - Caused by: org.sonatype.goodies.common.MultipleFailures$MultipleFailuresException: Failed to start 1 components; 1 failure 2017-01-17 11:34:22,545-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.goodies.common.MultipleFailures.maybePropagate(MultipleFailures.java:95) 2017-01-17 11:34:22,545-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.goodies.lifecycle.LifecycleManager.doStart(LifecycleManager.java:109) 2017-01-17 11:34:22,546-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.internal.repository.RepositoryLifecycle.doStart(RepositoryLifecycle.java:56) 2017-01-17 11:34:22,546-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.goodies.lifecycle.LifecycleSupport.start(LifecycleSupport.java:104) 2017-01-17 11:34:22,546-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:154) 2017-01-17 11:34:22,546-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:94) 2017-01-17 11:34:22,546-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:185) 2017-01-17 11:34:22,546-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - ... 3 more 2017-01-17 11:34:22,546-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - Suppressed: org.sonatype.goodies.common.MultipleFailures$MultipleFailuresException: Failed to initialize facets; 1 failure 2017-01-17 11:34:22,547-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.goodies.common.MultipleFailures.maybePropagate(MultipleFailures.java:95) 2017-01-17 11:34:22,547-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.repository.manager.internal.RepositoryImpl.init(RepositoryImpl.java:195) 2017-01-17 11:34:22,547-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) 2017-01-17 11:34:22,547-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) 2017-01-17 11:34:22,547-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) 2017-01-17 11:34:22,547-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.newRepository(RepositoryManagerImpl.java:157) 2017-01-17 11:34:22,547-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.doStart(RepositoryManagerImpl.java:218) 2017-01-17 11:34:22,547-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) 2017-01-17 11:34:22,547-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) 2017-01-17 11:34:22,547-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) 2017-01-17 11:34:22,548-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) 2017-01-17 11:34:22,548-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.goodies.lifecycle.LifecycleManager.doStart(LifecycleManager.java:102) 2017-01-17 11:34:22,548-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - ... 8 more 2017-01-17 11:34:22,548-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - Suppressed: java.lang.IllegalArgumentException: Host name may not contain blanks 2017-01-17 11:34:22,548-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.apache.http.util.Args.containsNoBlanks(Args.java:84) 2017-01-17 11:34:22,548-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.apache.http.HttpHost.(HttpHost.java:80) 2017-01-17 11:34:22,549-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.apache.http.HttpHost.(HttpHost.java:99) 2017-01-17 11:34:22,549-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.httpclient.config.ConfigurationCustomizer.apply(ConfigurationCustomizer.java:156) 2017-01-17 11:34:22,549-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.httpclient.config.ConfigurationCustomizer.customize(ConfigurationCustomizer.java:117) 2017-01-17 11:34:22,549-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.internal.httpclient.HttpClientManagerImpl.prepare(HttpClientManagerImpl.java:232) 2017-01-17 11:34:22,549-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) 2017-01-17 11:34:22,549-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) 2017-01-17 11:34:22,550-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) 2017-01-17 11:34:22,550-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.internal.httpclient.HttpClientManagerImpl.create(HttpClientManagerImpl.java:210) 2017-01-17 11:34:22,550-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) 2017-01-17 11:34:22,550-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) 2017-01-17 11:34:22,550-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) 2017-01-17 11:34:22,551-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.repository.httpclient.internal.HttpClientFacetImpl.createHttpClient(HttpClientFacetImpl.java:130) 2017-01-17 11:34:22,551-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.repository.httpclient.internal.HttpClientFacetImpl.doConfigure(HttpClientFacetImpl.java:94) 2017-01-17 11:34:22,551-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.repository.FacetSupport.doInit(FacetSupport.java:140) 2017-01-17 11:34:22,551-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.repository.FacetSupport.init(FacetSupport.java:136) 2017-01-17 11:34:22,551-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) 2017-01-17 11:34:22,551-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) 2017-01-17 11:34:22,552-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) 2017-01-17 11:34:22,552-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - at org.sonatype.nexus.repository.manager.internal.RepositoryImpl.init(RepositoryImpl.java:188) 2017-01-17 11:34:22,552-0600 ERROR [FelixStartLevel] *SYSTEM java.lang.Throwable - ... 18 more {noformat}",2 +"NEXUS-12099","01/18/2017 13:45:47","gradually slowing upgrade of Nexus 2 site repositories to Nexus 3 raw repositories","Migration of large Nexus 2 site repositories containing many small files synonymous of typical published Maven 2 html/css/js sites, may gradually slow to a crawl when migrating into Nexus 3 raw repositories. The slowness was seen with a Nexus 2 site repository of 485000 files ( double that if you include the related ./nexus/attributes files ). The slowness is expected to be present during future publishing to the Nexus 3 RAW repo, even if the upgrade is eventually completed successfully. Here are sample threads taken from a thread dump where the slowness was detected to eventually reach approx 1 hard linked item migrated per second. No disk issues were noticed to slow the hard linking, so the assumption is there is slowness in the code doing the migration. {noformat:title=WAITING threads} plan-executor-8-thread-1 id=270 state=WAITING - waiting on <0x21e1bb52> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) - locked <0x21e1bb52> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) at com.google.common.util.concurrent.Monitor.await(Monitor.java:1082) at com.google.common.util.concurrent.Monitor.waitFor(Monitor.java:738) at com.google.common.util.concurrent.Monitor$waitFor$0.call(Unknown Source) at com.sonatype.nexus.migration.plan.StepExecutor.run(StepExecutor.groovy:111) at com.sonatype.nexus.migration.plan.StepExecutor$run.call(Unknown Source) at com.sonatype.nexus.migration.plan.Plan.runSteps(Plan.groovy:253) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:384) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166) at com.sonatype.nexus.migration.plan.Plan$_doBegin_closure6.doCall(Plan.groovy:238) at com.sonatype.nexus.migration.plan.Plan$_doBegin_closure6.doCall(Plan.groovy) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) at groovy.lang.Closure.call(Closure.java:414) at groovy.lang.Closure.call(Closure.java:408) at groovy.lang.Closure.run(Closure.java:495) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Locked synchronizers: count = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@2a92b49 plan-executor-8-thread-2 id=271 state=WAITING - waiting on <0x43ca5a69> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) - locked <0x43ca5a69> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403) at java_util_concurrent_BlockingQueue$take.call(Unknown Source) at com.sonatype.nexus.migration.repository.ProcessChangesStep.sync(ProcessChangesStep.groovy:260) at com.sonatype.nexus.migration.repository.ProcessChangesStep$sync.callCurrent(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:158) at com.sonatype.nexus.migration.repository.ProcessChangesStep.doRun(ProcessChangesStep.groovy:147) at com.sonatype.nexus.migration.plan.Step.run(Step.groovy:271) at com.sonatype.nexus.migration.plan.Step$run$1.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at com.sonatype.nexus.migration.plan.Step$run$1.call(Unknown Source) at com.sonatype.nexus.migration.plan.StepExecutor.runSync(StepExecutor.groovy:168) at sun.reflect.GeneratedMethodAccessor351.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:384) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166) at com.sonatype.nexus.migration.plan.StepExecutor$_runAsync_closure1.doCall(StepExecutor.groovy:197) at com.sonatype.nexus.migration.plan.StepExecutor$_runAsync_closure1.doCall(StepExecutor.groovy) at sun.reflect.GeneratedMethodAccessor395.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) at groovy.lang.Closure.call(Closure.java:414) at groovy.lang.Closure.call(Closure.java:408) at groovy.lang.Closure.run(Closure.java:495) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Locked synchronizers: count = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@3f5912e2 change-processing-9-thread-1 id=274 state=WAITING - waiting on <0x7a65c73d> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) - locked <0x7a65c73d> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199) at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209) at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285) at com.orientechnologies.common.collection.closabledictionary.OClosableEntry.acquireStateLock(OClosableEntry.java:84) at com.orientechnologies.common.collection.closabledictionary.OClosableLinkedContainer.acquire(OClosableLinkedContainer.java:267) at com.orientechnologies.orient.core.storage.cache.local.OWOWCache.getFilledUpTo(OWOWCache.java:731) at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.getFilledUpTo(ODurableComponent.java:135) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:649) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:628) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doReadRecord(OAbstractPaginatedStorage.java:3234) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:2864) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:1091) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx$SimpleRecordReader.readRecord(ODatabaseDocumentTx.java:3227) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeReadRecord(ODatabaseDocumentTx.java:1921) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:649) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:102) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearchRecord(OCommandExecutorSQLSelect.java:588) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.serialIterator(OCommandExecutorSQLSelect.java:1619) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchFromTarget(OCommandExecutorSQLSelect.java:1566) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchValuesFromIndexCursor(OCommandExecutorSQLSelect.java:2450) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchForIndexes(OCommandExecutorSQLSelect.java:2265) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchInClasses(OCommandExecutorSQLSelect.java:1001) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.assignTarget(OCommandExecutorSQLResultsetAbstract.java:209) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.assignTarget(OCommandExecutorSQLSelect.java:530) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:512) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:488) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:74) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:2577) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:2523) at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69) at org.sonatype.nexus.repository.storage.MetadataNodeEntityAdapter.findByProperty(MetadataNodeEntityAdapter.java:147) at org.sonatype.nexus.repository.storage.StorageTxImpl.findComponentWithProperty(StorageTxImpl.java:367) at sun.reflect.GeneratedMethodAccessor463.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63) at com.sun.proxy.$Proxy206.findComponentWithProperty(Unknown Source) at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl.getOrCreateAsset(RawContentFacetImpl.java:131) at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl$$EnhancerByGuice$$3286c0b4.CGLIB$getOrCreateAsset$2() at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl$$EnhancerByGuice$$3286c0b4$$FastClassByGuice$$af5c3f69.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:45) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl$$EnhancerByGuice$$3286c0b4.getOrCreateAsset() at com.sonatype.nexus.migration.repository.migrators.RawHostedRepositoryMigrator.lambda$0(RawHostedRepositoryMigrator.java:47) at com.sonatype.nexus.migration.repository.migrators.RawHostedRepositoryMigrator$$Lambda$149/1969362139.call(Unknown Source) at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:200) at org.sonatype.nexus.transaction.Operations.call(Operations.java:146) at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.inStorageTx(RepositoryMigratorSupport.java:199) at com.sonatype.nexus.migration.repository.migrators.RawHostedRepositoryMigrator.recordMetadata(RawHostedRepositoryMigrator.java:44) at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.processChange(RepositoryMigratorSupport.java:135) at com.sonatype.nexus.migration.repository.RepositoryMigrator$processChange$2.call(Unknown Source) at com.sonatype.nexus.migration.repository.ProcessChangesStep$_submit_closure2.doCall(ProcessChangesStep.groovy:317) at com.sonatype.nexus.migration.repository.ProcessChangesStep$_submit_closure2.doCall(ProcessChangesStep.groovy) at sun.reflect.GeneratedMethodAccessor460.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) at groovy.lang.Closure.call(Closure.java:414) at groovy.lang.Closure.call(Closure.java:408) at groovy.lang.Closure.run(Closure.java:495) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Locked synchronizers: count = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@2a8387f1 {noformat} {noformat:title=RUNNABLE threads} change-processing-9-thread-2 id=275 state=RUNNABLE at com.orientechnologies.orient.core.storage.cache.local.OWOWCache.getFilledUpTo(OWOWCache.java:729) at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.getFilledUpTo(ODurableComponent.java:135) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:649) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:628) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doReadRecord(OAbstractPaginatedStorage.java:3234) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:2864) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:1091) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx$SimpleRecordReader.readRecord(ODatabaseDocumentTx.java:3227) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeReadRecord(ODatabaseDocumentTx.java:1921) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:649) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:102) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearchRecord(OCommandExecutorSQLSelect.java:588) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.serialIterator(OCommandExecutorSQLSelect.java:1619) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchFromTarget(OCommandExecutorSQLSelect.java:1566) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchValuesFromIndexCursor(OCommandExecutorSQLSelect.java:2450) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchForIndexes(OCommandExecutorSQLSelect.java:2265) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchInClasses(OCommandExecutorSQLSelect.java:1001) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.assignTarget(OCommandExecutorSQLResultsetAbstract.java:209) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.assignTarget(OCommandExecutorSQLSelect.java:530) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:512) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:488) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:74) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:2577) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:2523) at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69) at org.sonatype.nexus.repository.storage.MetadataNodeEntityAdapter.findByProperty(MetadataNodeEntityAdapter.java:147) at org.sonatype.nexus.repository.storage.StorageTxImpl.findComponentWithProperty(StorageTxImpl.java:367) at sun.reflect.GeneratedMethodAccessor463.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63) at com.sun.proxy.$Proxy206.findComponentWithProperty(Unknown Source) at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl.getOrCreateAsset(RawContentFacetImpl.java:131) at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl$$EnhancerByGuice$$3286c0b4.CGLIB$getOrCreateAsset$2() at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl$$EnhancerByGuice$$3286c0b4$$FastClassByGuice$$af5c3f69.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:45) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl$$EnhancerByGuice$$3286c0b4.getOrCreateAsset() at com.sonatype.nexus.migration.repository.migrators.RawHostedRepositoryMigrator.lambda$0(RawHostedRepositoryMigrator.java:47) at com.sonatype.nexus.migration.repository.migrators.RawHostedRepositoryMigrator$$Lambda$149/1969362139.call(Unknown Source) at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:200) at org.sonatype.nexus.transaction.Operations.call(Operations.java:146) at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.inStorageTx(RepositoryMigratorSupport.java:199) at com.sonatype.nexus.migration.repository.migrators.RawHostedRepositoryMigrator.recordMetadata(RawHostedRepositoryMigrator.java:44) at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.processChange(RepositoryMigratorSupport.java:135) at com.sonatype.nexus.migration.repository.RepositoryMigrator$processChange$2.call(Unknown Source) at com.sonatype.nexus.migration.repository.ProcessChangesStep$_submit_closure2.doCall(ProcessChangesStep.groovy:317) at com.sonatype.nexus.migration.repository.ProcessChangesStep$_submit_closure2.doCall(ProcessChangesStep.groovy) at sun.reflect.GeneratedMethodAccessor460.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) at groovy.lang.Closure.call(Closure.java:414) at groovy.lang.Closure.call(Closure.java:408) at groovy.lang.Closure.run(Closure.java:495) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Locked synchronizers: count = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@5769d26f change-processing-9-thread-3 id=276 state=RUNNABLE at com.orientechnologies.common.serialization.types.OStringSerializer.deserializeFromByteBufferObject(OStringSerializer.java:33) at com.orientechnologies.orient.core.serialization.serializer.binary.impl.index.OCompositeKeySerializer.deserializeFromByteBufferObject(OCompositeKeySerializer.java:347) at com.orientechnologies.orient.core.serialization.serializer.binary.impl.index.OCompositeKeySerializer.deserializeFromByteBufferObject(OCompositeKeySerializer.java:46) at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurablePage.deserializeFromDirectMemory(ODurablePage.java:164) at com.orientechnologies.orient.core.index.sbtree.local.OSBTreeBucket.getEntry(OSBTreeBucket.java:207) at com.orientechnologies.orient.core.index.sbtree.local.OSBTree$OSBTreeCursorForward.next(OSBTree.java:2082) at com.orientechnologies.orient.core.index.engine.OSBTreeIndexEngine$OSBTreeIndexCursor.nextEntry(OSBTreeIndexEngine.java:263) at com.orientechnologies.orient.core.index.OIndexAbstractCursor.hasNext(OIndexAbstractCursor.java:83) at com.orientechnologies.orient.core.index.OIndexChangesWrapper.hasNext(OIndexChangesWrapper.java:138) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.serialIterator(OCommandExecutorSQLSelect.java:1617) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchFromTarget(OCommandExecutorSQLSelect.java:1566) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchValuesFromIndexCursor(OCommandExecutorSQLSelect.java:2450) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchForIndexes(OCommandExecutorSQLSelect.java:2265) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchInClasses(OCommandExecutorSQLSelect.java:1001) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.assignTarget(OCommandExecutorSQLResultsetAbstract.java:209) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.assignTarget(OCommandExecutorSQLSelect.java:530) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:512) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:488) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:74) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:2577) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:2523) at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69) at org.sonatype.nexus.repository.storage.MetadataNodeEntityAdapter.findByProperty(MetadataNodeEntityAdapter.java:147) at org.sonatype.nexus.repository.storage.StorageTxImpl.findComponentWithProperty(StorageTxImpl.java:367) at sun.reflect.GeneratedMethodAccessor463.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63) at com.sun.proxy.$Proxy206.findComponentWithProperty(Unknown Source) at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl.getOrCreateAsset(RawContentFacetImpl.java:131) at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl$$EnhancerByGuice$$3286c0b4.CGLIB$getOrCreateAsset$2() at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl$$EnhancerByGuice$$3286c0b4$$FastClassByGuice$$af5c3f69.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:45) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl$$EnhancerByGuice$$3286c0b4.getOrCreateAsset() at com.sonatype.nexus.migration.repository.migrators.RawHostedRepositoryMigrator.lambda$0(RawHostedRepositoryMigrator.java:47) at com.sonatype.nexus.migration.repository.migrators.RawHostedRepositoryMigrator$$Lambda$149/1969362139.call(Unknown Source) at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:200) at org.sonatype.nexus.transaction.Operations.call(Operations.java:146) at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.inStorageTx(RepositoryMigratorSupport.java:199) at com.sonatype.nexus.migration.repository.migrators.RawHostedRepositoryMigrator.recordMetadata(RawHostedRepositoryMigrator.java:44) at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.processChange(RepositoryMigratorSupport.java:135) at com.sonatype.nexus.migration.repository.RepositoryMigrator$processChange$2.call(Unknown Source) at com.sonatype.nexus.migration.repository.ProcessChangesStep$_submit_closure2.doCall(ProcessChangesStep.groovy:317) at com.sonatype.nexus.migration.repository.ProcessChangesStep$_submit_closure2.doCall(ProcessChangesStep.groovy) at sun.reflect.GeneratedMethodAccessor460.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) at groovy.lang.Closure.call(Closure.java:414) at groovy.lang.Closure.call(Closure.java:408) at groovy.lang.Closure.run(Closure.java:495) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Locked synchronizers: count = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@61636b7c change-processing-9-thread-4 id=277 state=RUNNABLE at com.orientechnologies.common.collection.closabledictionary.OClosableLinkedContainer.acquire(OClosableLinkedContainer.java:267) at com.orientechnologies.orient.core.storage.cache.local.OWOWCache.getFilledUpTo(OWOWCache.java:731) at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.getFilledUpTo(ODurableComponent.java:135) at com.orientechnologies.orient.core.storage.impl.local.paginated.OClusterPositionMap.get(OClusterPositionMap.java:392) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:641) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:628) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doReadRecord(OAbstractPaginatedStorage.java:3234) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:2864) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:1091) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx$SimpleRecordReader.readRecord(ODatabaseDocumentTx.java:3227) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeReadRecord(ODatabaseDocumentTx.java:1921) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:649) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:102) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearchRecord(OCommandExecutorSQLSelect.java:588) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.serialIterator(OCommandExecutorSQLSelect.java:1619) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchFromTarget(OCommandExecutorSQLSelect.java:1566) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchValuesFromIndexCursor(OCommandExecutorSQLSelect.java:2450) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchForIndexes(OCommandExecutorSQLSelect.java:2265) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchInClasses(OCommandExecutorSQLSelect.java:1001) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.assignTarget(OCommandExecutorSQLResultsetAbstract.java:209) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.assignTarget(OCommandExecutorSQLSelect.java:530) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:512) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:488) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:74) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:2577) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:2523) at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69) at org.sonatype.nexus.repository.storage.MetadataNodeEntityAdapter.findByProperty(MetadataNodeEntityAdapter.java:147) at org.sonatype.nexus.repository.storage.StorageTxImpl.findComponentWithProperty(StorageTxImpl.java:367) at sun.reflect.GeneratedMethodAccessor463.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63) at com.sun.proxy.$Proxy206.findComponentWithProperty(Unknown Source) at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl.getOrCreateAsset(RawContentFacetImpl.java:131) at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl$$EnhancerByGuice$$3286c0b4.CGLIB$getOrCreateAsset$2() at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl$$EnhancerByGuice$$3286c0b4$$FastClassByGuice$$af5c3f69.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:45) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at org.sonatype.nexus.repository.raw.internal.RawContentFacetImpl$$EnhancerByGuice$$3286c0b4.getOrCreateAsset() at com.sonatype.nexus.migration.repository.migrators.RawHostedRepositoryMigrator.lambda$0(RawHostedRepositoryMigrator.java:47) at com.sonatype.nexus.migration.repository.migrators.RawHostedRepositoryMigrator$$Lambda$149/1969362139.call(Unknown Source) at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:200) at org.sonatype.nexus.transaction.Operations.call(Operations.java:146) at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.inStorageTx(RepositoryMigratorSupport.java:199) at com.sonatype.nexus.migration.repository.migrators.RawHostedRepositoryMigrator.recordMetadata(RawHostedRepositoryMigrator.java:44) at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.processChange(RepositoryMigratorSupport.java:135) at com.sonatype.nexus.migration.repository.RepositoryMigrator$processChange$2.call(Unknown Source) at com.sonatype.nexus.migration.repository.ProcessChangesStep$_submit_closure2.doCall(ProcessChangesStep.groovy:317) at com.sonatype.nexus.migration.repository.ProcessChangesStep$_submit_closure2.doCall(ProcessChangesStep.groovy) at sun.reflect.GeneratedMethodAccessor460.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) at groovy.lang.Closure.call(Closure.java:414) at groovy.lang.Closure.call(Closure.java:408) at groovy.lang.Closure.run(Closure.java:495) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Locked synchronizers: count = 2 - java.util.concurrent.locks.ReentrantLock$NonfairSync@6bf928d - java.util.concurrent.ThreadPoolExecutor$Worker@7488dc5 {noformat} ",3 +"NEXUS-12108","01/18/2017 19:41:08","npm@4: searching a hosted repo a second time causes npm error","While reviewing npm@4, I noticed that I could search hosted repos and find results via the CLI (ie npm search --registry=http://localhost:8081/repository/npm-hosted/ whatever) however, after the first time I was getting an npm error not in the nexus.log but from npm. {code} Josephs-MBP:npm jtom$ npm search --registry=http://localhost:8081/repository/npm-hosted/ test npm WARN Failed to read search cache. Rebuilding npm WARN Building the local index for the first time, please be patient NAME | DESCRIPTION | AUTHOR | DATE | VERSION | KEYWORDS testproject1 | Test Project 1 | | 2017-01-18 | 0.0.1 | Josephs-MBP:npm jtom$ npm search --registry=http://localhost:8081/repository/npm-hosted/ test NAME | DESCRIPTION | AUTHOR | DATE | VERSION | KEYWORDS testproject1 | Test Project 1 | | 2017-01-18 | 0.0.1 | npm ERR! Darwin 15.6.0 npm ERR! argv ""/usr/local/bin/node"" ""/usr/local/bin/npm"" ""search"" ""--registry=http://localhost:8081/repository/npm-hosted/"" ""test"" npm ERR! node v6.9.3 npm ERR! npm v4.1.1 npm ERR! premature close npm ERR! npm ERR! If you need help, you may report this error at: npm ERR! npm ERR! Darwin 15.6.0 npm ERR! argv ""/usr/local/bin/node"" ""/usr/local/bin/npm"" ""search"" ""--registry=http://localhost:8081/repository/npm-hosted/"" ""test"" npm ERR! node v6.9.3 npm ERR! npm v4.1.1 npm ERR! invalid value written to input stream npm ERR! npm ERR! If you need help, you may report this error at: npm ERR! npm ERR! Please include the following file with any support request: npm ERR! /Users/jtom/Documents/Work/temp/npm/npm-debug.log {code} Of note: 1) Resultant searches do show results (see above) before the error. However, searches with no results JUST show the error which is confusing. Marked minor because of this. 2) If you clear the cache (ie sudo rm -R ~/.npm) first this error does not occur. This occurs in npm 4.0.0, 4.1.1 and 4.1.2. It does not occur in 3.10.3. I actually misanalyzed it as not occurring in 4.0.0 because I went from 3.10.3 to 4.0.0 without clearing cache (see #2 above). This may be why this has not been seen much in the field. I did not check older NX3 or NX2 at this time, however, because it's an npm CLI command, I doubt it'd make much difference. I can check if desired.",5 +"NEXUS-12216","01/19/2017 15:26:45","Support pushing Docker Windows Container images and loosen manifest validation to allow for 'foreign-layers'","I followed the instructions for setting up a Hosted Docker repository in Nexus. I'm using Windows containers on my Windows 10 machine. I created an image based off microsoft/nanoserver, which I try to push to the Hosted Docker repo in Nexus, but I am met with the following error: ""blob unknown: blob unknown to registry"". I switch Docker on my machine to use Linux containers, create an image, upload that image to the Hosted Docker repo in Nexus, and it succeeds. My conclusion is that the Hosted Docker repo in Nexus is unable to store Windows Container images and there is no obvious place to configure the Nexus repo to host Windows Container images. *Solution* Minimally NXRM should be able to validate the pushed Manifest, taking into account that the 'foreign-layers' will never be in NXRM directly.",2 +"NEXUS-12222","01/19/2017 20:05:29","NXRM2 repository view privileges are not migrated to NXRM3 browse privileges during upgrade","A role in Nexus 2 may be assigned a repository view privilege - an example entry would take the form: {{ - (view)}} Where repoid is replaced with the actual repository identifier. Example: {{company_repo-repo - (view)}} When such a role is migrated to Nexus 3 by the upgrade process, this view privilege is omitted, resulting in users assigned that role to not be able to browse the contents of the affected repositories. ---- In attached screenshots the ""somegroup"" role has view and read privileges to the ""somegroup"" group repository. After upgrade, the ""somegroup"" role only has a read privilege. It should also have a ""nx-repository-view--somegroup-browse"" privilege for this group. h4. Workaround If you have a small number of affected roles, then assign the missing privilege manually to the affected Nexus 3 roles. The missing privilege takes the form of this naming pattern: {{nx-repository-view---browse}} Example: {{nx-repository-view-maven2-company_repo-browse}} Or you can assign view privileges to all repositories by using: {{nx-repository-view-\*-\*-browse}} If you have a large number of affected roles, then we advise waiting until we fix this issue before upgrading.      ",2 +"NEXUS-12230","01/20/2017 16:58:49","User token is deleted if external server cannot be reached","An error occurred when trying to contact a Crowd server to look up the user ID associated with a user token: {quote} 2017-01-17 17:59:19,293-0600 WARN \[qtp1976642001-174945] *UNKNOWN com.atlassian.crowd.integration.rest.service.RestExecutor - The following URL does not specify a valid Crowd User Management REST service: https://com.server.com/crowd/rest/usermanagement/1/user?username=USERNAME 2017-01-17 17:59:19,355-0600 WARN \[qtp1976642001-174945] *UNKNOWN com.sonatype.nexus.crowd.internal.CrowdUserManager - Unable to look up Crowd user USERNAME due to javax.xml.bind.DataBindingException/javax.xml.bind.UnmarshalException - with linked exception: \[org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Premature end of file.] 2017-01-17 17:59:19,355-0600 DEBUG \[qtp1976642001-174945] *UNKNOWN com.sonatype.nexus.usertoken.plugin.realm.UserTokenRealm - Removing stale user-token, target principals are no longer valid 2017-01-17 17:59:19,355-0600 DEBUG \[qtp1976642001-174945] *UNKNOWN com.sonatype.nexus.usertoken.plugin.internal.UserTokenServiceImpl - Removing record for: USERNAME 2017-01-17 17:59:19,371-0600 TRACE \[qtp1976642001-174945] *UNKNOWN org.sonatype.security.internal.UserIdMdcHelper - Set: USERNAME {quote} In response to this Nexus removed the user token. Expected: 1. Nexus should not remove the token unless the server can be reached, and the user can't be found 2. Nexus should return a 401 if the server can't be reached. ",2 +"NEXUS-12238","01/23/2017 20:31:19","Partial coordinates for maven metadata","*Background* 1. A user creates a hosted repository, and a content selector permission based on a groupId, e.g. {{format == ""maven2"" and coordinate.groupId =^ ""my.test""}} 2. The user attempt to upload a .jar, via {code} mvn org.apache.maven.plugins:maven-deploy-plugin:deploy-file \ -Dfile=testing.jar -DrepositoryId=testing -Durl=$TESTURL \ -DgroupId=my.test -Dversion=1.0 -Dartifact=testing -Dtype=jar {code} 3. Deployment fails: {code} Access denied to: http://nexus-lab.home.bardicgrove.org/repository/maven-releases/my/test/testing/maven-metadata.xml, {code} The reason for this is that maven-metadata.xml files don't have any coordinates associated with them for the purposes of content selector evaluation. The workaround is that users can create a more complicated content selector that ORs the groupId with a path, but that's unnecessarily fiddly. *Acceptance* * maven-metadata.xml files have partial component coordinates assigned to them (just {{groupId}} and {{artifactId}}, I guess?) so that the scenario, above, works correctly and the client can update metadata.",3 +"NEXUS-12242","01/24/2017 13:56:59","repository requests to paths containing certain characters may fail with status 500 ""Illegal character in path at index""","*Acceptance* Repository path parsing needs to be made more robust as currently it can fail for paths containing spaces. Secondly when a path cannot be parsed it should send back a 400 response (bad request) instead of letting the parse exception propagate all the way back to the view servlet. *Example* {noformat} 2017-01-24 07:10:30,646+1100 WARN [qtp5481956-6945] *UNKNOWN org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure java.lang.IllegalArgumentException: Illegal character in path at index 34: /javax/servlet/javax.servlet-api/${servletApiVersion}/javax.servlet-api-${servletApiVersion}.pom at java.net.URI.create(URI.java:852) [na:1.8.0_111] at org.sonatype.nexus.repository.httpbridge.internal.RepositoryPath.parse(RepositoryPath.java:86) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.path(ViewServlet.java:266) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:136) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.1.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.2.0.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.2.0.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] {noformat}",1 +"NEXUS-12250","01/24/2017 18:02:36","""Generic LDAP Server"" UI configuration template should not have password attribute set by default","The ""Generic LDAP Server"" template has a value in the ""password attribute"" field. Setting the password attribute is almost never needed, and in fact, it usually causes login failures. We should remove this value from our Generic LDAP Server"" template. When the password attribute is not set an LDAP bind will be done, which is what you want 99.9% of the time. ",0.5 +"NEXUS-12253","01/25/2017 11:12:33","Order by version incorrect","Ordering components on a repository does not use numerical order but instead does string comparison. Therefore when sorting I see: packagename-1.2 packagename-1.10 packagename-1.0 instead of packagename-1.10 packagename-1.2 packagename-1.0 This is such a simple change and yet has such a large impact on usability that it should just be done. Especially since it's been dragging along for quite a long time.",5 +"NEXUS-12254","01/25/2017 13:59:48","clarify that migrating repositories and content also migrates user accounts","A user was recently surprised that Nexus 2 user accounts are also migrated to Nexus 3, even if the ""Server Configuration"" option was not checked during upgrade. In fact migrating user accounts like this was deliberate, due to complex interactions that can occur between user accounts and custom roles and privileges possible in Nexus 2. The book should clarify that migrating user accounts will happen, even if the Server configuration option is not checked. ",0.5 +"NEXUS-12255","01/25/2017 14:40:09","book mentions upgrade options that are not available","https://books.sonatype.com/nexus-book/reference3/upgrading.html#upgrade-content This section of the book implies that detailed parts of configuration, content and security can be selectively migrated to Nexus 3. In fact that is not true anymore, due to the complexity that can entail. During initial upgrade testing and design, it was determined this level of flexibility was too error prone and potentially confusing for end users. Now there are only two options: - upgrade repositories and content ( and user accounts and associated security ) - Server configuration The whole section of the book should be revised to match the current implementation. ",1 +"NEXUS-12276","01/27/2017 18:03:46","reduce JVM heap memory consumed by group repository 404 not found responses","AbstractGroupRepository collects any throwables thrown from its member repositories when requesting content and stores them in a map (memberThrowables) which it then propagates upstream inside a GroupItemNotFoundException. The stored throwables are only used when handling 'describe' requests. For complex setups with lots of nested groups and many concurrent requests these throwables can end up taking a significant amount of heap, only never to be used because the requests are almost exclusively non-describe requests. By skipping collection of these throwables for non-describe requests we should reduce pressure on the heap for all users (those with complex setups should see the most benefit).",2 +"NEXUS-12285","01/30/2017 14:25:37","Remote Storage URL should be a required for proxy repository configuration","Just noticed that you can freely create a proxy repository without entering a Remote Storage url. Seeing as this is a rather important part of a proxy repository, feels like this should be a required field. Note: JoeT also validated that was an issue in 3.2.0, so this is NOT a regression",0.5 +"NEXUS-12304","02/01/2017 07:42:29","`npm publish` on an already published package version does not update all changed package metadata","I use the Nexus Repository for private NPM repository with allow-redeploy enabled. And the problem is that the system is not deleting dependencies in package.json at same module version number republished. For example: I have published package at version 0.0.2-SNAPSHOT http://localhost:8081/nexus/content/repositories/npm-private/fooPackage/ I will get the metadata descriptor: {code} ""versions"": { ""0.0.1"": xxx, ""0.0.2-SNAPSHOT"": { ""name"": ""fooPackage"", }, ""dependencies"": { ""dependencyA"": ""1.0.0"", ""dependencyB"": ""1.0.0"" }, } {code} Then i will change dependencies for version 0.0.2-SNAPSHOT to this {code} ""dependencies"": { ""dependencyA"": ""2.0.0"" } {code} after npm publish I will get from http://localhost:8081/nexus/content/repositories/npm-private/fooPackage/ {code} ""versions"": { ""0.0.1"": xxx, ""0.0.2-SNAPSHOT"": { ""name"": ""fooPackage"", }, ""dependencies"": { ""dependencyA"": ""2.0.0"", - incremented,OK ""dependencyB"": ""1.0.0"" - should be deleted,NOK }, } {code} I replicated this bug at latest docker images sonatype/nexus:oss and sonatype/nexus3. I know that republishing in NPM is considered as an anti-pattern. But you are allowing this option in private repo and it is very usefull, because we using the snapshot versions in development cycle at it is a bit pain to change the version everytime if there is any update in snapshot. I'm using this as a workaround now : https://support.sonatype.com/hc/en-us/articles/221433608-Deleting-a-specific-npm-package-version-in-Nexus-Repository-Manager-2-x Thanks",2 +"NEXUS-12322","02/06/2017 14:36:38","Storage consideration when upgrading from 2.x to 3.x","The upgrade documentation should mention that you need double the storage as the data is duplicated when using file copy or downloading method to migrate. [20.5.7. Data Transfer Methods|https://books.sonatype.com/nexus-book/reference3/upgrading.html#upgrade-methods]",0.5 +"NEXUS-12334","02/07/2017 19:14:09","Log spam when a user's session expires while viewing the repositories UI","When you're looking at the repository list in the nexus UI it polls the repository status using this call: {quote} 127.0.0.1 - - \[07/Feb/2017:12:38:36 -0500\] ""GET /service/extdirect/poll/coreui_Repository_readStatus?_dc=1486489116483 HTTP/1.1"" 200 189 8 {quote} When a user's session expires, the poll request fails. This is logged at ERROR level with a stack trace. This should not be logged at ERROR, this is a normal occurrence. -The message should be logged at INFO, and the stack trace logged at DEBUG.- The message should be logged at DEBUG with no stack trace (and should _definitely_ not be at ERROR level). {noformat} 2017-02-07 12:12:38,363-0500 ERROR [qtp599637027-208] *UNKNOWN org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Repository.coreui_Repository_readStatus, java-method: org.sonatype.nexus.coreui.RepositoryComponent.readStatus org.apache.shiro.authz.UnauthenticatedException: The current Subject is not authenticated. Access denied. at org.apache.shiro.authz.aop.AuthenticatedAnnotationHandler.assertAuthorized(AuthenticatedAnnotationHandler.java:53) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:84) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:67) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.GeneratedMethodAccessor252.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_31] at java.lang.reflect.Method.invoke(Method.java:483) [na:1.8.0_31] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.2.0.01] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.2.0.01] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:221) [org.sonatype.nexus.extdirect:3.2.0.01] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.2.0.01] at com.softwarementors.extjs.djn.router.processor.poll.PollRequestProcessor.process(PollRequestProcessor.java:145) [org.sonatype.nexus.extdirect:3.2.0.01] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$4.processPollRequest(ExtDirectServlet.java:315) [org.sonatype.nexus.extdirect:3.2.0.01] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:621) [org.sonatype.nexus.extdirect:3.2.0.01] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.extdirect:3.2.0.01] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:127) [org.sonatype.nexus.extdirect:3.2.0.01] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doGet(DirectJNgineServlet.java:553) [org.sonatype.nexus.extdirect:3.2.0.01] at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.1.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.2.0.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.2.0.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:112) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.2.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68) [org.sonatype.nexus.base:3.2.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:102) [org.sonatype.nexus.base:3.2.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98) [org.sonatype.nexus.base:3.2.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.1.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) [com.google.inject:4.1.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.2.0.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_31] Caused by: org.apache.shiro.authz.AuthorizationException: Not authorized to invoke method: public java.util.List org.sonatype.nexus.coreui.RepositoryComponent.readStatus(java.util.Map) at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:90) [na:na] ... 81 common frames omitted {noformat}",1 +"NEXUS-12337","02/07/2017 21:40:15","NuGet queries against asset attributes can be slow due to non-optimized indexes","Certain NuGet query/download/update requests from visual studio 2015 are reported to be slow in Nexus 3.1 Nexus 2.14 does not exhibit the slowness. The following NuGet related log message from a customer indicates slow query performance: {code} 2017-02-07 11:03:13,165-0600 INFO [qtp1490888539-26206] *UNKNOWN com.orientechnologies.common.profiler.OProfilerStub - $ANSI{green {db=component}} [TIP] Query 'SELECT FROM asset WHERE (LOWER(attributes.nuget.id) = ""runtime.native.system"" ) AND (bucket = #11:82 OR bucket = #11:83 OR bucket = #11:84 OR bucket = #11:86 OR bucket = #11:87 OR bucket = #11:88 OR bucket = #11:89 OR bucket = #11:90 ) ORDER BY attributes.nuget.download_count DESC, id ASC, version ASC LIMIT 40' fetched more than 50000 records: to speed up the execution, create an index or change the query to use an existent index {code} asset.attributes is a distinct data structure from other properties like asset.name, asset.format etc. [ code reference|https://github.com/sonatype/nexus-internal/blob/e28b4254688e26ea6daae74b67ad85c3936db85e/components/nexus-repository/src/main/java/org/sonatype/nexus/repository/storage/MetadataNodeEntityAdapter.java#L53] - therefore this excludes this issue being a duplicate of NEXUS-12310 where a missing index on component name was the problem. 'attributes.nuget.id' is not handled with an index Also there are no indices around attributes.nuget.id in AssetEntityAdapter, so these kind of queries are non-performant because they do table scans. For NuGet, users can essentially write their own queries where they can do pretty much anything non-performant, but we should ensure the sunny day uses cases by common clients are supported in a performant manner.",8 +"NEXUS-12338","02/07/2017 21:49:03","query parameter names for NuGet search requests are not case-insensitive","Fallout from NEXUS-12028: The request log from that ticket suggests that NuGet searches employ case-insensitive query parameters, i.e. {{/FindPackagesById()?Id=foo}} vs {{/FindPackagesById()?id=foo}}. Our current code however expects case-sensitive query parameters (cf. https://github.com/sonatype/nexus-internal/blob/84a2d0537cb61ea16318e2748019f197bfb6b800/private/plugins/nexus-repository-nuget/src/main/java/com/sonatype/nexus/repository/nuget/odata/ODataUtils.java#L127). This leads to wrong database queries if the parameter case in the request doesn't match the code's expectations, e.g. - {{select from asset where (LOWER(attributes.nuget.id) = :p0) and (bucket=#25:0) ORDER BY attributes.nuget.download_count DESC, id asc, version asc, parameters: \[p0=foo\]}} vs - {{select from asset where (bucket=#25:0) ORDER BY attributes.nuget.download_count DESC, id asc, version asc, parameters: \[\]}} (missing id criteria) ",1 +"NEXUS-12339","02/07/2017 21:59:55","Faulty result ordering for NuGet searches","As found in NEXUS-12028, NuGet searches translate to db queries like {noformat} select from asset where (LOWER(attributes.nuget.id) = :p0) and (bucket=#25:0) ORDER BY attributes.nuget.download_count DESC, id asc, version asc {noformat} Note that the {{ORDER BY}} clause refers to the non-existing asset properties {{id}} and {{version}} instead of {{attributes.nuget.id|version}}. At first glance, the cause might be https://github.com/sonatype/nexus-internal/blob/84a2d0537cb61ea16318e2748019f197bfb6b800/private/plugins/nexus-repository-nuget/src/main/java/com/sonatype/nexus/repository/nuget/odata/ODataUtils.java#L182 which doesn't consider the {{COLUMN_ALIASES}}.",2 +"NEXUS-12355","02/08/2017 18:57:12","MavenModels throws an IOException when attempting to parse an empty InputStream","The Maven facet attempts to fill in information about a pom using the {{MavenModels.readModel}} function. If the supplied input stream is empty, this throws an exception and causes issues upstream when we (for example) attempt to migrate a zero-length pom or deploy one to a hosted repository (see stack trace of resulting HTTP 500 error below). The javadoc for the method in question says that it should ""return \{@code null\} if input not parsable"". It seems more consistent to return null when the input stream is empty instead of throwing an EOFException, but what would that cause unintended side-effects? For reference, NX2 does not reject deployments of empty POMs. {noformat} 2017-02-08 19:25:17,516+0100 WARN [qtp571182704-310] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure java.io.EOFException: input contained no data at org.codehaus.plexus.util.xml.pull.MXParser.fillBuf(MXParser.java:3037) [na:na] at org.codehaus.plexus.util.xml.pull.MXParser.more(MXParser.java:3080) [na:na] at org.codehaus.plexus.util.xml.pull.MXParser.parseProlog(MXParser.java:1451) [na:na] at org.codehaus.plexus.util.xml.pull.MXParser.nextImpl(MXParser.java:1436) [na:na] at org.codehaus.plexus.util.xml.pull.MXParser.next(MXParser.java:1131) [na:na] at org.apache.maven.model.io.xpp3.MavenXpp3Reader.read(MavenXpp3Reader.java:3811) [na:na] at org.apache.maven.model.io.xpp3.MavenXpp3Reader.read(MavenXpp3Reader.java:557) [na:na] at org.apache.maven.model.io.xpp3.MavenXpp3Reader.read(MavenXpp3Reader.java:586) [na:na] at org.sonatype.nexus.repository.maven.internal.MavenModels.readModel(MavenModels.java:132) [na:na] at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.fillInFromModel(MavenFacetImpl.java:367) [na:na] at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.putArtifact(MavenFacetImpl.java:325) [na:na] at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.doPutAssetBlob(MavenFacetImpl.java:295) [na:na] at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.doPut(MavenFacetImpl.java:248) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) [na:na] at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.put(MavenFacetImpl.java:200) [na:na] at org.sonatype.nexus.repository.maven.internal.hosted.HostedHandler.doPut(HostedHandler.java:87) [na:na] at org.sonatype.nexus.repository.maven.internal.hosted.HostedHandler.handle(HostedHandler.java:61) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.maven.internal.VersionPolicyHandler.handle(VersionPolicyHandler.java:60) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at com.sonatype.nexus.clm.internal.QuarantineContributedHandler.handle(QuarantineContributedHandler.java:62) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.handlers.HandlerContributor.handle(HandlerContributor.java:67) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:43) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:114) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:63) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:197) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:159) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:116) [na:na] {noformat}",1 +"NEXUS-12360","02/08/2017 22:43:32","expose blob created and updated dates to avoid confusion with last updated date","*Background* The 'last updated' field of Asset is confusing users, who think it shows when the content arrived. It doesn't, it indicates when the record itself was last updated (just like the same field on Component). The information they care about isn't actually available - NXRM has it, but it's buried in blob store metadata. *Acceptance* * Remove the 'lastUpdated' field from the Asset metadata summary. This is an internal field that tracks when the metadata record has changed, and users don't care about it. * Add two new Date fields to asset: ** {{blobCreated}} - touched when a blob is first attached to the asset ** {{blobUpdated}} - touched on creation, and when a new blob (i.e. different hash) is attached to the asset ** Rename {{lastAccessed}} to {{lastDownloaded}} for clarity (e.g. it refers to when the content was downloaded, not when someone last had a look at the asset metadata through search/browse) * Add the two new fields to the Asset summary. * Update the book documentation to explain the fields. ** Currently the [field descriptions|https://books.sonatype.com/nexus-book/reference3/using.html#_search_results] don't add value. *Notes* * Looking ahead to fabric, these fields still are 1:1 with the Asset - multiple blob_refs don't require us to have multiple created/updated fields, because the expectation is that the blobs will all be identical (barring corruption). These dates represent when they arrived in NXRM, rather than in a particular blob store. (The blob stores will continue to record that.) *Technical Notes* * blobCreated and blobUpdated will need to be nullable for situations like NuGet assets that don't have blobs. ",3 +"NEXUS-12361","02/08/2017 22:50:04","Task to populate blobCreated dates and asset owner fields","*Background* Once we've built NEXUS-12360, we need a way to backfill data from the (hidden) blob creation dates and [asset owner fields|https://issues.sonatype.org/browse/PE-165] in the blob store. *Acceptance* * There is a way for an admin user to populate Asset.blobCreated from the blob created dates in the blob store. * {{blobUpdated}} should be set to the same date (since we don't know if it's been updated since then). * Since one-off, user-visible, version-specific upgrade tasks aren't good, consider rolling this behavior into a general metadata/blob store reconciliation task (e.g. the same task from NEXUS-11213). * Update documentation to describe the new scheduled task/behavior of the scheduled task.",3 +"NEXUS-12367","02/09/2017 17:04:04","UI Danger error message when enabling RHC on a Maven Snapshot Repo.","When clicking on ""Enable Health Check"" on a Maven snapshot repository, the following ""Danger"" error is displayed. !Enable RHC on snapshot repo .png! Although a RHC is not supported for Maven snapshot repositories, either a more informative message should be given or the ""Enable Health Check"" button should be disabled.",1 +"NEXUS-12373","02/10/2017 13:43:52","parsing dates in some gemspec files could fail with IllegalArgumentException: Invalid format","Nexus 3.2 is not able to serve the gem `barcode v2.0` via a rubygems proxy repo. It looks like it is having issue parsing a date. {noformat} gem install barcode -v 0.2 ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) bad response Server Error 500 (http://localhost:8083/nexus/repository/rubygems-all/gems/barcode-0.2.gem) {noformat} {noformat} 2017-02-10 13:21:37,231+0000 WARN [qtp40668963-374] *UNKNOWN org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure java.lang.IllegalArgumentException: Invalid format: ""2005-07-13"" is too short at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:899) [na:na] at org.joda.time.DateTime.parse(DateTime.java:160) [na:na] at org.sonatype.nexus.repository.rubygems.marshal.RubyTime.from(RubyTime.java:121) [na:na] {noformat} actual barcode-0.2 gemspec: {noformat} ########################### --- !ruby/object:Gem::Specification rubygems_version: 0.8.10 specification_version: 1 name: barcode version: !ruby/object:Gem::Version version: ""0.2"" date: 2005-07-13 summary: Barcode classes. require_paths: - lib email: crnixon@gmail.com homepage: rubyforge_project: description: Simple classes for creating barcodes. autorequire: default_executable: bindir: bin has_rdoc: true required_ruby_version: !ruby/object:Gem::Version::Requirement requirements: - - "">"" - !ruby/object:Gem::Version version: 0.0.0 version: platform: ruby authors: - Clinton R. Nixon files: - lib/barcode/code39.rb test_files: [] rdoc_options: [] extra_rdoc_files: [] executables: [] extensions: [] requirements: [] dependencies: [] #################### {noformat} This same request works in Nexus 2.14.2. {noformat} gem install barcode -v 0.2 Fetching: barcode-0.2.gem (100%) Successfully installed barcode-0.2 Parsing documentation for barcode-0.2 Installing ri documentation for barcode-0.2 Done installing documentation for barcode after 0 seconds 1 gem installed {noformat}",1 +"NEXUS-12388","02/13/2017 20:37:36","attempt to refetch proxy repository content from remote when a referenced local blob is missing","*Background* In the case of a damaged/ill-timed blobstore backup/restore, it's possible there are some missing blobs. *Acceptance* * If a blob in a proxy repo is missing, rather than immediately returning a 500 error, Repo attempts to refetch it. * If the content is available in the remote, it is downloaded. *Notes* We should ensure we're only trying this for 'missing blob' situations that correspond to proxied artifacts. If it's a missing blob for cached metadata, there will be nothing to refetch.",3 +"NEXUS-12389","02/13/2017 20:49:38","if the component database references a soft-deleted blob then prevent blob store compaction task from hard deleting the blob","*Background* An unwise sequence of backup and restore actions can produce a database that refers to missing blobs. (Example, drop a repository, restore the component database to an earlier state, start the system.) *Acceptance* * Blob store compaction does not delete blobs that are still referenced by component metadata. * Mass deletions/compactions (e.g. dropping a repo) should still be performant. * Make an entry in the long-running task log to record: ** Every blob deletion that happens in compact ** Every blob we choose NOT to delete due to a reference from component metadata",3 +"NEXUS-12390","02/13/2017 20:59:41","add a dry run mode to the Restore Asset/Component metadata from Blob Store task","*Background* The repair/rebuild task first introduced in NEXUS-11213 has the potential to make quite a few changes to data and/or blobs, especially in a post-restore situation. *Acceptance* * Add a mode to the rebuild/repair task that causes it to log the changes it would make, but not actually make any changes to blobs and/or metadata. * Line items should still be made in a long-running task log for the run. * Each task log entry should clearly indicate it was possible but not actually performed. (Some clear prefix?)",3 +"NEXUS-12397","02/14/2017 16:37:08","nexus-public base template binary fails to start due to DependencyResolver$UnresolvedDependencyException","While testing 3.2.1, I ran ./run.sh and forgot to designate pro or oss. This ends up running base. However, I noticed that my run did not succeed, it errored and shut down with the below. On repro attempt, I did notice that if you run oss/pro first, it failed with different errors (I didn't write them down). However, if you do a fresh build then run ./run.sh this seems reproducable. {code} 2017-02-14 11:32:17,689-0500 ERROR [FelixStartLevel] *SYSTEM org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl - Failed transition: NEW -> STARTED org.sonatype.nexus.upgrade.plan.DependencyResolver$UnresolvedDependencyException: 1 unresolved dependency: ComponentDatabaseUpgrade_1_2{upgrades=@org.sonatype.nexus.common.upgrade.Upgrades(model=component, from=1.1, to=1.2), dependsOn=[]} requires UpgradeDependency{model='component', version='1.1'} at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [na:1.8.0_40] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [na:1.8.0_40] at java.lang.reflect.Constructor.newInstance(Constructor.java:422) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83) [na:na] at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247) [na:na] at org.sonatype.nexus.upgrade.plan.DependencyResolver.resolve(DependencyResolver.groovy:149) [na:na] at org.sonatype.nexus.upgrade.internal.UpgradeManager.order(UpgradeManager.java:113) [na:na] at org.sonatype.nexus.upgrade.internal.UpgradeManager.plan(UpgradeManager.java:81) [na:na] at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.doStart(UpgradeServiceImpl.java:82) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) [org.sonatype.nexus.common:3.3.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [org.sonatype.nexus.common:3.3.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) [org.sonatype.nexus.common:3.3.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) [org.sonatype.nexus.common:3.3.0.SNAPSHOT] at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:154) [org.sonatype.nexus.extender:3.3.0.SNAPSHOT] at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:94) [org.sonatype.nexus.extender:3.3.0.SNAPSHOT] at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:186) [org.sonatype.nexus.extender:3.3.0.SNAPSHOT] at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429) [org.apache.felix.framework-5.6.1.jar:na] at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) [org.apache.felix.framework-5.6.1.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] 2017-02-14 11:32:17,692-0500 ERROR [FelixStartLevel] *SYSTEM org.sonatype.nexus.extender.NexusContextListener - Failed to start nexus org.sonatype.nexus.upgrade.plan.DependencyResolver$UnresolvedDependencyException: 1 unresolved dependency: ComponentDatabaseUpgrade_1_2{upgrades=@org.sonatype.nexus.common.upgrade.Upgrades(model=component, from=1.1, to=1.2), dependsOn=[]} requires UpgradeDependency{model='component', version='1.1'} at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [na:1.8.0_40] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [na:1.8.0_40] at java.lang.reflect.Constructor.newInstance(Constructor.java:422) [na:1.8.0_40] at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83) [na:na] at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247) [na:na] at org.sonatype.nexus.upgrade.plan.DependencyResolver.resolve(DependencyResolver.groovy:149) [na:na] at org.sonatype.nexus.upgrade.internal.UpgradeManager.order(UpgradeManager.java:113) [na:na] at org.sonatype.nexus.upgrade.internal.UpgradeManager.plan(UpgradeManager.java:81) [na:na] at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.doStart(UpgradeServiceImpl.java:82) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) [na:na] at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) [na:na] at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:154) [na:na] at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:94) [na:na] at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:186) [na:na] at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429) [org.apache.felix.framework-5.6.1.jar:na] at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) [org.apache.felix.framework-5.6.1.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] ERROR: Framework listener delivery error. org.sonatype.nexus.upgrade.plan.DependencyResolver$UnresolvedDependencyException: 1 unresolved dependency: ComponentDatabaseUpgrade_1_2{upgrades=@org.sonatype.nexus.common.upgrade.Upgrades(model=component, from=1.1, to=1.2), dependsOn=[]} requires UpgradeDependency{model='component', version='1.1'} at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83) at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247) at org.sonatype.nexus.upgrade.plan.DependencyResolver.resolve(DependencyResolver.groovy:149) at org.sonatype.nexus.upgrade.internal.UpgradeManager.order(UpgradeManager.java:113) at org.sonatype.nexus.upgrade.internal.UpgradeManager.plan(UpgradeManager.java:81) at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.doStart(UpgradeServiceImpl.java:82) at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:154) at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:94) at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:186) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) at java.lang.Thread.run(Thread.java:745) {code} Attaching full log as well in case I missed something. As far as I know this is not intentional. I am pretty sure I've run base in the past without modifications, however, it stopped being useful to me so haven't done so in a while. If intentional, it'd be good to know what to do to get it working (as well as to know that). Acceptance criteria: the base template distribution will start without error",3 +"NEXUS-12404","02/14/2017 22:53:09","Crowd cache entries do not expire properly","1. Create a Crowd Realm in Nexus 3. Add a user in crowd and verify you can login to Nexus with that user. 2. Change the Crowd users password via the Crowd admin pages. 3. Close the browser used to login to Nexus, restart the browser and attempt to login to Nexus. The old password will still work, and the new (current) password does not work win Nexus for the crowd user. * Note that if you do log out of the UI the cache entry is cleared, and the new password will work the next time. It appears this is related to how we use Shiro caching realms.",0.5 +"NEXUS-12405","02/14/2017 23:03:21","Crowd realm is missing 'Clear Cache' option like the LDAP realm has","It appears the caching used in Shiro could allow for a 'Clear Cache' button for Crowd Realms, just as 'Clear Cache' is available for LDAP Realms. The inability to manually clear credentials cached from Crowd is a problem when trying to workaround and caching problems. This also relates to the configuration of realm specific cache timeout settings in: https://issues.sonatype.org/browse/NEXUS-9754, as if it is determined we are caching Crowd credentials via Shiro, then we should also allow configuration of the Crowd cache timeout.",2 +"NEXUS-12434","02/17/2017 20:56:40","NEXUS-10154 is not fixed in our official docker images","The fix for NEXUS-10154 was to add this system property to $INSTALL_DIR/conf/nexus.properties: {code} storage.diskCache.bufferSize=4096 {code} But the Nexus 2 docker images don't use our bootstrapper, so this file isn't processed. Therefore these docker images are susceptible to NEXUS-10154. We should modify our docker images to set this system property.",1 +"NEXUS-12443","02/21/2017 13:13:25","GET request to Nexus Pro raw format group repository trigger 500 MissingFacetException No facet of type AttributesFacet","in Nexus pro 3.2.1 with *a license installed that activates the IQ Quarantine support*: 1. Create a RAW proxy repository to https://services.gradle.org/ with default options. 2. Configure a RAW group repository with the RAW proxy as the lone member 3. Do not have IQ Server configured ( if configured may not matter, but it can happen if not configured). 4. send a GET request to the RAW group like this: {noformat} curl -v -u admin:admin123 http://localhost:8081/repository/raw/distributions/gradle-2.4-bin.zip -o /dev/null {noformat} 5. The request responds with: {noformat} < HTTP/1.1 500 javax.servlet.ServletException: org.sonatype.nexus.repository.MissingFacetException: No facet of type AttributesFacet attached to repository raw < Date: Tue, 21 Feb 2017 13:03:33 GMT < Server: Nexus/3.2.1-01 (PRO) < X-Frame-Options: SAMEORIGIN < X-Content-Type-Options: nosniff < Pragma: no-cache < Cache-Control: post-check=0, pre-check=0 < Expires: 0 < Content-Type: text/html < Content-Length: 1926 {noformat} 6. The nexus log contains a stack trace such as this: {noformat} 2017-02-21 08:58:03,314-0400 WARN [qtp2081623533-164] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure org.sonatype.nexus.repository.MissingFacetException: No facet of type AttributesFacet attached to repository raw at org.sonatype.nexus.repository.manager.internal.RepositoryImpl.facet(RepositoryImpl.java:322) [na:na] at com.sonatype.nexus.clm.internal.RepositoryAttributeStorage.getAttributesFacet(RepositoryAttributeStorage.java:147) [na:na] at com.sonatype.nexus.clm.internal.RepositoryAttributeStorage.getAttribute(RepositoryAttributeStorage.java:151) [na:na] at com.sonatype.nexus.clm.internal.RepositoryAttributeStorage.lambda$0(RepositoryAttributeStorage.java:87) [na:na] at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) [na:1.8.0_102] at com.sonatype.nexus.clm.internal.RepositoryAttributeStorage.getQuarantineEnabledTime(RepositoryAttributeStorage.java:86) [na:na] at com.sonatype.nexus.clm.internal.QuarantineContributedHandler.handle(QuarantineContributedHandler.java:64) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.handlers.HandlerContributor.handle(HandlerContributor.java:67) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:43) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:114) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:63) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:197) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:159) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:116) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.1.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.2.1.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.2.1.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.repository.httpbridge.internal.ExhaustRequestFilter.doFilter(ExhaustRequestFilter.java:71) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.2.1.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:112) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.2.1.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68) [org.sonatype.nexus.base:3.2.1.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:102) [org.sonatype.nexus.base:3.2.1.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98) [org.sonatype.nexus.base:3.2.1.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.1.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) [com.google.inject:4.1.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.2.1.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_102] {noformat} h2. Expected - the zip file is downloaded and cached as expected through the proxy repo - given the response reason phrase includes the exception message, might be worth verifying that response reason phrase text is parsed to confirm to the spec, which is _recommended_ up to 8000 octets long and a _required_ certain subset of characters. https://tools.ietf.org/html/rfc7230#section-3.1 reason-phrase = \*( HTAB / SP / VCHAR / obs-text ) - *Note: the reason phrase in this case appears to comply just fine.* h2. Workaround - request the file directly through the proxy repository instead, by passing the group repo, works fine. - Nexus OSS does not have this problem ",1 +"NEXUS-12450","02/22/2017 15:40:39","The ""https.protocols"" system property does not work for Nexus transport","See here: https://issues.apache.org/jira/browse/HTTPCLIENT-1595 The ""https.protocols"" java system property does not work with httpclient 4.3.6, which is used by Nexus 2.14.3 as it's outbound transport. This also affects clients built on the nexus-client-core, including (in particular) the nexus-staging-maven-plugin. This means that if you've got builds running that require Java 7, and they are talking to a Nexus that uses newer TLS protocols the builds will not work. We will need to bump up our httpclient version to fix this problem.",2 +"NEXUS-12452","02/22/2017 21:50:57","bower install fails when user has only group level privileges","If a user has read privileges to a bower group, but not the underlying bower proxy, then the ""bower install "" will fail for any package that is not locally cached. Steps to reproduce: # Setup a bower group {{bower-group}} that has a bower proxy {{bower-proxy}} as a member # Setup a user ({{boweruser}}) that only has view access to {{bower-group}} (i.e. {{nx-repository-view-bower-bower-group-*}}) # Try to install a bower package that is not locally cached in proxy {{bower-proxy}} # Configure {{.bowerrc}} to use the {{boweruser}} user: {code} { ""registry"" : ""http://localhost:8081/repository/bower-group"" , ""resolvers"" : [ ""bower-nexus3-resolver"" ], ""nexus"" : { ""username"" : ""boweruser"", ""password"" : ""boweruser"" } } {code} The bower install command will fail like the following: {code} % bower install mongoose bower mongoose#* not-cached nexus+http://localhost:8081/repository/bower-group/mongoose#* bower mongoose#* resolve nexus+http://localhost:8081/repository/bower-group/mongoose#* bower mongoose#* error http://boweruser:boweruser@localhost:8081/repository/bower-group/mongoose/versions.json (HTTP 403) Stack trace: Error: http://boweruser:boweruser@localhost:8081/repository/bower-group/mongoose/versions.json (HTTP 403) at Request._callback (/usr/local/lib/node_modules/bower-nexus3-resolver/src/index.js:214:20) at Request.self.callback (/usr/local/lib/node_modules/bower-nexus3-resolver/node_modules/request/request.js:198:22) at emitTwo (events.js:106:13) at Request.emit (events.js:192:7) at Request. (/usr/local/lib/node_modules/bower-nexus3-resolver/node_modules/request/request.js:1035:10) at emitOne (events.js:101:20) at Request.emit (events.js:189:7) at IncomingMessage. (/usr/local/lib/node_modules/bower-nexus3-resolver/node_modules/request/request.js:962:12) at emitNone (events.js:91:20) at IncomingMessage.emit (events.js:186:7) Console trace: Error at StandardRenderer.error (/usr/local/lib/node_modules/bower/lib/renderers/StandardRenderer.js:81:37) at Logger. (/usr/local/lib/node_modules/bower/lib/bin/bower.js:110:26) at emitOne (events.js:96:13) at Logger.emit (events.js:189:7) at Logger.emit (/usr/local/lib/node_modules/bower/lib/node_modules/bower-logger/lib/Logger.js:29:39) at /usr/local/lib/node_modules/bower/lib/commands/index.js:48:20 at _rejected (/usr/local/lib/node_modules/bower/lib/node_modules/q/q.js:844:24) at /usr/local/lib/node_modules/bower/lib/node_modules/q/q.js:870:30 at Promise.when (/usr/local/lib/node_modules/bower/lib/node_modules/q/q.js:1122:31) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/bower/lib/node_modules/q/q.js:788:41) System info: Bower version: 1.8.0 Node version: 7.6.0 OS: Darwin 16.4.0 x64 {code}",1 +"NEXUS-12456","02/23/2017 09:03:44","add support for ""npm login"" bearer token authentication to proxied upstream NPM private repositories","When configuring an NPM proxy repository ""HTTP Authentication"" allows for ""Authentication type"" of ""Username"" (I guess that means HTTP Basic Auth) and ""Windows NTLM"". It would be useful to also support the NPM specific ""npm login"" AKA ""npm Bearer Token"" authentication method. *Acceptance* * NXRM administrators can configure npm proxy repos to use _npm bearer token_ the authentication method with the upstream repository",3 +"NEXUS-12457","02/23/2017 18:42:03","npm proxy receiving connection reset responds to client with status 500 instead of 404","If an npm proxy repository receives a connection reset when connecting to it's remote a 500 response is returned by Nexus. This is true even if the inbound request is made through a group repository. Also, the proxy is not auto-blocked when this happens. Moving the affected proxy to the bottom of an npm group repository does not provide a workaround, inbound metadata queries result in outbound queries to all members of the group. Expected: 1. The proxy should not return a 500 response when the remote can't be reached, it should return 404, and log the connection problem. 2. The proxy should auto-block when it's remote can't be reached. Testing note... I used ""cynic"" to set this up, so I could quickly get the ""connection reset"" error happening. Note that ""cynic"" does not run on Mac OSX, so it's necessary to use Linux if you want to use this method. https://pypi.python.org/pypi/cynic/1.0",2 +"NEXUS-12458","02/23/2017 18:51:11","allow HTTP POST for uploading scripts to scripting API","https://books.sonatype.com/nexus-book/reference3/scripting.html#scripting-configuration In order to add a script into Nexus, you need to wrap the script in JSON first, then upload JSON using PUT. This involves two steps: 1) package script as JSON 2) use a client like curl or wget to upload it Wrapping a large script in json is cumbersome. You need to be familiar with JSON escaping rules. It would be user friendly to allow POST *of* the groovy script as a file param as well as the other json payload attributes as POST parameters. Idea from multiple customer feedback they would find it handy to avoid needing step 1. ",1 +"NEXUS-12474","02/28/2017 18:11:28","Last downloaded date is updated on upload","We renamed the last_accessed field to last_downloaded as part of the work on NEXUS-12360, but the existing semantics don't entirely match what one would expect given the rename. In particular, there are a few situations where the Last Downloaded timestamp is updated when content is uploaded, and this doesn't match the expectations for it not to be. Overall there are a couple of obvious solutions: # We can rename the field (again) to something more neutral. # We can stop updating this field for upload operations. Given the expectations in NEXUS-12360 and conversations since then, I'm assuming we'll want to stop updating the field for upload operations and the like.",8 +"NEXUS-12477","02/28/2017 20:30:11","Repository health check fails for angular/core npm package.","Trying to run repository health check on npm package @angular/core/-/core-2.4.8.tgz results in a failure: {quote} Unable to identify component: Malformed npm component with path '/@angular/core/-/core-2.4.8.tgz'. If this is packageRoot, try selecting the tarball instead {quote} The log shows: {code} 2017-02-28 15:02:03,045-0500 ERROR [qtp1575883394-2561] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: healthcheck_AssetDetail.identify, java-method: com.sonatype.nexus.plugins.healthcheck.pro.internal.ui.HealthCheckAssetDetailComponent.identify java.lang.IllegalArgumentException: Malformed npm component with path '/@angular/core/-/core-2.4.8.tgz'. If this is packageRoot, try selecting the tarball instead at com.google.common.base.Preconditions.checkArgument(Preconditions.java:122) [com.google.guava:21.0.0] at com.google.common.base.Preconditions$checkArgument$0.callStatic(Unknown Source) [na:na] at com.sonatype.nexus.plugins.healthcheck.pro.internal.ui.HealthCheckAssetDetailComponent.getIdentifier(HealthCheckAssetDetailComponent.groovy:127) [na:na] at com.sonatype.nexus.plugins.healthcheck.pro.internal.ui.HealthCheckAssetDetailComponent$getIdentifier$1.callStatic(Unknown Source) [na:na] at com.sonatype.nexus.plugins.healthcheck.pro.internal.ui.HealthCheckAssetDetailComponent.identify(HealthCheckAssetDetailComponent.groovy:72) [na:na] at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49) [na:na] at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47) [na:na] at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) [na:na] at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) [na:na] at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_102] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_102] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_102] at java.lang.reflect.Method.invoke(Unknown Source) [na:1.8.0_102] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.2.1.01] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.2.1.01] {code}",2 +"NEXUS-12481","03/01/2017 12:13:26","NullPointerException while rebuilding maven metadata if database operations timeout","{code} 2017-02-27 15:52:48,140+0300 ERROR [quartz-1-thread-18] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RebuildMaven2MetadataTask - Failed to run task 'Rebuilding Maven Metadata of *' on repository 'apps-pre-releases' java.lang.NullPointerException: null at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker.rebuildMetadata(MetadataRebuilder.java:270) [na:na] at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder.rebuild(MetadataRebuilder.java:101) [na:na] at org.sonatype.nexus.repository.maven.internal.hosted.MavenHostedFacetImpl.rebuildMetadata(MavenHostedFacetImpl.java:109) [na:na] at org.sonatype.nexus.repository.maven.tasks.RebuildMaven2MetadataTask.execute(RebuildMaven2MetadataTask.java:58) [na:na] at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:56) [na:na] at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:89) [org.sonatype.nexus.scheduling:3.2.1.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:144) [org.sonatype.nexus.quartz:3.2.1.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:105) [org.sonatype.nexus.quartz:3.2.1.01] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [org.quartz-scheduler.quartz:2.2.2] at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) [org.sonatype.nexus.thread:3.2.1.01] at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [org.apache.shiro.core:1.3.2] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_111] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_111] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_111] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_111] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_111] {code}",1 +"NEXUS-12482","03/01/2017 13:35:57","Inconsistent behaviour with upload to snapshot repository","The following two snapshot paths are invalid and should really be rejected with 400 response. com/sonatype/test/testapp/0.0-dev-SNAPSHOT/testapp-0.0-dev-1487857435-ecfcead.tgz com/sonatype/test/testapp/0.0-dev-SNAPSHOT/testapp-0.0-dev-1488295749-d11e956.tgz I am seeing inconsistent behaviour in both Nexus 2 and Nexus 3 when using a direct deploy method like below. {noformat} curl -v -u admin:admin123 --upload-file somefile.tar.gz http://localhost:8083/nexus/repository/maven-snapshots/com/sonatype/test/testapp/0.0-dev-SNAPSHOT/testapp-0.0-dev-1487857435-ecfcead.tgz {noformat} com/sonatype/test/testapp/0.0-dev-SNAPSHOT/testapp-0.0-dev-1487857435-ecfcead.tgz * Nexus 2 uploads with 201 response * Nexus 3 fails with 400 response com/sonatype/test/testapp/0.0-dev-SNAPSHOT/testapp-0.0-dev-1488295749-d11e956.tgz * Nexus 2 fails with 400 response * Nexus 3 works with 201 response h4. Expected Nexus 2.x: We will not be making a change to Nexus 2.x codebase due to the potential regression risks related to users deploying or retrieving non-timestamped SNAPSHOT versions, which Apache Maven 2.x and Maven 1.x did allow. Nexus 3.x: Nexus 3.x has dropped Maven 1.x support. Nexus 3.x must allow deployments and retrieval of two types of SNAPSHOT versioning schemes: - example-1.0-SNAPSHOT.jar ( deprecated and not recommended in industry ) - example-1.0-20171208.202054-1.jar ( preferred and modern ) All other invalid paths should be rejected for STRICT policy. Keep in mind there is a very strict layout for Maven 2 format repos. The literal {{example-1.0-SNAPSHOT.jar}} form of file name is possible in Maven 2.x or versions of Apache IVY. Sonatype does not recommend using non-timestamped snapshot versioning schemes, and we do not optimize for that use case, however if you do it should work.",2 +"NEXUS-12483","03/01/2017 14:19:27","invalid nexus 2.x NuGet repository files will cause nexus 3.x upgrade to fail with NullPointerException","Migration to Nexus 3 failed with following NullPointerException in the Nexus 2 instance. From the stack trace we can see that the migration of Nuget repo is involved, but unsure of which nuget repo or exact cause of issue: {noformat} 2017-03-01 16:45:37 WARN [2104839360-8820] - org.sonatype.sisu.siesta.server.internal.mappers.ThrowableExceptionMapper - java.lang.NullPointerException java.lang.NullPointerException: null at java.util.HashMap.putMapEntries(HashMap.java:500) ~[na:1.8.0_91] at java.util.HashMap.putAll(HashMap.java:784) ~[na:1.8.0_91] at com.sonatype.nexus.migrationagent.repository.migrators.NugetRepositoryMigratorSupport.extract(NugetRepositoryMigratorSupport.java:84) ~[na:na] at com.sonatype.nexus.migrationagent.repository.RepositoryMigratorSupport.extract(RepositoryMigratorSupport.java:251) ~[na:na] at com.sonatype.nexus.migrationagent.repository.RepositoryMigrator$extract.call(Unknown Source) ~[na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) ~[na:na] at com.sonatype.nexus.migrationagent.repository.RepositoryMigrator$extract.call(Unknown Source) ~[na:na] at com.sonatype.nexus.migrationagent.rest.RepositoryChangelogResource$_get_closure1$_closure2.doCall(RepositoryChangelogResource.groovy:117) ~[na:na] at sun.reflect.GeneratedMethodAccessor1163.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_91] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_91] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) ~[na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) ~[na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) ~[na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) ~[na:na] at groovy.lang.Closure.call(Closure.java:426) ~[na:na] at groovy.lang.Closure.call(Closure.java:442) ~[na:na] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2030) ~[na:na] at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2015) ~[na:na] at org.codehaus.groovy.runtime.dgm$158.invoke(Unknown Source) ~[na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) ~[na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) ~[na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) ~[na:na] at com.sonatype.nexus.migrationagent.rest.RepositoryChangelogResource$_get_closure1.doCall(RepositoryChangelogResource.groovy:108) ~[na:na] at sun.reflect.GeneratedMethodAccessor1186.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_91] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_91] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) ~[na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) ~[na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) ~[na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) ~[na:na] at groovy.lang.Closure.call(Closure.java:426) ~[na:na] at groovy.lang.Closure.call(Closure.java:442) ~[na:na] at org.codehaus.groovy.runtime.IOGroovyMethods.withCloseable(IOGroovyMethods.java:1622) ~[na:na] at org.codehaus.groovy.runtime.NioGroovyMethods.withCloseable(NioGroovyMethods.java:1754) ~[na:na] at sun.reflect.GeneratedMethodAccessor1185.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_91] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_91] at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:54) ~[na:na] at org.codehaus.groovy.runtime.metaclass.NewInstanceMetaMethod.invoke(NewInstanceMetaMethod.java:56) ~[na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) ~[na:na] at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) ~[na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) ~[na:na] at com.sonatype.nexus.migrationagent.rest.RepositoryChangelogResource.get(RepositoryChangelogResource.groovy:107) ~[na:na] at com.sonatype.nexus.migrationagent.rest.RepositoryChangelogResource.getAsSmile(RepositoryChangelogResource.groovy:147) ~[na:na] at sun.reflect.GeneratedMethodAccessor1183.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_91] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_91] at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) ~[nexus-siesta-plugin-2.14.2-01/:na] at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205) ~[nexus-siesta-plugin-2.14.2-01/:na] at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) ~[nexus-siesta-plugin-2.14.2-01/:na] at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302) ~[nexus-siesta-plugin-2.14.2-01/:na] at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) ~[nexus-siesta-plugin-2.14.2-01/:na] at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) ~[nexus-siesta-plugin-2.14.2-01/:na] at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) ~[nexus-siesta-plugin-2.14.2-01/:na] at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511) [nexus-siesta-plugin-2.14.2-01/:na] at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442) [nexus-siesta-plugin-2.14.2-01/:na] at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391) [nexus-siesta-plugin-2.14.2-01/:na] at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381) [nexus-siesta-plugin-2.14.2-01/:na] at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) [nexus-siesta-plugin-2.14.2-01/:na] at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538) [nexus-siesta-plugin-2.14.2-01/:na] at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716) [nexus-siesta-plugin-2.14.2-01/:na] at org.sonatype.sisu.siesta.server.internal.SiestaServlet.service(SiestaServlet.java:121) [nexus-siesta-plugin-2.14.2-01/:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) [javax.servlet-3.0.0.v201112011016.jar:na] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:297) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:281) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:186) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.AbstractServletPipeline.service(AbstractServletPipeline.java:65) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [guice-servlet-3.2.6.jar:3.2.6] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [shiro-web-1.3.2.jar:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.2-01.jar:2.14.2-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.2-01.jar:2.14.2-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.2-01.jar:2.14.2-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.2-01.jar:2.14.2-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.2.6.jar:3.2.6] at com.sonatype.nexus.analytics.internal.RestRequestCollector.doFilter(RestRequestCollector.java:81) [nexus-analytics-plugin-2.14.2-01/:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.2.6.jar:3.2.6] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [shiro-web-1.3.2.jar:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [shiro-web-1.3.2.jar:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [shiro-web-1.3.2.jar:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.3.2.jar:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [shiro-web-1.3.2.jar:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [shiro-web-1.3.2.jar:1.3.2] at org.sonatype.nexus.web.internal.SecurityFilter.executeChain(SecurityFilter.java:90) [nexus-core-2.14.2-01.jar:2.14.2-01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [shiro-web-1.3.2.jar:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.3.2.jar:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.3.2.jar:1.3.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [shiro-core-1.3.2.jar:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [shiro-web-1.3.2.jar:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [shiro-web-1.3.2.jar:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.2-01.jar:2.14.2-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.2.6.jar:3.2.6] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:135) [nexus-licensing-plugin-2.14.2-01/:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.2-01.jar:2.14.2-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) [guice-servlet-3.2.6.jar:3.2.6] at com.yammer.metrics.web.WebappMetricsFilter.doFilter(WebappMetricsFilter.java:76) [metrics-web-2.2.0.jar:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.CommonHeadersFilter.doFilter(CommonHeadersFilter.java:69) [nexus-core-2.14.2-01.jar:2.14.2-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.ErrorPageFilter.doFilter(ErrorPageFilter.java:71) [nexus-core-2.14.2-01.jar:2.14.2-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:66) [nexus-core-2.14.2-01.jar:2.14.2-01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.2-01.jar:2.14.2-01] at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterPipeline.dispatch(NexusGuiceFilter.java:56) [nexus-core-2.14.2-01.jar:2.14.2-01] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [guice-servlet-3.2.6.jar:3.2.6] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [guice-servlet-3.2.6.jar:3.2.6] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476) [jetty-servlet-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501) [jetty-servlet-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) [jetty-security-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429) [jetty-servlet-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at com.yammer.metrics.jetty.InstrumentedHandler.handle(InstrumentedHandler.java:200) [metrics-jetty-2.2.0.jar:na] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.Server.handle(Server.java:370) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) [jetty-http-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) [jetty-http-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696) [jetty-io-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53) [jetty-io-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [jetty-util-8.1.16.v20140903.jar:8.1.16.v20140903] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [jetty-util-8.1.16.v20140903.jar:8.1.16.v20140903] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91] {noformat}",2 +"NEXUS-12484","03/01/2017 16:07:58","targetFramework attribute in NuGet nuspec file is rendered as Unsupported","Nexus does not correctly parse the targetFramework attribute from the nuspec file when we push an artifact to the nuget feed hosted on Nexus. When we check the dependency attribute on the uploaded artifact, it shows ""Unsupported"". E.g. the following values are shown in the dependency attribute: NETStandard.Library:1.6.0:Unsupported|System.Collections.Specialized:4.0.1:Unsupported|System.Runtime.Serialization.Primitives:4.1.1:Unsupported|Microsoft.CSharp:4.0.1:Unsupported|System.Dynamic.Runtime:4.0.11:Unsupported|System.Reflection.TypeExtensions:4.1.0:Unsupported|System.ComponentModel.TypeConverter:4.1.0:Unsupported When downloading the artifact with Nexus as a proxy, it works fine what means that there are no Unsupported values but the real version mentioned there. For me, it looks like the functionality that was built in NEXUS-6158 is broken as it doesn't just take the information that is provided from the nuspec file but is replacing that by ""Unsupported"" in the feed. Or is this expected behavior? It's not about having this information searchable via the API or so, it's about that it's just not there.",1 +"NEXUS-12485","03/01/2017 16:51:46","add privilege that controls access to health check summary report","I've granted every healthcheck and iq privilege there is to a user, and they still do not have permissions to view the healthcheck summary report. It should be possible for a non-admin user to view both the summary and the detail health check report in Nexus 3. This was tested in both Nexus 3.2.1 and 3.3.0-SNAPSHOT. A support zip with my test configuration is attached, the test user has credentials ""test:test"". ",2 +"NEXUS-12486","03/01/2017 21:01:34","Book example fails to download required dependencies","Looks like between 3.2.0 and 3.2.1 something in the dependency chain here has changed substantially enough to make this example fail. Looks suspiciously like one of the libraries we use was upgraded and somehow we no longer have concrete versions for several dependencies, therefore attempting to download 'working' versions of these libs. See attached output for more(captured with these params while running the script: -Dgroovy.grape.report.downloads=true -Divy.message.logger.level=4 ). Likely will require updating the dependency info in the script, but not necessarily in a trivial way if the problem really is dependency poms missing concrete version info. https://github.com/sonatype/nexus-book-examples/blob/055bfa74f6c2761e234834537c3d4e89bc06afb9/scripting/complex-script/addUpdateScript.groovy ",0.5 +"NEXUS-12488","03/02/2017 12:56:26","remote https repository with TLS client certificate loaded in NXRM JVM keystore not trusted","When a remote repository requires SSL client certificate authentication, Nexus 3 (3.2.0-01) does not match the client certificate present in the keyStore. With SSL debugging enabled, it logs: {{2017-03-01 16:38:02,934+0100 INFO [qtp1053574947-168] adm_lop sun.security.ssl.ClientHandshaker - Warning: no suitable certificate found - continuing without client authentication}} As a result, we can't see the client certificate being sent to the remote repository in a tcpdump. In the end Nexus throws an exception: {{java.io.IOException: Received fatal alert: handshake_failure}} The keyStore and trustStore's are the same as the previous old version 2 (nexus-2.14.2-01) where it was working well. A test with SSLPoke with the same setting and stores works fine. I attached log files for the working SSLPoke and the non-working Nexus.",3 +"NEXUS-12496","03/03/2017 15:30:56","FileBlobStore error handling makes it impossible to see what blob causes a runtime exception","A user has a snapshot removal task failing due to a problem with a file in the blobstore: {code} 2017-03-03 09:48:39,170+0000 ERROR [quartz-1-thread-12] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - Failed to run task 'Remove Maven snapshots from internal-snapshot-repositories' on repository 'internal-snapshot-repositories' java.lang.NumberFormatException: null at java.lang.Long.parseLong(Long.java:552) [na:1.8.0_112] at java.lang.Long.parseLong(Long.java:631) [na:1.8.0_112] at org.sonatype.nexus.blobstore.file.internal.BlobAttributes.readFrom(BlobAttributes.java:117) [na:na] at org.sonatype.nexus.blobstore.file.internal.BlobAttributes.load(BlobAttributes.java:98) [na:na] at org.sonatype.nexus.blobstore.file.internal.FileBlobStore.get(FileBlobStore.java:364) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [org.sonatype.nexus.common:3.2.1.01] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [org.sonatype.nexus.common:3.2.1.01] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [org.sonatype.nexus.common:3.2.1.01] at org.sonatype.nexus.repository.storage.BlobTx.get(BlobTx.java:129) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.getBlob(StorageTxImpl.java:738) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.requireBlob(StorageTxImpl.java:744) [na:na] at sun.reflect.GeneratedMethodAccessor248.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_112] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_112] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [org.sonatype.nexus.common:3.2.1.01] {code} There is a problem with the creation timestamp: https://github.com/sonatype/nexus-internal/blob/release-3.2.1-01/components/nexus-blobstore-file/src/main/java/org/sonatype/nexus/blobstore/file/internal/BlobAttributes.java#L117 But we only catch IOException, so it is now impossible to see what blob caused this: https://github.com/sonatype/nexus-internal/blob/release-3.2.1-01/components/nexus-blobstore-file/src/main/java/org/sonatype/nexus/blobstore/file/internal/FileBlobStore.java#L378 Is there a reason not to catch ""Exception"" there, and then wrap it up in ""BlobStoreException""? We need see what blob caused the issue whenever any exception is thrown. ",1 +"NEXUS-12508","03/06/2017 19:38:46","raw proxy repository negative not found cache does not cache correctly","While testing caching, I checked NFC in the raw repository by performing the below steps. I was unable to get it working. npm did work in 3.2.1 using the same procedure so raw, at least more recently, just doesn't seem to be working. Steps I took: 1) Create raw hosted repo 2) Create raw proxy repo (of #1). Have NFC timeout as 5 min (from default 1440 min). 3) Hit the url for package on proxy (e.g. http://localhost:8081/repository/rawproxy1/ticketlist.txt). Should return not found. 4) Push the file (I used curl; curl -v --user 'admin:admin123' --upload-file ./ticketlist.txt http://localhost:8081/repository/rawhosted1/ticketlist.txt). 5) Before 5 minutes hit the url for package on proxy (e.g. http://localhost:8081/repository/rawproxy1/ticketlist.txt). EXPECTED not found but BUG/Test Concern #1: It loads.",2 +"NEXUS-12513","03/07/2017 15:08:09","invalid nexus 2.x npm packages will fail the upgrade to nexus 3.x with 500 internal server error","An invalid npm package causes the migration to Nexus 3 fail with a 500 error. {noformat} 2017-03-07 06:56:58,371+0100 WARN [plan-executor-8-thread-2] admin com.sonatype.nexus.migration.repository.ProcessChangesStep - Process changes failed javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.handleErrorStatus(ClientInvocation.java:209) [na:na] at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:174) [na:na] at org.jboss.resteasy.client.jaxrs.internal.proxy.extractors.BodyEntityExtractor.extractEntity(BodyEntityExtractor.java:59) [na:na] at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:104) [na:na] at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:64) [na:na] at com.sonatype.nexus.migration.client.$Proxy199.get(Unknown Source) [com.sonatype.nexus.plugins.nexus-migration-plugin:3.2.0.01] {noformat} The cause of issue is shown in the Nexus 2 logs {noformat} 2017-03-07 06:56:58,318+0100 WARN [qtp271176893-1024] *UNKNOWN org.sonatype.sisu.siesta.server.internal.mappers.ThrowableExceptionMapper - java.lang.IllegalStateException: PackageVersion expected for npm tarball /somecompany-stilguide/-rev/undefined java.lang.IllegalStateException: PackageVersion expected for npm tarball /somecompany-stilguide/-rev/undefined at com.google.common.base.Preconditions.checkState(Preconditions.java:200) ~[guava-16.0.1.jar:na] at com.sonatype.nexus.migrationagent.repository.migrators.NpmRepositoryMigrator.findVersion(NpmRepositoryMigrator.java:85) ~[na:na] at com.sonatype.nexus.migrationagent.repository.migrators.NpmRepositoryMigrator.extract(NpmRepositoryMigrator.java:63) ~[na:na] at com.sonatype.nexus.migrationagent.repository.RepositoryMigratorSupport.extract(RepositoryMigratorSupport.java:251) ~[na:na] at com.sonatype.nexus.migrationagent.repository.RepositoryMigrator$extract$2.call(Unknown Source) ~[na:na] at com.sonatype.nexus.migrationagent.rest.RepositoryChangelogResource$_get_closure1$_closure2.doCall(RepositoryChangelogResource.groovy:117) ~[na:na] {noformat} Cause of the issue is the following file: sonatype-work/nexus/storage/npm-internal/somecompany-stilguide/-rev/undefined This should really not cause a failure. The migration should just log a warning and skip this invalid component. ",1 +"NEXUS-12520","03/08/2017 08:46:35","assets visible by browsing are not available when searching due to non-optimized elasticsearch configuration rebuilding indexes","Hi, Nexus OSS 3.1.0-04, Linux Some maven releases artefacts are missing when performing a search but I can see them when browsing. Steps to reproduce : - In the top global search textfield, I type the name of the artefact : nxxxx, then I press Enter <2 secs> - I see 2 releases (1.0.3 and 1.0.4) and 3 snapshots release 1.0.1 is missing (but I'm sure it exists as a mvn deploy complain it already exist and the repository is configured in no redeploy) Notes: - adding quotes around the searched keywork produces the same results - Being logged-in or not has no effect on the issue Then, I browse: - I click on ""Components"" - I select the (Release) repository of the artefact - I insert nxxxx in the right-side filter [very long search : 20 secs+] - I can see all the three releases : 1.0.1, 1.0.3 and 1.0.4 Reading the doc, I pretty sure than I don't need to run the Nexus rebuild index task (as all artefacts are deployed through Nexus with mvn deploy) but in case off, I run it : sometimes missing artefacts in the search reappear, sometimes others disappear again, so I disabled it again. What do you think ? Thanks",3 +"NEXUS-12523","03/08/2017 13:47:06","add support for more secure and salted LDAP PasswordEncoders such as SHA-256 SHA-384 SHA-512","Failed to connect to LDAP Server: Password encoding: SSHA512 has no associated PasswordEncoder. 2017-03-22 16:49:37,575+0100 INFO UNKNOWN org.sonatype.nexus.ldap.internal.connector.dao.password.DefaultPasswordEncoderManager - Verifying password with encoding: SSHA512 (encoder: null).",2 +"NEXUS-12535","03/10/2017 13:44:26","Manage Privileges search dialog loses cursor focus","The search dialog in the Manage Privileges view loses cursor focus on the search text box while completing the auto-filter action after a user has begun to type search criteria. It is likely the user will need to continue entering their search criteria to further narrow the results, causing the user to have to go through a process of selecting the search text box and typing, possibly several times. This behavior is inconsistent within other UI search dialogs and results in a frustrating user experience.",1 +"NEXUS-12540","03/12/2017 09:31:28","Unable to Start Nexus-public","I am following directions at [https://www.github.com/sonatype/nexus-public]. I am running on OS X with: {code} java version ""1.8.0_111"" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode) {code} {code} Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0 Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T09:41:47-07:00) Maven home: /usr/local/Cellar/maven/3.3.9/libexec Java version: 1.8.0_111, vendor: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre Default locale: en_US, platform encoding: UTF-8 OS name: ""mac os x"", version: ""10.12.3"", arch: ""x86_64"", family: ""mac"" {code} Nexus is unable to start with the following stacktrace: {code} 2017-03-11 14:54:36,737-0700 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.internal.orient.DatabaseServerImpl - Activated 2017-03-11 14:54:36,743-0700 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.extender.NexusLifecycleManager - Start UPGRADE 2017-03-11 14:54:37,841-0700 WARN [FelixStartLevel] *SYSTEM org.sonatype.nexus.upgrade.plan.DependencyResolver - ComponentDatabaseUpgrade_1_2{upgrades=@org.sonatype.nexus.common.upgrade.Upgrades(model=component, from=1.1, to=1.2), dependsOn=[]} requires UpgradeDependency{model='component', version='1.1'} 2017-03-11 14:54:37,928-0700 ERROR [FelixStartLevel] *SYSTEM org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl - Failed transition: NEW -> STARTED org.sonatype.nexus.upgrade.plan.DependencyResolver$UnresolvedDependencyException: 1 unresolved dependency: ComponentDatabaseUpgrade_1_2{upgrades=@org.sonatype.nexus.common.upgrade.Upgrades(model=component, from=1.1, to=1.2), dependsOn=[]} requires UpgradeDependency{model='component', version='1.1'} at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [na:1.8.0_111] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [na:1.8.0_111] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [na:1.8.0_111] at java.lang.reflect.Constructor.newInstance(Constructor.java:423) [na:1.8.0_111] at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83) [na:na] at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247) [na:na] at org.sonatype.nexus.upgrade.plan.DependencyResolver.resolve(DependencyResolver.groovy:149) [na:na] at org.sonatype.nexus.upgrade.internal.UpgradeManager.order(UpgradeManager.java:113) [na:na] at org.sonatype.nexus.upgrade.internal.UpgradeManager.plan(UpgradeManager.java:81) [na:na] at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.doStart(UpgradeServiceImpl.java:82) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) [org.sonatype.nexus.common:3.3.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [org.sonatype.nexus.common:3.3.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) [org.sonatype.nexus.common:3.3.0.SNAPSHOT] at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) [org.sonatype.nexus.common:3.3.0.SNAPSHOT] at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:154) [org.sonatype.nexus.extender:3.3.0.SNAPSHOT] at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:94) [org.sonatype.nexus.extender:3.3.0.SNAPSHOT] at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:186) [org.sonatype.nexus.extender:3.3.0.SNAPSHOT] at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429) [org.apache.felix.framework-5.6.1.jar:na] at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) [org.apache.felix.framework-5.6.1.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_111] 2017-03-11 14:54:37,939-0700 ERROR [FelixStartLevel] *SYSTEM org.sonatype.nexus.extender.NexusContextListener - Failed to start nexus org.sonatype.nexus.upgrade.plan.DependencyResolver$UnresolvedDependencyException: 1 unresolved dependency: ComponentDatabaseUpgrade_1_2{upgrades=@org.sonatype.nexus.common.upgrade.Upgrades(model=component, from=1.1, to=1.2), dependsOn=[]} requires UpgradeDependency{model='component', version='1.1'} at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [na:1.8.0_111] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [na:1.8.0_111] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [na:1.8.0_111] at java.lang.reflect.Constructor.newInstance(Constructor.java:423) [na:1.8.0_111] at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83) [na:na] at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247) [na:na] at org.sonatype.nexus.upgrade.plan.DependencyResolver.resolve(DependencyResolver.groovy:149) [na:na] at org.sonatype.nexus.upgrade.internal.UpgradeManager.order(UpgradeManager.java:113) [na:na] at org.sonatype.nexus.upgrade.internal.UpgradeManager.plan(UpgradeManager.java:81) [na:na] at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.doStart(UpgradeServiceImpl.java:82) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) [na:na] at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) [na:na] at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:154) [na:na] at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:94) [na:na] at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:186) [na:na] at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429) [org.apache.felix.framework-5.6.1.jar:na] at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) [org.apache.felix.framework-5.6.1.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_111] ERROR: Framework listener delivery error. org.sonatype.nexus.upgrade.plan.DependencyResolver$UnresolvedDependencyException: 1 unresolved dependency: ComponentDatabaseUpgrade_1_2{upgrades=@org.sonatype.nexus.common.upgrade.Upgrades(model=component, from=1.1, to=1.2), dependsOn=[]} requires UpgradeDependency{model='component', version='1.1'} at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83) at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247) at org.sonatype.nexus.upgrade.plan.DependencyResolver.resolve(DependencyResolver.groovy:149) at org.sonatype.nexus.upgrade.internal.UpgradeManager.order(UpgradeManager.java:113) at org.sonatype.nexus.upgrade.internal.UpgradeManager.plan(UpgradeManager.java:81) at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.doStart(UpgradeServiceImpl.java:82) at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:154) at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:94) at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:186) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) at java.lang.Thread.run(Thread.java:745) {code} Has anyone encountered this? Is there a way through?",2 +"NEXUS-12651","03/14/2017 14:27:43","Some Nuget targetFramework metadata does not have the same makeup as others","While testing NEXUS-12484, I loaded https://www.nuget.org/packages/Elasticsearch.Net/ (5.2.0) into the default nuget.org-proxy. I noticed the targetFramework metadata displayed link this: {quote} ::net45|::net46|NETStandard.Library:1.6.0:netstandard1.3|System.Collections.Specialized:4.0.1:netstandard1.3|System.Runtime.Serialization.Primitives:4.1.1:netstandard1.3|Microsoft.CSharp:4.0.1:netstandard1.3|System.Dynamic.Runtime:4.0.11:netstandard1.3|System.Reflection.TypeExtensions:4.1.0:netstandard1.3|System.ComponentModel.TypeConverter:4.1.0:netstandard1.3 {quote} However, this seems to be missing the >= markup present in other packages. For example, ""NETStandard.Library (>= 1.6.0)"" is listed and we show ""NETStandard.Library:1.6.0:netstandard1.3"" but I feel that should be ""NETStandard.Library:[1.6.0, ):netstandard1.3"". Compare with https://www.nuget.org/packages/AutoMapper/4.2.0 {quote} ::portable45-net45+win8+wpa81|::net45|Microsoft.CSharp:[4.0.0, ):dotnet5.1|System.Collections:[4.0.10, ):dotnet5.1|System.Collections.Concurrent:[4.0.10, ):dotnet5.1|System.Collections.Specialized:[4.0.0, ):dotnet5.1|System.ComponentModel.TypeConverter:[4.0.0, ):dotnet5.1|System.Diagnostics.Debug:[4.0.10, ):dotnet5.1|System.Dynamic.Runtime:[4.0.10, ):dotnet5.1|System.Globalization:[4.0.10, ):dotnet5.1|System.Linq:[4.0.0, ):dotnet5.1|System.Linq.Expressions:[4.0.10, ):dotnet5.1|System.Linq.Queryable:[4.0.0, ):dotnet5.1|System.ObjectModel:[4.0.10, ):dotnet5.1|System.Reflection:[4.0.10, ):dotnet5.1|System.Reflection.Emit:[4.0.0, ):dotnet5.1|System.Reflection.Emit.ILGeneration:[4.0.0, ):dotnet5.1|System.Reflection.Extensions:[4.0.0, ):dotnet5.1|System.Reflection.Primitives:[4.0.0, ):dotnet5.1|System.Reflection.TypeExtensions:[4.0.0, ):dotnet5.1|System.Runtime:[4.0.20, ):dotnet5.1|System.Runtime.Extensions:[4.0.10, ):dotnet5.1|System.Text.RegularExpressions:[4.0.10, ):dotnet5.1|System.Threading:[4.0.10, ):dotnet5.1|System.Threading.Tasks:[4.0.10, ):dotnet5.1 {quote} I did not check older NX3 at this time because of NEXUS-12484, I do not believe I could (would show as ""Unsupported"").",3 +"NEXUS-12655","03/14/2017 17:11:32","HTTP requests which attempt modification should receive 503 when server is read-only mode","(This should probably get broken into a couple of issues.) *Acceptance* During read-only mode, NXRM won't accept writes. In this situation, it would be ideal if: * Rejected requests return 503 specifically (rather than other 500-level responses). * The reason code should specify that the cluster is in read-only mode * This covers REST endpoints, and repository write access",3 +"NEXUS-12673","03/17/2017 02:25:26","display given roles in alphabetical order by name instead of arbitrary order","The role definition screen appears to display the contained roles in an arbitrary order (maybe db insertion order). This makes them hard to grok, and is a usability regression from NX2. Acceptance * Order the roles in the role list alphabetically ",1 +"NEXUS-12677","03/17/2017 15:08:02","proxy repository default negative cache size is too low to be effective","Nexus 2 had a global not found cache of 100000 entries shared across all repositories. When we suspected large customers were overflowing this 100000 max entry limit, we would ask them to up this to 1 million and this resulted in noticeable performance improvements ( throughput) Nexus 3 has a per repository not found cache of 1000 entries. In the majority of cases the Nexus 3 default cache size is too low and forces Nexus to go remote more often than desired. ",2 +"NEXUS-12680","03/17/2017 15:59:53","nexus-staging-maven-plugin does not work with SNI","The nexus-staging-maven-plugin does not work with SSL enabled servers that use SNI. This can be easily reproduced by setting the ""nexusUrl"" parameter in the plugin configuration as follows: {code:XML} https://nexus.opendaylight.org/ {code} This results in: {quote} \[ERROR\] Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.8:deploy (injected-nexus-deploy) on project parent: Execution injected-nexus-deploy of goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.8:deploy failed: Nexus connection problem to URL [https://nexus.opendaylight.org/ ]: com.sun.jersey.api.client.ClientHandlerException: javax.net.ssl.SSLException: hostname in certificate didn't match: != OR -> \[Help 1\] {quote} ",2 +"NEXUS-12684","03/20/2017 04:48:32","HEAD request to /v2//manifests/ results in 404 error","When you specify a HEAD request to /v2//manifests/ for an existing docker image in a Nexus docker repository, a 404 error will occur. For example, I have tried to send a HEAD request to something like [http://host:8081/respository/dockerRepo/v2/test/alpine/manifests/latest] and I get back a 404. However, if I try a GET request to [http://host:8081/respository/dockerRepo/v2/test/alpine/manifests/latest], I get back a response with the details that I am looking for. In contrast, in a Docker registry, a HEAD request to [http://host:8081/v2/test/alpine/manifests/latest] works properly. For more details about the API call, you can go to ""https://docs.docker.com/registry/spec/api/#pulling-an-image"" and look for ""Existing Manifests"" The HEAD request should be supported in Nexus docker repositories and not be a 404 error.",3 +"NEXUS-12691","03/21/2017 13:57:18","group privileges insufficient to search for member content","Logging in as a registered user which has BROWSE and READ privileges to the GROUP containing several private repos (and also nx-search-read). The user DOES NOT have BROWSE or READ privileges to the individual group repository member repos in the GROUP, only the GROUP repository (which works fine as maven2 repos). Doing a search through the GUI does not yield any result at all, which is not what I expected. The user can browse to the component and download, but is unable to search this component Acceptance criteria: * If the user has BROWSE permissions to the group, they should be able to search for components in the member repositories of that group (even if they don't have explicit permissions for those repositories). They should also be able to view the component/asset details, though not download the assets (that requires the READ permission). * Make sure that component-level permissions are still applied.",5 +"NEXUS-12693","03/21/2017 15:00:10","Create wildcard privilege form does not redirect to list view on success","Observed on master (d5e04b386). 1. Log in as admin. 2. Navigate to Security -> Privileges 3. Click Create privilege 4. Pick wildcard. 5. Enter valid name and pattern. 6. Submit ('create privilege'). Expect: to be taken back to the privileges list. Observe: remain on Create wildcard privilege form. Form submit button still enabled. There are 2 SecurityIT tests affected by this bug: * Can add, edit, and delete wildcard privileges * Can add, edit, and delete content selector privileges ",2 +"NEXUS-12711","03/23/2017 17:59:49","Nexus docker registry delete REST api partially deletes an image","Deleted a docker image through docker registry REST api. The image was deleted successfully from Nexus UI, but still lists in the GET /v2//tags/list API. No workaround exists. Steps: *Get image digest:* {code:java} curl -v -u ':' -H 'Accept:application/vnd.docker.distribution.manifest.v2+json' https://:/v2/testimg/manifests/1.0.0 {code} From response header: Docker-Content-Digest: sha256:0c2e8350966123c27427152c66024d280e8d60a01ca37b3bac84b61882b6f832 *Delete image* {code:java} curl -v -X DELETE -u ':' https://:/v2/testimg/manifests/sha256:0c2e8350966123c27427152c66024d280e8d60a01ca37b3bac84b61882b6f832 {code} get response: HTTP/1.1 202 Accepted At this point image has been deleted from Nexus UI. But below list tags call still return the version {code:java} curl -u ':' https://:/v2/testimg/tags/list {""name"":""testimg"",""tags"":[""1.0.0""]} {code} ",3 +"NEXUS-12716","03/24/2017 16:01:03","NullPointerException when running npm search","When trying npm search it fails with a NullPointerException. I have reproduced this issue on 3.2.1. It seems to be related to searching across multiple blob stores. The npm search is run using the npm-group npm-group using npm-group-blobstore npm-host using npm-host-blobstore npm-proxy using npm-proxy-blobstore When all three are on the same blobstore, I am unable reproduce. {noformat} 2017-03-23 09:58:02,218+0100 WARN [qtp545023962-771] nexus-usr-common org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure java.io.IOException: java.lang.NullPointerException at com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetProxy.searchIndex(NpmSearchIndexFacetProxy.java:55) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetGroup.buildIndex(NpmSearchIndexFacetGroup.java:93) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetCaching.searchIndex(NpmSearchIndexFacetCaching.java:65) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$7.handle(NpmHandlers.java:248) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.Context.start(Context.java:114) [na:na] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:60) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) [na:na] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.1.0.04] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.1.0.04] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:112) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.1.0.04] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.base:3.1.0.04] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.base:3.1.0.04] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.1.0.04] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:197) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112] Caused by: java.lang.NullPointerException: null at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210) [na:na] at org.sonatype.nexus.blobstore.file.internal.FileBlobStore.copy(FileBlobStore.java:271) [na:na] at org.sonatype.nexus.repository.storage.BlobTx.createByCopying(BlobTx.java:110) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.createBlob(StorageTxImpl.java:607) [na:na] at sun.reflect.GeneratedMethodAccessor708.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_112] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_112] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:69) [na:na] at com.sun.proxy.$Proxy178.createBlob(Unknown Source) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmFacetUtils.storeContent(NpmFacetUtils.java:130) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmFacetUtils.saveRepositoryRoot(NpmFacetUtils.java:194) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.doPutRepositoryRoot(NpmProxyFacetImpl.java:292) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:45) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.putRepositoryRoot(NpmProxyFacetImpl.java:262) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.store(NpmProxyFacetImpl.java:112) [na:na] at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:168) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetProxy.searchIndex(NpmSearchIndexFacetProxy.java:48) [na:na] ... 94 common frames omitted {noformat}",3 +"NEXUS-12780","03/28/2017 22:36:04","task scheduler threads may deadlock at QuartzTaskJob.mayBlock() when more than 20 blocking tasks are encountered","During some stress testing earlier, I added 100 Maven2 proxy repos and enabled ""IQ: Audit and Quarantine"" on them. Upon restarting Nexus, I was presented with 100 ""Repository Audit"" tasks that wouldn't move forward. From the thread dump: {noformat} ""quartz-4-thread-1"" #211 prio=5 os_prio=0 tid=0x000000001b323800 nid=0xba0 waiting on condition [0x000000004a9ce000] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000000ba350ea0> (a java.util.concurrent.CountDownLatch$Sync) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1037) at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1328) at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:277) at org.sonatype.nexus.quartz.internal.task.QuartzTaskFuture.get(QuartzTaskFuture.java:203) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.mayBlock(QuartzTaskJob.java:222) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:139) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:106) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) {noformat} Per default configuration, 20 threads are allocated for Quartz, all of them are stuck like that in {{QuartzTaskJob.mayBlock()}}.",3 +"NEXUS-12793","03/29/2017 16:01:14","if java.lang.Error is thrown during request processing it may not be logged at default log levels","A report was made recently where an NPM package deployment was failing with a 500 response. Analysis was performed on the Nexus 3 logs {noformat:title=request.log} 172.17.25.121 - admin [22/Mar/2017:23:11:27 +0000] ""PUT /repository/uwp/@itg%2fwebstack HTTP/1.1"" 500 0 4624 ""npm/4.4.1 node/v6.9.5 win32 x64"" {noformat} Nexus log were completely silent about what happened: {noformat:title=nexus.log} 2017-03-22 23:10:00,025+0000 INFO [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Storage facet cleanup' [repository.storage-facet-cleanup] state change RUNNING -> WAITING (OK) 2017-03-22 23:13:37,011+0000 INFO [qtp983685524-42] uxteam org.sonatype.nexus.internal.wonderland.DownloadServiceImpl - Downloads directory: /nexus-data/downloads {noformat} After changing the ROOT logger level to DEBUG the problem was reproduced and it was determined an OutOfMemoryError was being thrown: {noformat} 2017-03-28 21:26:06,353+0000 DEBUG [qtp1560565746-42] admin com.sonatype.nexus.repository.npm.internal.NpmHandlers - [putPackage] repository: uwp tokens: {packageScope=itg, packageName=webstack} 2017-03-28 21:26:06,355+0000 DEBUG [qtp1560565746-42] admin org.sonatype.nexus.blobstore.file.internal.FileBlobStore - Writing blob tmp$3203ab6f-0137-4616-91a6-3ce772e49ebf to /nexus-data/blobs/default/content/tmp/tmp$3203ab6f-0137-4616-91a6-3ce772e49ebf.bytes 2017-03-28 21:26:06,391+0000 DEBUG [AccessLogWriter] *SYSTEM com.sonatype.nexus.licensing.internal.access.AccessLogWriter - Wrote 1 rows 2017-03-28 21:26:08,578+0000 DEBUG [nexus_QuartzSchedulerThread] *SYSTEM org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Acquire next triggers: noLaterThan=1490736398577, maxCount=1, timeWindow=0 2017-03-28 21:26:09,579+0000 DEBUG [qtp1560565746-42] admin org.sonatype.nexus.common.property.PropertiesFile - Storing: /nexus-data/blobs/default/content/tmp/tmp$3203ab6f-0137-4616-91a6-3ce772e49ebf.587140a0-f99c-4cad-89a5-2dbd2b44b652.properties 2017-03-28 21:26:09,581+0000 DEBUG [qtp1560565746-42] admin org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioning: OPEN -> ACTIVE 2017-03-28 21:26:09,581+0000 DEBUG [qtp1560565746-42] admin org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioned: ACTIVE 2017-03-28 21:26:09,581+0000 DEBUG [qtp1560565746-42] admin com.sonatype.nexus.repository.npm.internal.NpmHostedFacetImpl - Storing package: @itg/webstack 2017-03-28 21:26:09,859+0000 DEBUG [nexus-httpclient-eviction-thread] *SYSTEM org.sonatype.nexus.internal.httpclient.SharedHttpClientConnectionManager - Closing expired connections 2017-03-28 21:26:09,859+0000 DEBUG [nexus-httpclient-eviction-thread] *SYSTEM org.sonatype.nexus.internal.httpclient.SharedHttpClientConnectionManager - Closing connections idle longer than 30000 MILLISECONDS 2017-03-28 21:26:10,283+0000 DEBUG [qtp1560565746-46] *UNKNOWN org.apache.shiro.web.servlet.SimpleCookie - Found 'NXSESSIONID' cookie value [c888ee23-5e86-4049-a7e8-0cb5b6d14757] 2017-03-28 21:26:10,284+0000 DEBUG [qtp1560565746-46] uxteam com.softwarementors.extjs.djn.router.processor.poll.PollRequestProcessor - Request data (POLL)=>anonymousUsername=0164dd50523969de34f4d8d75d6cfb46e269fecd&uiSettings=059e1973fddfadb8cf4427d23ea5fe51198a3427&serverId=70042a042d1d9725ccdc1f531f64cc04cddc1648&analytics=ac0b77a721ddea2e2231fd1b213b4080a09e075e&activeBundles=a14e668e3aa94ba43c5265fa76070b0f940bbee9&license=ffbea1347377d561a92c4c981b84374e3cddf5b1&audit=ac0b77a721ddea2e2231fd1b213b4080a09e075e&permissions=c3178ca8aa6bf114cb8b2d59a09be94915dd53e1&migration=ac0b77a721ddea2e2231fd1b213b4080a09e075e&browseableformats=78028ac5d7afe60917fe88d8734b614665628989&user=5af6359a60e883b221026902300355ca7276809f&db=dc2b0c34765896e5b30abc6af5161718ee033ff1&status=04ffe184b3c52621f741f75c3765961e325245f5 Event name='rapture_State_get' 2017-03-28 21:26:10,284+0000 DEBUG [qtp1560565746-46] uxteam org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Creating instance of action class 'org.sonatype.nexus.rapture.internal.state.StateComponent' mapped to 'rapture_State 2017-03-28 21:26:10,284+0000 DEBUG [qtp1560565746-46] uxteam org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Invoking action method: rapture_State.rapture_State_get, java-method: org.sonatype.nexus.rapture.internal.state.StateComponent.getState 2017-03-28 21:26:10,290+0000 DEBUG [qtp1560565746-46] uxteam org.sonatype.nexus.rapture.internal.security.SecurityComponent - Calculating permissions 2017-03-28 21:26:10,293+0000 DEBUG [qtp1560565746-46] uxteam com.softwarementors.extjs.djn.Timer - - Java method dispatch time (StateComponent.rapture_State_get): 8.63 ms. 2017-03-28 21:26:10,294+0000 DEBUG [qtp1560565746-46] uxteam com.softwarementors.extjs.djn.router.processor.poll.PollRequestProcessor - ResponseData data (POLL)=>{""data"":{""success"":true,""data"":{}},""name"":""rapture_State_get"",""type"":""event""} 2017-03-28 21:26:10,294+0000 DEBUG [qtp1560565746-46] uxteam com.softwarementors.extjs.djn.Timer - Total servlet processing time: 9.6 ms. 2017-03-28 21:26:10,986+0000 DEBUG [file-blobstore-metrics-2-thread-1] *SYSTEM org.sonatype.nexus.common.property.PropertiesFile - Storing: /nexus-data/blobs/default/99F177D0-34BD076E-72732585-7A28CC73-89EF2E26-metrics.properties 2017-03-28 21:26:10,986+0000 DEBUG [qtp1560565746-42] admin org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioning: ACTIVE -> CLOSED 2017-03-28 21:26:10,987+0000 DEBUG [qtp1560565746-42] admin org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioned: CLOSED 2017-03-28 21:26:10,988+0000 DEBUG [qtp1560565746-42] admin org.sonatype.nexus.blobstore.file.internal.FileBlobStore - Hard deleting blob tmp$3203ab6f-0137-4616-91a6-3ce772e49ebf 2017-03-28 21:26:10,988+0000 DEBUG [qtp1560565746-42] admin org.sonatype.nexus.common.property.PropertiesFile - Loading: /nexus-data/blobs/default/content/tmp/tmp$3203ab6f-0137-4616-91a6-3ce772e49ebf.properties 2017-03-28 21:26:11,014+0000 DEBUG [qtp1560565746-42] admin org.sonatype.nexus.blobstore.file.internal.FileBlobStore - Deleted /nexus-data/blobs/default/content/tmp/tmp$3203ab6f-0137-4616-91a6-3ce772e49ebf.bytes 2017-03-28 21:26:11,014+0000 DEBUG [qtp1560565746-42] admin org.sonatype.nexus.blobstore.file.internal.FileBlobStore - Deleted /nexus-data/blobs/default/content/tmp/tmp$3203ab6f-0137-4616-91a6-3ce772e49ebf.properties 2017-03-28 21:26:11,020+0000 DEBUG [qtp1560565746-42] *SYSTEM org.sonatype.nexus.internal.web.ErrorPageServlet - Attaching cause javax.servlet.ServletException: Filtered request failed. at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:384) [na:na] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [na:na] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [na:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.repository.httpbridge.internal.ExhaustRequestFilter.doFilter(ExhaustRequestFilter.java:71) [na:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:112) [na:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [na:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68) [na:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:102) [org.sonatype.nexus.base:3.2.1.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98) [org.sonatype.nexus.base:3.2.1.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.1.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) [com.google.inject:4.1.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.2.1.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112] Caused by: java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOfRange(Arrays.java:3664) [na:1.8.0_112] at java.lang.String.(String.java:207) [na:1.8.0_112] at java.lang.StringBuilder.toString(StringBuilder.java:407) [na:1.8.0_112] at com.fasterxml.jackson.core.util.TextBuffer.contentsAsString(TextBuffer.java:356) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._finishAndReturnString(UTF8StreamJsonParser.java:2466) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.getText(UTF8StreamJsonParser.java:315) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.deserialize(UntypedObjectDeserializer.java:514) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.mapObject(UntypedObjectDeserializer.java:638) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.deserialize(UntypedObjectDeserializer.java:496) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.mapObject(UntypedObjectDeserializer.java:629) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.deserialize(UntypedObjectDeserializer.java:496) [na:na] at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringKeyMap(MapDeserializer.java:507) [na:na] at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:352) [na:na] at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:27) [na:na] at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3789) [na:na] at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2906) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmJsonUtils.parse(NpmJsonUtils.java:69) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmFacetUtils.parse(NpmFacetUtils.java:94) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHostedFacetImpl.putPackageRoot(NpmHostedFacetImpl.java:98) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHostedFacetImpl.putPackage(NpmHostedFacetImpl.java:81) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$3.handle(NpmHandlers.java:172) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] 2017-03-28 21:26:12,800+0000 DEBUG [file-blobstore-metrics-2-thread-1] *SYSTEM org.sonatype.nexus.common.property.PropertiesFile - Storing: /nexus-data/blobs/default/99F177D0-34BD076E-72732585-7A28CC73-89EF2E26-metrics.properties {noformat} h3. Expected - Nexus should ALWAYS attempt to log java.lang.Error derivatives at ERROR log levels at the shallowest stack depth - logging java.lang.Error should not depend on some higher level log statement - one should not have to enable DEBUG log levels to notice an OutOfMemoryError ",1 +"NEXUS-12794","03/29/2017 18:56:05","Repository Health Check RHC only detects HTTP proxy server settings changes on server restart","1. Start up Nexus 3.2.1/3.4.0 2. Run repository health check against one repository 3. Configure an HTTP proxy server in Nexus 4. Run repository health check against another repository ( manually running the Health Check task is equivalent ) 5. Problem: The second health check request will not be routed through the HTTP proxy server. It is necessary to restart the server in order to fix this. 1. Remove an HTTP proxy server from Nexus 2. manually run a Health Check task 3. Problem: Requests to rhc-pro.sonatype.com or rhc.sonatype.com continue to try an go through the previously configured HTTP proxy server that was deleted. h4. Expected The repository health check feature should detect all relevant HTTP proxy server changes and use them immediately, it should not be necessary to restart the server or make other configuration changes. h4. Workaround After changing HTTP proxy server settings, a Nexus restart is required in order for Repository Health Check to detect and use the correct HTTP proxy server settings. ",1 +"NEXUS-12828","04/05/2017 00:36:16","submitting more than 20 tasks at once causes ERROR QuartzSchedulerThread - ThreadPool.runInThread() return false! for some tasks","Submitting considerably more than 20 tasks at once causes a rejection error for some tasks. These tasks do not run, instead they hang in a ""Waiting"" state. You can see an error in the logs reported from quartz: {code:java} 2017-03-28 22:51:37,569+0200 ERROR [nexus_QuartzSchedulerThread] *SYSTEM org.quartz.core.QuartzSchedulerThread - ThreadPool.runInThread() return false!{code} To reproduce, you can run the test here: [https://github.com/sonatype/nexus-internal/pull/1671/files#diff-f47ab1796bb11e077d08f418a8fcf42e] Changing the maximum tasks to 50 instead of 21. Also, you can use this groovy script to schedule a large number of tasks to run at once: {code:java} import org.sonatype.nexus.scheduling.TaskConfiguration import org.sonatype.nexus.scheduling.TaskInfo import org.sonatype.nexus.scheduling.TaskScheduler import groovy.json.JsonOutput class TaskXO { String typeId Boolean enabled String name String alertEmail Map properties } TaskScheduler scheduler = container.lookup(TaskScheduler.class.name) for (i = 0; i < 100; i++) { TaskXO task = new TaskXO(typeId: 'script', enabled: true, name: ""Script$i"", alertEmail: null, properties: [language: 'groovy', source: 'println \'sleeping\'\n' + 'sleep(10000)\n' + 'println \'slept\''] ) println ""Creating $i"" TaskConfiguration config = scheduler.createTaskConfigurationInstance(task.typeId) config.enabled = task.enabled config.name = task.name config.alertEmail = task.alertEmail task.properties?.each { key, value -> config.setString(key, value) } //create to run every second TaskInfo taskInfo = scheduler.scheduleTask(config, scheduler.scheduleFactory.cron(new Date(), '59 * * * * ?')) //create to run every an hour from now // TaskInfo taskInfo = scheduler.scheduleTask(config, scheduler.scheduleFactory.once(new Date(new Date().time + 3600000L))) JsonOutput.toJson(taskInfo) } {code}  ",3 +"NEXUS-12844","04/07/2017 17:25:14","Upgrade Apache Tika dependency to 1.14","As part of investigating 10087 I found there was a slight improvement in the behaviour of Tika:  1.14 still wrongly identifies as text/html if the xml contains any tag starting with {{}}) then it correctly identifies as text/xml.   To test: # Create a proxy repo called ""RSO"" and point it to [https://repository.sonatype.org/service/local/repositories/sonatype-internal/content/] # Request [http://localhost:8081/repository/RSO/com/sonatype/insight/ci/insight-ci-parent/2.14.4/insight-ci-parent-2.14.4.pom]  # You should be presented with a POM rather than a 404.  ",1 +"NEXUS-12849","04/10/2017 22:01:58","When a REST API request is made for assets or components in a repository that a user cannot access, the appropriate response code should be returned","Currently if a user makes a REST API request for components or assets in a repository they cannot access, they get an empty set. They should probably receive an error code. This occurs with the following resources: * GET {{/service/siesta/rest/v1/assets}} * GET {{/service/siesta/rest/v1/components}} Technical note: What error code do we want to return? 403 vs 404.",2 +"NEXUS-12855","04/11/2017 16:54:17","Only one capability of type 'Webhook: Repository' can be created","Users are prevented from creating more than one Repository webhook by the Capability rules, but need to be allowed to create for multiple Repositories.",0.5 +"NEXUS-12856","04/11/2017 18:54:54","Docker-nexus3 - readme incorrectly describes how data volumes are used","readme contains: {quote}""Since data volumes are persistent until no containers use them,"" {quote} This statement appears wrong. Data volumes are not deleted when no container uses them. In fact data volumes are never removed by docker when containers are deleted. From [https://docs.docker.com/engine/tutorials/dockervolumes/#data-volumes] : {quote}Data volumes persist even if the container itself is deleted. Data volumes are designed to persist data, independent of the container’s lifecycle. Docker therefore never automatically deletes volumes when you remove a container, nor will it “garbage collect” volumes that are no longer referenced by a container. {quote}",0.5 +"NEXUS-12869","04/12/2017 17:56:00","npm publish a large package may cause java.lang.OutOfMemoryError: Java heap space when parsing the JSON payload","If one uploads a large npm package using npm publish, this could cause Nexus to run out of memory as it parses the POSTed JSON payload.   Reproduce with the following: Artificially reduce the Nexus 3 max heap size to 256mb Artificially create a large npm package to publish: # Create a 25mb file ([http://unix.stackexchange.com/q/33629]) head -c 25M big.file # Include big file in package.json $ cat package.json | grep files ""files"" : [ ""big.file"" ]   Attempt to npm publish while the Nexus 3.3 and below has the logger  {noformat} org.sonatype.nexus.internal.web.ErrorPageServlet{noformat} at DEBUG.   You will see:   {noformat} 2017-03-28 21:26:11,020+0000 DEBUG [qtp1560565746-42] *SYSTEM org.sonatype.nexus.internal.web.ErrorPageServlet - Attaching cause javax.servlet.ServletException: Filtered request failed. at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:384) [na:na] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [na:na] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [na:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.repository.httpbridge.internal.ExhaustRequestFilter.doFilter(ExhaustRequestFilter.java:71) [na:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:112) [na:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [na:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68) [na:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:102) [org.sonatype.nexus.base:3.2.1.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98) [org.sonatype.nexus.base:3.2.1.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.1.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) [com.google.inject:4.1.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.2.1.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112] Caused by: java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOfRange(Arrays.java:3664) [na:1.8.0_112] at java.lang.String.(String.java:207) [na:1.8.0_112] at java.lang.StringBuilder.toString(StringBuilder.java:407) [na:1.8.0_112] at com.fasterxml.jackson.core.util.TextBuffer.contentsAsString(TextBuffer.java:356) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._finishAndReturnString(UTF8StreamJsonParser.java:2466) [na:na] at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.getText(UTF8StreamJsonParser.java:315) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.deserialize(UntypedObjectDeserializer.java:514) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.mapObject(UntypedObjectDeserializer.java:638) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.deserialize(UntypedObjectDeserializer.java:496) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.mapObject(UntypedObjectDeserializer.java:629) [na:na] at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.deserialize(UntypedObjectDeserializer.java:496) [na:na] at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringKeyMap(MapDeserializer.java:507) [na:na] at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:352) [na:na] at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:27) [na:na] at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3789) [na:na] at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2906) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmJsonUtils.parse(NpmJsonUtils.java:69) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmFacetUtils.parse(NpmFacetUtils.java:94) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHostedFacetImpl.putPackageRoot(NpmHostedFacetImpl.java:98) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHostedFacetImpl.putPackage(NpmHostedFacetImpl.java:81) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmHandlers$3.handle(NpmHandlers.java:172) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] {noformat}   h3. Expected - large npm package uploads should not cause Nexus to run out of memory - stream the JSON instead of loading it entirely into memory",3 +"NEXUS-12907","04/13/2017 15:32:41","Upgrade from 2.x to 3.x Hangs on Group Repos containing only Staging Repos","My Nexus 2.14.4 has 2 group repositories containing only Staging repositories. Going through the upgrade steps in Nexus 3.3.0, I can select those groups, but the Staging Repos are not able to be selected. Also, I have an empty group, which is not able to be selected. See Screenshot. !image-2017-04-13-10-29-26-293.png!   During the Synchronizing step, it processes 19 of the 21 repositories, and the ""Process Changes"" completes and waits for changes on the Nexus 2 side, but the last 2 Repositories never complete ""Scanning"". The message in the log is shown below as well as screenshot. Rerunning the upgrade without selecting these two groups is successful. {code:java} 2017-04-13 10:30:56,196-0400 DEBUG [plan-executor-8-thread-3] admin com.sonatype.nexus.migration.repository.RepositoriesScanStep - Scanned 19 of 21 repositories, remaining repositories: [closed-beta, internal-qa]{code} !image-2017-04-13-10-31-52-430.png!",3 +"NEXUS-12942","04/19/2017 15:09:09","possible to create a repository without a valid blobstore reference","# In browser window A, create a blobstore named test # In browser window B start creating a repository that refers to blobstore test, but do not save it yet # In browser window A, delete the blobstore test # In browser window B, save the repository. It will save successfully, referring to non-existent blobstore test # Try to delete the repository, you cannot - the delete will fail because the blobstore does not exist The same thing can be done with a groovy script when calling RepositoryManager.create(config) API directly. There is not validation on save of a repo that a blobstore exists by that name. Example groovy script that can also put Nexus in this state: {noformat} import org.sonatype.nexus.blobstore.api.BlobStoreManager import org.sonatype.nexus.repository.storage.WritePolicy import org.sonatype.nexus.repository.maven.VersionPolicy import org.sonatype.nexus.repository.maven.LayoutPolicy import org.sonatype.nexus.repository.Repository import groovy.json.* import org.sonatype.nexus.repository.config.Configuration jsonSlurper = new JsonSlurper() //JSON used to recreate new config each time we need because Map used as Configuration constructor argument points to the same objects defaultRepoconfig = JsonOutput.toJson([ //repositoryName: repoName, //recipeName: ""maven2-hosted"", online: true, attributes: [ maven : [ versionPolicy: VersionPolicy.RELEASE, layoutPolicy : LayoutPolicy.STRICT ], proxy : [ //remoteUrl: url, contentMaxAge: 1440.0, metadataMaxAge: 1440.0 ], httpclient: [ blocked: false, autoBlock: true, //authentication: authentication, connection: [ useTrustStore: false ] ], storage: [ //blobStoreName: ""Blob-Repo-Internal-Maven"", strictContentTypeValidation: true, writePolicy: WritePolicy.ALLOW_ONCE ], negativeCache: [ enabled: true, timeToLive: 1440.0 ] ] ]) def reposConfig = [ [ repositoryName : ""Repo-Internal-Maven-InHouseCompos-Common-Releases"" ] ]; def response = []; reposConfig.each { Repository repo = null; try{ if(repository.getRepositoryManager().get(it.repositoryName)) { repository.getRepositoryManager().delete(it.repositoryName) } def config = getConfiguration(it) repo = repository.getRepositoryManager().create(config) response << config }catch(Exception e){ log.error(""ALM Error : "" + e.message) } } return response; Configuration getConfiguration(repo) { config = jsonSlurper.parseText(defaultRepoconfig) def test = (config as ConfigObject).merge( repo as ConfigObject ) def configuration = new Configuration(test) if(repo.repositoryName =~ ""(?i).*?Maven.*"") { configuration.recipeName = ""maven2-"" } else if(repo.repositoryName =~ ""(?i).*?NuGet.*"") { configuration.recipeName = ""nuget-"" } else if(repo.repositoryName =~ ""(?i).*?Npm.*"") { configuration.recipeName = ""npm-"" } if(repo.repositoryName =~ ""(?i)Repo-External.*"") { configuration.recipeName += ""proxy"" } else if(repo.repositoryName =~ ""(?i)Repo-Internal.*"") { configuration.recipeName += ""hosted"" } else if(repo.repositoryName =~ ""(?i)Group-.*"") { configuration.recipeName += ""group"" } if(repo.repositoryName =~ ""(?i).*?Maven.*?Snapshot.*"") { configuration.attributes.maven.versionPolicy = VersionPolicy.SNAPSHOT } def blobStoreName = repo.repositoryName.replaceAll(/([^-]+-[^-]+-[^-]+).*/) {fullMatch, extract -> return ""Blob-$extract"" } configuration.attributes.storage.blobStoreName = blobStoreName return configuration; }{noformat}   h3. Workaround In order to fix the invalid state: * create blobstore name that matches the name referenced by the repo * *restart Nexus* ( without restart, repo delete still fails with) {noformat} 2017-04-19 11:02:31,145-0300 ERROR [qtp253133175-171] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Repository.remove, java-method: org.sonatype.nexus.coreui.RepositoryComponent.remove org.sonatype.nexus.common.stateguard.InvalidStateException: Invalid state: FAILED; allowed: [STARTED] at org.sonatype.nexus.common.stateguard.StateGuard._ensure(StateGuard.java:115) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard.access$1(StateGuard.java:108) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:185) [na:na] at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) [na:na] at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.delete(RepositoryManagerImpl.java:370) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na]{noformat}   * delete repository * delete blobstore",2 +"NEXUS-12962","04/19/2017 16:57:43","Exception while executing ""Purge unused docker manifests and images"" task","I have created a task of the type ""Purge unused docker manifests and images"" and when I execute it I always get this exception: {code:java} 2017-04-19 15:55:39,553+0000 INFO [qtp604014720-3045] admin org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'purge unused docker manifests and images' [repository.docker.gc] runNow 2017-04-19 15:55:39,553+0000 INFO [qtp604014720-3045] admin org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task nexus.ff43bb97-a7d6-444e-a3c3-f5c15228a77e : 'purge unused docker manifests and images' [repository.docker.gc] state change WAITING -> RUNNING 2017-04-19 15:55:39,553+0000 DEBUG [qtp604014720-3045] admin org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Store trigger: trigger=Trigger 'DEFAULT.MT_1bjw07co2h1rp': triggerClass: 'org.quartz.impl.triggers.SimpleTriggerImpl calendar: 'null' misfireInstruction: 0 nextFireTime: Wed Apr 19 15:55:39 UTC 2017, replaceExisting=false 2017-04-19 15:55:39,554+0000 DEBUG [nexus_QuartzSchedulerThread] *SYSTEM org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Acquire next triggers: noLaterThan=1492617369554, maxCount=1, timeWindow=0 2017-04-19 15:55:39,555+0000 DEBUG [nexus_QuartzSchedulerThread] *SYSTEM org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Triggers fired: [Trigger 'DEFAULT.MT_1bjw07co2h1rp': triggerClass: 'org.quartz.impl.triggers.SimpleTriggerImpl calendar: 'null' misfireInstruction: 0 nextFireTime: Wed Apr 19 15:55:39 UTC 2017] 2017-04-19 15:55:39,555+0000 DEBUG [nexus_QuartzSchedulerThread] *SYSTEM org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Trigger fired: Trigger 'DEFAULT.MT_1bjw07co2h1rp': triggerClass: 'org.quartz.impl.triggers.SimpleTriggerImpl calendar: 'null' misfireInstruction: 0 nextFireTime: Wed Apr 19 15:55:39 UTC 2017 2017-04-19 15:55:39,556+0000 DEBUG [nexus_QuartzSchedulerThread] *SYSTEM org.sonatype.nexus.quartz.internal.JobFactoryImpl - New job: class org.sonatype.nexus.quartz.internal.task.QuartzTaskJob 2017-04-19 15:55:39,557+0000 DEBUG [nexus_QuartzSchedulerThread] *SYSTEM org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Acquire next triggers: noLaterThan=1492617369557, maxCount=1, timeWindow=0 2017-04-19 15:55:39,559+0000 DEBUG [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskFuture - Task ff43bb97-a7d6-444e-a3c3-f5c15228a77e : 'purge unused docker manifests and images' [repository.docker.gc] runState transition STARTING -> RUNNING 2017-04-19 15:55:39,559+0000 INFO [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.repository.docker.internal.DockerGCFacetImpl - Garbage collection starting on repository: RepositoryImpl$$EnhancerByGuice$$c5f0822b{type=hosted, format=docker, name='docker_dydu'} 2017-04-19 15:55:39,559+0000 DEBUG [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioning: OPEN -> ACTIVE 2017-04-19 15:55:39,559+0000 DEBUG [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioned: ACTIVE 2017-04-19 15:55:39,559+0000 DEBUG [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.repository.storage.ComponentEntityAdapter - Finding components with query: select from component where (attributes.docker.layerId IS NOT NULL) and (bucket=#37:3), parameters: {} 2017-04-19 15:55:39,561+0000 DEBUG [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.repository.storage.AssetEntityAdapter - Finding assets with query: select from asset where (attributes.docker.asset_kind = :p0 OR attributes.docker.asset_kind = :p1) and (bucket=#37:3), parameters: {p0=LAYER_CONTENT, p1=LAYER_METADATA} 2017-04-19 15:55:39,595+0000 DEBUG [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.repository.storage.AssetEntityAdapter - Finding assets with query: select from asset where (attributes.docker.asset_kind = :p0) and (bucket=#37:3), parameters: {p0=MANIFEST} 2017-04-19 15:55:39,609+0000 DEBUG [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.repository.docker.internal.V2ManifestUtilImpl - Parsing manifest v2/-/blobs/sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4 of type unspecified 2017-04-19 15:55:39,609+0000 DEBUG [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioning: ACTIVE -> OPEN 2017-04-19 15:55:39,609+0000 DEBUG [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioned: OPEN 2017-04-19 15:55:39,609+0000 DEBUG [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioning: OPEN -> CLOSED 2017-04-19 15:55:39,609+0000 DEBUG [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioned: CLOSED 2017-04-19 15:55:39,610+0000 ERROR [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.repository.docker.internal.DockerGCTask - Failed to run task 'Purge unused docker manifests and images' on repository 'docker_dydu' org.sonatype.nexus.repository.docker.internal.V2Exception$ManifestInvalid: manifest invalid at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [na:1.8.0_112] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [na:1.8.0_112] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [na:1.8.0_112] at java.lang.reflect.Constructor.newInstance(Constructor.java:423) [na:1.8.0_112] at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83) [na:na] at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:77) [na:na] at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247) [na:na] at org.sonatype.nexus.repository.docker.internal.V2ManifestUtilImpl.readManifest(V2ManifestUtilImpl.groovy:107) [na:na] at org.sonatype.nexus.repository.docker.internal.DockerGCFacetImpl.handleV2Assets(DockerGCFacetImpl.java:155) [na:na] at org.sonatype.nexus.repository.docker.internal.DockerGCFacetImpl.processRepository(DockerGCFacetImpl.java:90) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) [org.sonatype.nexus.transaction:3.3.0.01] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) [org.sonatype.nexus.transaction:3.3.0.01] at org.sonatype.nexus.repository.docker.internal.DockerGCFacetImpl.deleteUnusedManifestsAndImages(DockerGCFacetImpl.java:74) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [org.sonatype.nexus.common:3.3.0.01] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [org.sonatype.nexus.common:3.3.0.01] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [org.sonatype.nexus.common:3.3.0.01] at org.sonatype.nexus.repository.docker.internal.DockerGCTask.execute(DockerGCTask.java:42) [na:na] at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:56) [na:na] at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:89) [org.sonatype.nexus.scheduling:3.3.0.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) [org.sonatype.nexus.quartz:3.3.0.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:106) [org.sonatype.nexus.quartz:3.3.0.01] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [org.quartz-scheduler.quartz:2.2.2] at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) [org.sonatype.nexus.thread:3.3.0.01] at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [org.apache.shiro.core:1.3.2] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_112] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_112] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_112] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_112] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112] 2017-04-19 15:55:39,611+0000 WARN [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskJob - Task 48d6949e-9257-438f-93bb-06b784f7f2e6 : 'purge unused docker manifests and images' [repository.docker.gc] execution failure org.sonatype.goodies.common.MultipleFailures$MultipleFailuresException: Failed to run task 'Purge unused docker manifests and images'; 1 failure at org.sonatype.goodies.common.MultipleFailures.maybePropagate(MultipleFailures.java:95) [org.sonatype.goodies.common:2.2.3] at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:64) [na:na] at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:89) [org.sonatype.nexus.scheduling:3.3.0.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) [org.sonatype.nexus.quartz:3.3.0.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:106) [org.sonatype.nexus.quartz:3.3.0.01] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [org.quartz-scheduler.quartz:2.2.2] at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) [org.sonatype.nexus.thread:3.3.0.01] at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [org.apache.shiro.core:1.3.2] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_112] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_112] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_112] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_112] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112] Suppressed: org.sonatype.nexus.repository.docker.internal.V2Exception$ManifestInvalid: manifest invalid at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [na:1.8.0_112] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [na:1.8.0_112] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [na:1.8.0_112] at java.lang.reflect.Constructor.newInstance(Constructor.java:423) [na:1.8.0_112] at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83) [na:na] at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:77) [na:na] at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247) [na:na] at org.sonatype.nexus.repository.docker.internal.V2ManifestUtilImpl.readManifest(V2ManifestUtilImpl.groovy:107) [na:na] at org.sonatype.nexus.repository.docker.internal.DockerGCFacetImpl.handleV2Assets(DockerGCFacetImpl.java:155) [na:na] at org.sonatype.nexus.repository.docker.internal.DockerGCFacetImpl.processRepository(DockerGCFacetImpl.java:90) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) [org.sonatype.nexus.transaction:3.3.0.01] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) [org.sonatype.nexus.transaction:3.3.0.01] at org.sonatype.nexus.repository.docker.internal.DockerGCFacetImpl.deleteUnusedManifestsAndImages(DockerGCFacetImpl.java:74) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [org.sonatype.nexus.common:3.3.0.01] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [org.sonatype.nexus.common:3.3.0.01] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [org.sonatype.nexus.common:3.3.0.01] at org.sonatype.nexus.repository.docker.internal.DockerGCTask.execute(DockerGCTask.java:42) [na:na] at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:56) [na:na] ... 12 common frames omitted 2017-04-19 15:55:39,612+0000 INFO [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task nexus.ff43bb97-a7d6-444e-a3c3-f5c15228a77e : 'purge unused docker manifests and images' [repository.docker.gc] state change RUNNING -> WAITING (FAILED) 2017-04-19 15:55:39,612+0000 DEBUG [quartz-1-thread-20] *SYSTEM org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Triggered job complete: trigger=Trigger 'DEFAULT.MT_1bjw07co2h1rp': triggerClass: 'org.quartz.impl.triggers.SimpleTriggerImpl calendar: 'null' misfireInstruction: 0 nextFireTime: null, jobDetail=JobDetail 'nexus.ff43bb97-a7d6-444e-a3c3-f5c15228a77e': jobClass: 'org.sonatype.nexus.quartz.internal.task.QuartzTaskJob concurrentExectionDisallowed: true persistJobDataAfterExecution: true isDurable: false requestsRecovers: false, instruction=DELETE_TRIGGER 2017-04-19 15:55:39,613+0000 DEBUG [nexus_QuartzSchedulerThread] *SYSTEM org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Acquire next triggers: noLaterThan=1492617369613, maxCount=1, timeWindow=0 {code} Before launching the task i have deleted some image from components UI",3 +"NEXUS-12968","04/19/2017 18:47:15","Uninformative log message in ProxyFacetSupport - Content not present for throwing exception","Nexus 3.3 may log messages such as these: {noformat} 2017-04-19 01:27:59,918-0600 WARN  [qtp608450668-367] *UNKNOWN org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyFacet - Content not present for org/apache/geronimo/specs/geronimo-activation_1.0.2_spec/1.1/geronimo-activation_1.0.2_spec-1.1-sources.jar, throwing exception. 2017-04-19 01:28:00,441-0600 WARN  [qtp608450668-367] *UNKNOWN org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyFacet - Content not present for org/apache/geronimo/specs/geronimo-activation_1.0.2_spec/1.1/geronimo-activation_1.0.2_spec-1.1-sources.jar, throwing exception. 2017-04-19 01:28:13,342-0600 INFO  [qtp608450668-367] *UNKNOWN org.sonatype.nexus.repository.httpclient.internal.HttpClientFacetImpl - Repository status for familysearch changed from AVAILABLE to UNAVAILABLE - reason java.net.SocketTimeoutException: Read timed out for http://nexus.a.fsglobal.net 2017-04-19 01:28:13,343-0600 WARN  [qtp608450668-367] *UNKNOWN org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyFacet - Content not present for org/apache/geronimo/specs/geronimo-activation_1.0.2_spec/1.1/geronimo-activation_1.0.2_spec-1.1-sources.jar, throwing exception. 2017-04-19 01:28:15,338-0600 WARN  [qtp608450668-391] *UNKNOWN org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyFacet - Content not present for org/apache/geronimo/specs/geronimo-activation_1.0.2_spec/1.1/geronimo-activation_1.0.2_spec-1.1-sources.jar, throwing exception. 2017-04-19 01:28:15,493-0600 WARN  [qtp608450668-391] *UNKNOWN org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyFacet - Content not present for org/apache/geronimo/specs/geronimo-activation_1.0.2_spec/1.1/geronimo-activation_1.0.2_spec-1.1-sources.jar, throwing exception.{noformat}   Where did it throw the exception? What was the exception? ""Content not present for"" means nothing. What content where? On disk? In an http response from the proxy? Headers? These log levels MAY have been overridden at the time in logback-overrides.xml, but these loggers should not prevent seeing a more useful log message: {noformat} {noformat}    ",2 +"NEXUS-12972","04/19/2017 19:18:49","Warning in log seen when using content selector with ""coordinate.extension""","Define a JEXL expression for a content selector like this:   {code:java} format == ""maven2"" and coordinate.extension == ""war"" {code}   Hit the ""preview"" button in the content select or editor.  Observe that this works, only war files are shown in the preview.   But the nexus.log is filled with warnings:   {noformat} 2017-04-19 13:16:19,407-0500 WARN  [qtp1433496777-62] admin org.apache.commons.jexl3.JexlEngine - org.sonatype.nexus.selector.JexlSelector@1:24![22,42]: 'format == 'maven2' && coordinate.extension == 'war'' undefined variable coordinate.extension 2017-04-19 13:16:19,407-0500 WARN  [qtp1433496777-62] admin org.apache.commons.jexl3.JexlEngine - org.sonatype.nexus.selector.JexlSelector@1:24![22,42]: 'format == 'maven2' && coordinate.extension == 'war'' undefined variable coordinate.extension 2017-04-19 13:16:19,408-0500 WARN  [qtp1433496777-62] admin org.apache.commons.jexl3.JexlEngine - org.sonatype.nexus.selector.JexlSelector@1:24![22,42]: 'format == 'maven2' && coordinate.extension == 'war'' undefined variable coordinate.extension 2017-04-19 13:16:19,411-0500 WARN  [qtp1433496777-62] admin org.apache.commons.jexl3.JexlEngine - org.sonatype.nexus.selector.JexlSelector@1:24![22,42]: 'format == 'maven2' && coordinate.extension == 'war'' undefined variable coordinate.extension 2017-04-19 13:16:19,412-0500 WARN  [qtp1433496777-62] admin org.apache.commons.jexl3.JexlEngine - org.sonatype.nexus.selector.JexlSelector@1:24![22,42]: 'format == 'maven2' && coordinate.extension == 'war'' undefined variable coordinate.extension 2017-04-19 13:16:19,413-0500 WARN  [qtp1433496777-62] admin org.apache.commons.jexl3.JexlEngine - org.sonatype.nexus.selector.JexlSelector@1:24![22,42]: 'format == 'maven2' && coordinate.extension == 'war'' undefined variable coordinate.extension 2017-04-19 13:16:19,415-0500 WARN  [qtp1433496777-62] admin org.apache.commons.jexl3.JexlEngine - org.sonatype.nexus.selector.JexlSelector@1:24![22,42]: 'format == 'maven2' && coordinate.extension == 'war'' undefined variable coordinate.extension 2017-04-19 13:16:19,417-0500 WARN  [qtp1433496777-62] admin org.apache.commons.jexl3.JexlEngine - org.sonatype.nexus.selector.JexlSelector@1:24![22,42]: 'format == 'maven2' && coordinate.extension == 'war'' undefined variable coordinate.extension 2017-04-19 13:16:19,418-0500 WARN  [qtp1433496777-62] admin org.apache.commons.jexl3.JexlEngine - org.sonatype.nexus.selector.JexlSelector@1:24![22,42]: 'format == 'maven2' && coordinate.extension == 'war'' undefined variable coordinate.extension 2017-04-19 13:16:19,420-0500 WARN  [qtp1433496777-62] admin org.apache.commons.jexl3.JexlEngine - org.sonatype.nexus.selector.JexlSelector@1:24![22,42]: 'format == 'maven2' && coordinate.extension == 'war'' undefined variable coordinate.extension 2017-04-19 13:16:19,421-0500 WARN  [qtp1433496777-62] admin org.apache.commons.jexl3.JexlEngine - org.sonatype.nexus.selector.JexlSelector@1:24![22,42]: 'format == 'maven2' && coordinate.extension == 'war'' undefined variable coordinate.extension 2017-04-19 13:16:19,422-0500 WARN  [qtp1433496777-62] admin org.apache.commons.jexl3.JexlEngine - org.sonatype.nexus.selector.JexlSelector@1:24![22,42]: 'format == 'maven2' && coordinate.extension == 'war'' undefined variable coordinate.extension{noformat}",1 +"NEXUS-12983","04/20/2017 16:53:29","NuGet FindPackagesById queries may perform slowly possibly leading to general non-responsiveness","Below example shows that the NuGet query is taking nearly 5 minutes to respond. request.log {noformat} X.X.X.X - - [18/Apr/2017:16:56:44 -0600] ""GET /nexus/repository/nuget-group/FindPackagesById()?id='Lds.Stack' HTTP/1.1"" 200 11773 289974 ""NuGet Client V3/4.1.0 (Microsoft Windows NT 10.0.14393.0, VS Enterprise/15.0)"" {noformat} nexus.log {noformat} 2017-04-18 16:52:01,389-0600 INFO [qtp28210637-2666] *UNKNOWN com.orientechnologies.common.profiler.OProfilerStub - $ANSI{green {db=component}} [TIP] Query 'SELECT FROM asset WHERE (LOWER(component.name) = ""lds.stack"" ) AND (bucket = #11:0 OR bucket = #11:1 OR bucket = #11:47 ) ORDER BY attributes.nuget.download_count DESC, id ASC, version ASC LIMIT 40' fetched more than 50000 records: to speed up the execution, create an index or change the query to use an existent index {noformat} With many of theses type of request, causes Nexus hang and requires restart to recover. This issue is related to NEXUS-12337 where a fix is included in Nexus 3.3. Unfortunately it has not resolved this issue. h4. Cause The internal database queries backing the NuGet queries are being slowed down by the lowercasing of the Nuget package name, bypassing some important database indexes.",3 +"NEXUS-13030","04/26/2017 13:42:50","automatically retry blob creation when a UUID collision is detected","BlobIds are based on randomly generated UUIDs. While the chance of a collision is extremely rare (https://en.wikipedia.org/wiki/Universally_unique_identifier#Collisions) if it does ever happen then we should automatically retry the create blob operation with a fresh randomly generated id.",2 +"NEXUS-13032","04/26/2017 13:58:04","eliminate soft-deleted blobs and reduce transaction retries for identical proxy repository asset requests","*Background* In highly concurrent situations, multiple clients may request the same content from an NXRM proxy repository. In these cases, the parallel requests significant churn on the Asset record, with unnecessarily large numbers of blobs created as a result of transaction retries fighting over which blob to attach to it. This could occur in multiple HA nodes using the same blobstore, or on a single node (multiple threads). Because the soft-deleted blobs from the unsuccessful tries linger until the blob store is compacted, this can also waste storage space. *Acceptance* Detect when a transaction is attempting to attach a blob to an Asset when an identical blob already exists on that Asset. In those cases, ignore the attach request, and retain the existing blob.  ",5 +"NEXUS-13057","04/28/2017 16:41:56","""Uncaught TypeError"" UI errors","While pre-testing 3.3.1, I unpackaged the pro bundle and set it up to perform Migration. I then ran migration from 2.14.4. After doing such, I accessed ""Repositories"" to see if everything came across and noticed the attached errors. [~ccarlucci] had reported this in the support room several days prior. Workaround appears to be loading in incognito window or clearing browser cache. Before this, I had cleared my browser cache testing the 3.3.1 OSS bundle so this seems either related to cache differences between OSS and PRO or something related to Migration.",2 +"NEXUS-13071","05/01/2017 19:48:41","Unfiltered LDAP user search will retrieve all users from an LDAP server, which can result in an OOM","Reproduce steps: # Go to ""security/users"" in the UI # Change the ""source"" to LDAP # Hit enter in the ""filter by user ID"" box without inputting any data   Observe that _all_ user ID's from the LDAP server are retrieved, and for each one the full user record is retrieved.    This will result in a UI timeout if the LDAP server has a large number of users, or possibly even an OOM.     Expected:  The UI should limit the number of users retrieved in some way.   This could be a paged result set.  Or it could be as simple as only retrieving at most some arbitrary number o users, such as 1000.      ",2 +"NEXUS-13085","05/03/2017 02:17:37","IllegalArgumentException Version mismatch may be logged when GA maven-metadata.xml versions are merged in a group repository request ","Download for artifact appears to be working, but getting error in log and causing some concern over conflict or if something has been inproperly loaded. [^nexus-logviewer-VersionMismatch.txt] {noformat} Excerpt from /#admin/support/logging/logviewer Nexus Repository ManagerOSS 3.3.1-01 2017-05-03 00:32:53,805+0000 WARN [qtp601907286-375] *UNKNOWN org.sonatype.nexus.repository.maven.internal.group.RepositoryMetadataMerger - Bad data maven-central @ org/apache/npanday/plugins/custom-lifecycle-maven-plugin/maven-metadata.xml java.lang.IllegalArgumentException: Version mismatch: 1.5.0-NSL vs 1.4.0-incubating at com.google.common.base.Preconditions.checkArgument(Preconditions.java:383) [com.google.guava:21.0.0] at org.sonatype.nexus.repository.maven.internal.group.RepositoryMetadataMerger.merge(RepositoryMetadataMerger.java:247) [org.sonatype.nexus.plugins.nexus-repository-maven:3.3.1.01] at org.sonatype.nexus.repository.maven.internal.group.RepositoryMetadataMerger.merge(RepositoryMetadataMerger.java:185) [org.sonatype.nexus.plugins.nexus-repository-maven:3.3.1.01] at org.sonatype.nexus.repository.maven.internal.group.RepositoryMetadataMerger.merge(RepositoryMetadataMerger.java:81) [org.sonatype.nexus.plugins.nexus-repository-maven:3.3.1.01] at org.sonatype.nexus.repository.maven.internal.group.MavenGroupFacet.mergeAndCache(MavenGroupFacet.java:125) [org.sonatype.nexus.plugins.nexus-repository-maven:3.3.1.01] at org.sonatype.nexus.repository.maven.internal.group.MergingGroupHandler.doGet(MergingGroupHandler.java:98) [org.sonatype.nexus.plugins.nexus-repository-maven:3.3.1.01] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:79) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:43) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.view.Context.start(Context.java:114) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:63) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.3.1.01] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.3.1.01] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.3.1.01] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.3.1.01] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] {noformat} Maven central has npanday custom-lifecycle-maven-plugin  latest release 1.4.0-Incubating We have the npanday custom-lifecycle-maven-plugin  built locally to have a 'pre release' release of 1.5.0-NSL  which was captured to host on a Nexus 2.11  3rd Party repo Central and 3rd party proxies are included within a maven2 group  type where it is downloaded from. when looking at pom.xml in various locations all appears well that I thought to check so far.  ",2 +"NEXUS-13092","05/03/2017 17:25:17","slow performance and metadata rebuild failures when running ""Remove snapshots from Maven repository"" against large datasets","Looking at the logs we can see that the task ""Deleted 576 components from 522 distinct GAVs"", 13 minutes after task 'Remove2 old snapshot from Amundi Snapshots' has started. {noformat} 2017-05-03 01:45:00,013+0200 INFO [quartz-6-thread-18] *TASK org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Remove2 old snapshot from Amundi Snapshots' [repository.maven.remove-snapshots] state change WAITING -> RUNNING 2017-05-03 01:45:00,013+0200 INFO [quartz-6-thread-18] *TASK org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - Executing removal of snapshots on repository: RepositoryImpl$$EnhancerByGuice$$25533b5f{type=hosted, format=maven2, name='amundi-snapshots'} 2017-05-03 01:45:00,013+0200 INFO [quartz-6-thread-18] *TASK org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Removing snapshots on repository amundi-snapshots with configuration: org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsConfig(3, 15, true, 7) 2017-05-03 01:45:02,104+0200 INFO [quartz-6-thread-18] *TASK org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Processing 1856 GAVs found with more than minimum 3 snapshot versions 2017-05-03 01:58:01,994+0200 INFO [quartz-6-thread-18] *TASK org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Finished processing snapshots with more than 3 versions created before 2017-04-18T01:45:00.013+02:00 2017-05-03 01:58:01,994+0200 INFO [quartz-6-thread-18] *TASK org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Deleted 576 components from 522 distinct GAVs {noformat} Then there is a 4+ hours gap before a next log entry on 42 GAVs found that have already been released. {noformat} 2017-05-03 06:28:29,238+0200 INFO [quartz-6-thread-18] *TASK org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Processing 42 GAVs found that have already been released and for which the grace period has elapsed 2017-05-03 06:39:39,086+0200 INFO [quartz-6-thread-18] *TASK org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Finished processing snapshots with associated releases {noformat} Rebuild of metadata has now started. {noformat} 2017-05-03 06:39:39,086+0200 INFO [quartz-6-thread-18] *TASK org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Updating metadata on repository: amundi-snapshots {noformat} After 9 hours of rebuilding metadata you get the following failure. {noformat} 2017-05-03 15:40:43,938+0200 ERROR [quartz-6-thread-18] *TASK org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - Failed to run task 'Remove Maven snapshots from amundi-snapshots' on repository 'amundi-snapshots' java.lang.NullPointerException: null at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker.rebuildMetadata(MetadataRebuilder.java:271) [na:na] at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder.rebuild(MetadataRebuilder.java:102) [na:na] at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder.deleteAndRebuild(MetadataRebuilder.java:152) [na:na] at org.sonatype.nexus.repository.maven.internal.hosted.MavenHostedFacetImpl.deleteMetadata(MavenHostedFacetImpl.java:122) [na:na] at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl.removeSnapshots(RemoveSnapshotsFacetImpl.java:149) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask.execute(RemoveSnapshotsTask.java:58) [na:na] at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:56) [na:na] at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:89) [org.sonatype.nexus.scheduling:3.2.0.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:144) [org.sonatype.nexus.quartz:3.2.0.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:105) [org.sonatype.nexus.quartz:3.2.0.01] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [org.quartz-scheduler.quartz:2.2.2] at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) [org.sonatype.nexus.thread:3.2.0.01] at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [org.apache.shiro.core:1.3.2] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.8.0_102] at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.8.0_102] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_102] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_102] at java.lang.Thread.run(Unknown Source) [na:1.8.0_102] 2017-05-03 15:40:43,938+0200 WARN [quartz-6-thread-18] *TASK org.sonatype.nexus.quartz.internal.task.QuartzTaskJob - Task 62767367-9306-4056-a82f-e831ddd5a261 : 'Remove2 old snapshot from Amundi Snapshots' [repository.maven.remove-snapshots] execution failure org.sonatype.goodies.common.MultipleFailures$MultipleFailuresException: Failed to run task 'Remove Maven snapshots from amundi-snapshots'; 1 failure at org.sonatype.goodies.common.MultipleFailures.maybePropagate(MultipleFailures.java:95) [org.sonatype.goodies.common:2.2.3] at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:64) [na:na] at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:89) [org.sonatype.nexus.scheduling:3.2.0.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:144) [org.sonatype.nexus.quartz:3.2.0.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:105) [org.sonatype.nexus.quartz:3.2.0.01] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [org.quartz-scheduler.quartz:2.2.2] at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) [org.sonatype.nexus.thread:3.2.0.01] at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [org.apache.shiro.core:1.3.2] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.8.0_102] at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.8.0_102] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_102] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_102] at java.lang.Thread.run(Unknown Source) [na:1.8.0_102] Suppressed: java.lang.NullPointerException: null at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker.rebuildMetadata(MetadataRebuilder.java:271) [na:na] at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder.rebuild(MetadataRebuilder.java:102) [na:na] at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder.deleteAndRebuild(MetadataRebuilder.java:152) [na:na] at org.sonatype.nexus.repository.maven.internal.hosted.MavenHostedFacetImpl.deleteMetadata(MavenHostedFacetImpl.java:122) [na:na] at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl.removeSnapshots(RemoveSnapshotsFacetImpl.java:149) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask.execute(RemoveSnapshotsTask.java:58) [na:na] at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:56) [na:na] ... 12 common frames omitted 2017-05-03 15:40:43,938+0200 INFO [quartz-6-thread-18] *TASK org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Remove2 old snapshot from Amundi Snapshots' [repository.maven.remove-snapshots] state change RUNNING -> WAITING (FAILED) {noformat}",5 +"NEXUS-13095","05/04/2017 10:52:53","Browse components of large repositories fails with IllegalStateException Timed out reading query result from queue","We are seeing the warning message ""*Operation failed as server could not be contacted*"" when browsing components of large repository as non-admin/admin users . This only happens when browsing components of huge repositories. Browsing ""assets"" of these repositories are fine. Browsing ""components"" of other smaller repositories are fine as well.  Can confirm that the same is also happening for browsing groups with huge repos in assets page for both admin/non admin users. {noformat} 2017-05-04 02:49:54,283+0000 ERROR [qtp733458390-70113] jconroy9 org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Component.read, java-method: org.sonatype.nexus.coreui.ComponentComponent.read java.lang.IllegalStateException: Timed out reading query result from queue 77846c66 after 60 seconds at org.sonatype.nexus.repository.storage.OrientAsyncHelper$QueueConsumingIterable.hasNext(OrientAsyncHelper.java:201) [na:na] at com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:42) [com.google.guava:21.0.0] at com.google.common.collect.Iterators.addAll(Iterators.java:366) [com.google.guava:21.0.0] at com.google.common.collect.Lists.newArrayList(Lists.java:165) [com.google.guava:21.0.0] at com.google.common.collect.Lists.newArrayList(Lists.java:150) [com.google.guava:21.0.0] at org.sonatype.nexus.repository.browse.internal.BrowseServiceImpl.getComponents(BrowseServiceImpl.java:275) [na:na] at org.sonatype.nexus.repository.browse.internal.BrowseServiceImpl.browseComponents(BrowseServiceImpl.java:110) [na:na] at org.sonatype.nexus.repository.browse.BrowseService$browseComponents$14.call(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) [na:na] at org.sonatype.nexus.coreui.ComponentComponent.read(ComponentComponent.groovy:131) [na:na] at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49) [na:na] at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47) [na:na] at sun.reflect.GeneratedMethodAccessor2499.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_65] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.3.0.01] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:227) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.extdirect:3.3.0.01] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:133) [org.sonatype.nexus.extdirect:3.3.0.01] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.1.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.3.0.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.3.0.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:112) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.3.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68) [org.sonatype.nexus.base:3.3.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:102) [org.sonatype.nexus.base:3.3.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98) [org.sonatype.nexus.base:3.3.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.1.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) [com.google.inject:4.1.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.3.0.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65] 2017-05-04 02:55:55,417+0000 WARN [Thread-57063] jconroy9 org.sonatype.nexus.repository.storage.OrientAsyncHelper$QueueFeedingResultListener - Timed out adding query result to queue 77846c66 after 60 seconds, aborting query 2017-05-04 02:56:55,418+0000 WARN [Thread-57063] jconroy9 org.sonatype.nexus.repository.storage.OrientAsyncHelper$QueueFeedingResultListener - Timed out adding end marker to queue 77846c66 after 60 seconds {noformat} With Debug switched on, we see this error: {noformat} 2017-05-04 07:11:48,857+0000 DEBUG [qtp733458390-70496] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Component.readAssets, java-method: org.sonatype.nexus.coreui.ComponentComponent.readAssets, exception message: Error on execution of command: sql.select from asset where (contentAuth(@this, :browsedRepository) == true) and (bucket=#25:12 or bucket=#29:15 or bucket=#32:14 or bucket=#26:12 or bucket=#30:15 or bucket=#25:16 or bucket=#26:16 or bucket=#29:14 or bucket=#30:14 or bucket=#30:12 or bucket=#30:18 or bucket=#29:16 or bucket=#28:13 or bucket=#27:16 or bucket=#31:13 or bucket=#32:12 or bucket=#31:18 or bucket=#29:13 or bucket=#31:11 or bucket=#28:16 or bucket=#32:13 or bucket=#25:15 or bucket=#32:17 or bucket=#25:19 or bucket=#32:10 or bucket=#26:19 or bucket=#27:19 or bucket=#27:15 or bucket=#28:15 or bucket=#30:16 or bucket=#27:14 or bucket=#26:15 or bucket=#28:19 or bucket=#32:16 or bucket=#29:19 or bucket=#30:19 or bucket=#31:19 or bucket=#28:12 or bucket=#31:14 or bucket=#32:18 or bucket=#26:14 or bucket=#26:17 or bucket=#28:14) ORDER BY name DESC SKIP 0 LIMIT 300 DB name=""component"" com.orientechnologies.orient.core.exception.OCommandExecutionException: Error on execution of command: sql.select from asset where (contentAuth(@this, :browsedRepository) == true) and (bucket=#25:12 or bucket=#29:15 or bucket=#32:14 or bucket=#26:12 or bucket=#30:15 or bucket=#25:16 or bucket=#26:16 or bucket=#29:14 or bucket=#30:14 or bucket=#30:12 or bucket=#30:18 or bucket=#29:16 or bucket=#28:13 or bucket=#27:16 or bucket=#31:13 or bucket=#32:12 or bucket=#31:18 or bucket=#29:13 or bucket=#31:11 or bucket=#28:16 or bucket=#32:13 or bucket=#25:15 or bucket=#32:17 or bucket=#25:19 or bucket=#32:10 or bucket=#26:19 or bucket=#27:19 or bucket=#27:15 or bucket=#28:15 or bucket=#30:16 or bucket=#27:14 or bucket=#26:15 or bucket=#28:19 or bucket=#32:16 or bucket=#29:19 or bucket=#30:19 or bucket=#31:19 or bucket=#28:12 or bucket=#31:14 or bucket=#32:18 or bucket=#26:14 or bucket=#26:17 or bucket=#28:14) ORDER BY name DESC SKIP 0 LIMIT 300 DB name=""component"" at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:2636) [na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:2561) [na:na] at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69) [na:na] at org.sonatype.nexus.repository.storage.MetadataNodeEntityAdapter.browseByQuery(MetadataNodeEntityAdapter.java:167) [na:na] at org.sonatype.nexus.repository.storage.StorageTxImpl.findAssets(StorageTxImpl.java:324) [na:na] at sun.reflect.GeneratedMethodAccessor7411.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_65] at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [na:na] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na] at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63) [na:na] at com.sun.proxy.$Proxy248.findAssets(Unknown Source) [na:na] at org.sonatype.nexus.repository.browse.internal.BrowseServiceImpl.browseAssets(BrowseServiceImpl.java:174) [na:na] at org.sonatype.nexus.repository.browse.BrowseService$browseAssets$16.call(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) [na:na] at org.sonatype.nexus.coreui.ComponentComponent.readAssets(ComponentComponent.groovy:202) [na:na] at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49) [na:na] at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47) [na:na] at sun.reflect.GeneratedMethodAccessor2359.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_65] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) [org.sonatype.nexus.extdirect:3.3.0.01] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:227) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) [org.sonatype.nexus.extdirect:3.3.0.01] at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) [org.sonatype.nexus.extdirect:3.3.0.01] at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:133) [org.sonatype.nexus.extdirect:3.3.0.01] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [javax.servlet-api:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.1.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.3.0.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.3.0.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:112) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.3.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68) [org.sonatype.nexus.base:3.3.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:102) [org.sonatype.nexus.base:3.3.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98) [org.sonatype.nexus.base:3.3.0.01] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.1.0] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) [com.google.inject:4.1.0] at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.3.0.01] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.7.v20160115] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.7.v20160115] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.7.v20160115] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.7.v20160115] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65] Caused by: org.apache.shiro.session.UnknownSessionException: There is no session with id [ed97a68e-f9a7-4f16-8443-8dc9608c69b4] at org.apache.shiro.session.mgt.eis.AbstractSessionDAO.readSession(AbstractSessionDAO.java:170) [na:na] at org.apache.shiro.session.mgt.eis.CachingSessionDAO.readSession(CachingSessionDAO.java:261) [na:na] at org.apache.shiro.session.mgt.DefaultSessionManager.retrieveSessionFromDataSource(DefaultSessionManager.java:236) [na:na] at org.apache.shiro.session.mgt.DefaultSessionManager.retrieveSession(DefaultSessionManager.java:222) [na:na] at org.apache.shiro.session.mgt.AbstractValidatingSessionManager.doGetSession(AbstractValidatingSessionManager.java:118) [na:na] at org.apache.shiro.session.mgt.AbstractNativeSessionManager.lookupSession(AbstractNativeSessionManager.java:148) [na:na] at org.apache.shiro.session.mgt.AbstractNativeSessionManager.lookupRequiredSession(AbstractNativeSessionManager.java:152) [na:na] at org.apache.shiro.session.mgt.AbstractNativeSessionManager.getAttribute(AbstractNativeSessionManager.java:249) [na:na] at org.apache.shiro.session.mgt.DelegatingSession.getAttribute(DelegatingSession.java:141) [na:na] at org.apache.shiro.session.ProxiedSession.getAttribute(ProxiedSession.java:121) [na:na] at org.apache.shiro.subject.support.DelegatingSubject.getRunAsPrincipalsStack(DelegatingSubject.java:469) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.DelegatingSubject.getPrincipals(DelegatingSubject.java:153) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.DelegatingSubject.hasPrincipals(DelegatingSubject.java:126) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.DelegatingSubject.isPermitted(DelegatingSubject.java:162) [org.apache.shiro.core:1.3.2] at org.sonatype.nexus.security.SecurityHelper.anyPermitted(SecurityHelper.java:98) [org.sonatype.nexus.security:3.3.0.01] at org.sonatype.nexus.security.SecurityHelper.anyPermitted(SecurityHelper.java:116) [org.sonatype.nexus.security:3.3.0.01] at org.sonatype.nexus.repository.security.internal.ContentPermissionCheckerImpl.isViewPermitted(ContentPermissionCheckerImpl.java:58) [na:na] at org.sonatype.nexus.repository.security.internal.ContentPermissionCheckerImpl.isPermitted(ContentPermissionCheckerImpl.java:94) [na:na] at org.sonatype.nexus.repository.selector.internal.ContentAuthHelper.lambda$0(ContentAuthHelper.java:57) [na:na] at org.sonatype.nexus.repository.storage.DatabaseThreadUtils.withOtherDatabase(DatabaseThreadUtils.java:36) [na:na] at org.sonatype.nexus.repository.selector.internal.ContentAuthHelper.checkAssetPermissions(ContentAuthHelper.java:55) [na:na] at org.sonatype.nexus.repository.selector.internal.ContentAuth.execute(ContentAuth.java:70) [na:na] at com.orientechnologies.orient.core.sql.functions.OSQLFunctionRuntime.execute(OSQLFunctionRuntime.java:128) [na:na] at com.orientechnologies.orient.core.sql.functions.OSQLFunctionRuntime.getValue(OSQLFunctionRuntime.java:148) [na:na] at com.orientechnologies.orient.core.sql.filter.OSQLFilterCondition.evaluate(OSQLFilterCondition.java:375) [na:na] at com.orientechnologies.orient.core.sql.filter.OSQLFilterCondition.evaluate(OSQLFilterCondition.java:85) [na:na] at com.orientechnologies.orient.core.sql.filter.OSQLFilterCondition.evaluate(OSQLFilterCondition.java:380) [na:na] at com.orientechnologies.orient.core.sql.filter.OSQLFilterCondition.evaluate(OSQLFilterCondition.java:85) [na:na] at com.orientechnologies.orient.core.sql.filter.OSQLFilter.evaluate(OSQLFilter.java:103) [na:na] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.evaluateRecord(OCommandExecutorSQLResultsetAbstract.java:419) [na:na] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.filter(OCommandExecutorSQLResultsetAbstract.java:409) [na:na] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearchRecord(OCommandExecutorSQLSelect.java:608) [na:na] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.serialIterator(OCommandExecutorSQLSelect.java:1615) [na:na] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchFromTarget(OCommandExecutorSQLSelect.java:1562) [na:na] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:521) [na:na] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:484) [na:na] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:74) [na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:2615) [na:na] ... 102 common frames omitted {noformat}  ",5 +"NEXUS-13096","05/04/2017 13:53:15","com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker log spam every 2 minutes","Some nexus.log files are filling with thousands of these log messages ( counted over 5000 in one 13 hr period, printed every 2 minutes ): {noformat} 2017-05-03 00:00:40,394+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - Database 'analytics' uses 1,571MB/1,857MB of DISKCACHE memory, while Heap is not completely used (usedHeap=1160MB maxHeap=3959MB). To improve performance set maxHeap to 1392MB and DISKCACHE to 4424MB 2017-05-03 00:00:40,394+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx1392M 2) MAXDISKCACHE=4424 2017-05-03 00:00:40,394+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - Database 'component' uses 1,571MB/1,857MB of DISKCACHE memory, while Heap is not completely used (usedHeap=1160MB maxHeap=3959MB). To improve performance set maxHeap to 1392MB and DISKCACHE to 4424MB 2017-05-03 00:00:40,394+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx1392M 2) MAXDISKCACHE=4424 2017-05-03 00:00:40,394+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - Database 'security' uses 1,571MB/1,857MB of DISKCACHE memory, while Heap is not completely used (usedHeap=1160MB maxHeap=3959MB). To improve performance set maxHeap to 1392MB and DISKCACHE to 4424MB 2017-05-03 00:00:40,394+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx1392M 2) MAXDISKCACHE=4424 2017-05-03 00:00:40,394+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - Database 'audit' uses 1,571MB/1,857MB of DISKCACHE memory, while Heap is not completely used (usedHeap=1160MB maxHeap=3959MB). To improve performance set maxHeap to 1392MB and DISKCACHE to 4424MB 2017-05-03 00:00:40,394+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx1392M 2) MAXDISKCACHE=4424 2017-05-03 00:00:40,394+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - Database 'config' uses 1,571MB/1,857MB of DISKCACHE memory, while Heap is not completely used (usedHeap=1160MB maxHeap=3959MB). To improve performance set maxHeap to 1392MB and DISKCACHE to 4424MB 2017-05-03 00:00:40,395+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx1392M 2) MAXDISKCACHE=4424 2017-05-03 00:00:40,395+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - Database 'accesslog' uses 1,571MB/1,857MB of DISKCACHE memory, while Heap is not completely used (usedHeap=1160MB maxHeap=3959MB). To improve performance set maxHeap to 1392MB and DISKCACHE to 4424MB 2017-05-03 00:00:40,395+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx1392M 2) MAXDISKCACHE=4424 2017-05-03 00:02:40,393+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - Database 'analytics' uses 1,571MB/1,857MB of DISKCACHE memory, while Heap is not completely used (usedHeap=1160MB maxHeap=3959MB). To improve performance set maxHeap to 1392MB and DISKCACHE to 4424MB 2017-05-03 00:02:40,393+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx1392M 2) MAXDISKCACHE=4424 2017-05-03 00:02:40,393+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - Database 'component' uses 1,571MB/1,857MB of DISKCACHE memory, while Heap is not completely used (usedHeap=1160MB maxHeap=3959MB). To improve performance set maxHeap to 1392MB and DISKCACHE to 4424MB 2017-05-03 00:02:40,393+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx1392M 2) MAXDISKCACHE=4424 2017-05-03 00:02:40,393+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - Database 'security' uses 1,571MB/1,857MB of DISKCACHE memory, while Heap is not completely used (usedHeap=1160MB maxHeap=3959MB). To improve performance set maxHeap to 1392MB and DISKCACHE to 4424MB 2017-05-03 00:02:40,393+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx1392M 2) MAXDISKCACHE=4424 2017-05-03 00:02:40,393+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - Database 'audit' uses 1,571MB/1,857MB of DISKCACHE memory, while Heap is not completely used (usedHeap=1160MB maxHeap=3959MB). To improve performance set maxHeap to 1392MB and DISKCACHE to 4424MB 2017-05-03 00:02:40,393+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx1392M 2) MAXDISKCACHE=4424 2017-05-03 00:02:40,393+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - Database 'config' uses 1,571MB/1,857MB of DISKCACHE memory, while Heap is not completely used (usedHeap=1160MB maxHeap=3959MB). To improve performance set maxHeap to 1392MB and DISKCACHE to 4424MB 2017-05-03 00:02:40,393+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx1392M 2) MAXDISKCACHE=4424 2017-05-03 00:02:40,393+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - Database 'accesslog' uses 1,571MB/1,857MB of DISKCACHE memory, while Heap is not completely used (usedHeap=1160MB maxHeap=3959MB). To improve performance set maxHeap to 1392MB and DISKCACHE to 4424MB 2017-05-03 00:02:40,393+0200 INFO [Timer-1] *SYSTEM com.orientechnologies.common.profiler.OAbstractProfiler$MemoryChecker - -> Open server.sh (or server.bat on Windows) and change the following variables: 1) MAXHEAP=-Xmx1392M 2) MAXDISKCACHE=4424 {noformat} h4. Expected - document what this means and what actions might or might not be taken - provide a different message that does not refer to files/settings that are not applicable to the orient database being embedded inside nexus - do not spam logs constantly if this INFO message is not important or not actionable",2 +"NEXUS-13098","05/04/2017 15:34:06","log and prevent startup when the started Nexus version is using a data directory from a newer Nexus version","Nexus 2 detected and failed startup in most cases where configuration file compatibility versions were conflicting. Some Nexus 3 users accidentally or intentionally startup old versions of Nexus 3 against newer upgraded versions of Nexus 3 data directories. This may lead to potential problems and is certainly a state which is considered ""unknown"". This complicates trying to solve any other reported problem with a running instance. h4. Expected - Nexus 3 should detect startup against incompatible data directories/files (ie. those with later schema versions compared to the installation attempting to run), fail, and log a SEVERE message indicating the problem into the nexus.log",1 +"NEXUS-13099","05/04/2017 17:12:49","outreach capability Base URL is editable","Nexus 2 allowed setting an override URL for outreach for testing purposes. The Base URL is for display purposes only and should not be editable. We display it so that in case you do override it, you can easily revert to the default value. Nexus 3 incorrectly allows editing and saving the BaseURL field Since Base URL is named the same as the Base URL field they are used to seeing in Nexus 2 and the Nexus 3 Base URL Capability is hidden by default, we have had at least one customer set the Base URL of outreach to the base URL of their Nexus instance expecting that to work. *Expected* - make Base URL for outreach capability not editable - -if on upgrade it is changed from it's default value, reset it in the database- - document this change in release notes in case the user used the Base URL field to perform an override instead of the override field - Change of Labels and Help text (came out of PR review) ** Change the field label {{Base URL *to* Default Outreach Content URL:}}. ** Change the help text for that field from {{URL *to* use for querying page bundles.}} to {{Default external URL for downloading new Outreach content.}} ** Change the field label {{Override URL:}} *to* read {{Override Outreach Content URL:}} ** Change the help text for that field from {{Retrieve the page bundle from a specific URL.}} *to* {{Override external URL for downloading new Outreach content.}}",1 +"NEXUS-13121","05/09/2017 16:44:37","tasks may appear as Starting or Cancelling indefinitely and cannot be stopped cancelled or deleted","After restarting Nexus repository manager that has a large number of tasks, one or more tasks may - transition to Starting state before Nexus boots - never leaves Starting state to Started state - the task has the Stop button enabled - after clicking the Stop button the task is indefinitely in Cancelling state - after the clicking the task Delete button, the task is indefinitely in Cancelling state The nexus.log may show the task transitions from WAITING to RUNNING before Nexus reports it has fully booted - example: Rebuild Indexes: {noformat} 2017-05-09 14:45:16,649+0200 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.extender.NexusLifecycleManager - Start CAPABILITIES 2017-05-09 14:45:16,968+0200 DEBUG [FelixStartLevel] *SYSTEM com.sonatype.nexus.migration.MigrationCapability - Loading 2017-05-09 14:45:16,982+0200 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.extender.NexusLifecycleManager - Start TASKS 2017-05-09 14:45:17,118+0200 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.quartz.internal.QuartzSchedulerSPI - Scheduler put into ready mode 2017-05-09 14:45:17,125+0200 DEBUG [FelixStartLevel] *SYSTEM com.sonatype.nexus.migration.MigrationCapability - Activating 2017-05-09 14:45:17,134+0200 DEBUG [FelixStartLevel] *SYSTEM com.sonatype.nexus.migration.MigrationServiceImpl - Transitioning: NEW -> STARTED 2017-05-09 14:45:17,137+0200 DEBUG [FelixStartLevel] *SYSTEM com.sonatype.nexus.migration.repository.RepositoryMigrationManagerImpl - Transitioning: NEW -> STARTED 2017-05-09 14:45:17,137+0200 DEBUG [FelixStartLevel] *SYSTEM com.sonatype.nexus.migration.repository.RepositoryMigrationManagerImpl - Transitioned: STARTED 2017-05-09 14:45:17,189+0200 INFO [FelixStartLevel] *SYSTEM com.sonatype.nexus.migration.MigrationServiceImpl - Created assistant: com.sonatype.nexus.migration.assistant.MigrationAssistantImpl$$EnhancerByGuice$$bf043155@749e3389 2017-05-09 14:45:17,189+0200 DEBUG [FelixStartLevel] *SYSTEM com.sonatype.nexus.migration.assistant.MigrationAssistantImpl - Starting 2017-05-09 14:45:17,190+0200 DEBUG [FelixStartLevel] *SYSTEM com.sonatype.nexus.migration.assistant.MigrationAssistantImpl - Started 2017-05-09 14:45:17,190+0200 DEBUG [FelixStartLevel] *SYSTEM com.sonatype.nexus.migration.MigrationServiceImpl - Transitioned: STARTED 2017-05-09 14:45:17,275+0200 INFO [quartz-1-thread-1] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Rebuild Indexes' [repository.rebuild-index] state change WAITING -> RUNNING 2017-05-09 14:45:17,279+0200 INFO [quartz-1-thread-2] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Storage facet cleanup' [repository.storage-facet-cleanup] state change WAITING -> RUNNING 2017-05-09 14:45:17,370+0200 WARN [quartz-1-thread-2] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskJob - Task 0fd989ec-c4fc-4c4a-a8cc-004c178a0bde : 'Storage facet cleanup' [repository.storage-facet-cleanup] execution failure org.sonatype.nexus.common.stateguard.InvalidStateException: Invalid state: NEW; allowed: [STARTED] at org.sonatype.nexus.common.stateguard.StateGuard._ensure(StateGuard.java:115) [org.sonatype.nexus.common:3.3.1.01] at org.sonatype.nexus.common.stateguard.StateGuard.access$1(StateGuard.java:108) [org.sonatype.nexus.common:3.3.1.01] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:269) [org.sonatype.nexus.common:3.3.1.01] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [org.sonatype.nexus.common:3.3.1.01] at org.sonatype.nexus.repository.storage.internal.StorageFacetCleanupTask.execute(StorageFacetCleanupTask.java:48) [na:na] at org.sonatype.nexus.repository.storage.internal.StorageFacetCleanupTask.execute(StorageFacetCleanupTask.java:1) [na:na] at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:89) [org.sonatype.nexus.scheduling:3.3.1.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) [org.sonatype.nexus.quartz:3.3.1.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:106) [org.sonatype.nexus.quartz:3.3.1.01] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [org.quartz-scheduler.quartz:2.2.2] at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) [org.sonatype.nexus.thread:3.3.1.01] at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [org.apache.shiro.core:1.3.2] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_131] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_131] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131] 2017-05-09 14:45:17,386+0200 INFO [quartz-1-thread-2] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Storage facet cleanup' [repository.storage-facet-cleanup] state change RUNNING -> WAITING (FAILED) 2017-05-09 14:45:17,415+0200 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Health Check: iits-npm-internal' [healthcheck] removed 2017-05-09 14:45:17,453+0200 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Health Check: iits-npm-internal' [healthcheck] : state=WAITING 2017-05-09 14:45:17,483+0200 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.scheduling.internal.TaskSchedulerImpl - Task 'Health Check: iits-npm-internal' [healthcheck] scheduled: hourly 2017-05-09 14:45:17,485+0200 INFO [FelixStartLevel] *SYSTEM com.sonatype.nexus.plugins.healthcheck.service.impl.HealthCheckTaskManagerImpl - Enabled health check for repository iits-npm-internal 2017-05-09 14:45:17,547+0200 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Health Check: docker-public' [healthcheck] removed 2017-05-09 14:45:17,562+0200 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Health Check: docker-public' [healthcheck] : state=WAITING 2017-05-09 14:45:17,578+0200 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.scheduling.internal.TaskSchedulerImpl - Task 'Health Check: docker-public' [healthcheck] scheduled: hourly 2017-05-09 14:45:17,579+0200 INFO [FelixStartLevel] *SYSTEM com.sonatype.nexus.plugins.healthcheck.service.impl.HealthCheckTaskManagerImpl - Enabled health check for repository docker-public 2017-05-09 14:45:17,660+0200 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Health Check: npmjs-public' [healthcheck] removed 2017-05-09 14:45:17,672+0200 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Health Check: npmjs-public' [healthcheck] : state=WAITING 2017-05-09 14:45:17,694+0200 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.scheduling.internal.TaskSchedulerImpl - Task 'Health Check: npmjs-public' [healthcheck] scheduled: hourly 2017-05-09 14:45:17,694+0200 INFO [FelixStartLevel] *SYSTEM com.sonatype.nexus.plugins.healthcheck.service.impl.HealthCheckTaskManagerImpl - Enabled health check for repository npmjs-public 2017-05-09 14:45:17,722+0200 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.osgi.BootstrapListener - Initialized 2017-05-09 14:45:17,738+0200 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.rapture.internal.RaptureWebResourceBundle - UI plugin descriptors: 2017-05-09 14:45:17,739+0200 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.rapture.internal.RaptureWebResourceBundle - nexus-rapture 2017-05-09 14:45:17,740+0200 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.rapture.internal.RaptureWebResourceBundle - nexus-proximanova-plugin 2017-05-09 14:45:17,740+0200 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.rapture.internal.RaptureWebResourceBundle - nexus-coreui-plugin 2017-05-09 14:45:17,741+0200 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.rapture.internal.RaptureWebResourceBundle - nexus-proui-plugin 2017-05-09 14:45:17,750+0200 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.internal.webresources.WebResourceServlet - Max-age: 30 days (2592000 seconds) 2017-05-09 14:45:17,788+0200 INFO [jetty-main-1] *SYSTEM com.softwarementors.extjs.djn.servlet.DirectJNgineServlet - Servlet GLOBAL configuration: debug=false, providersUrl=service/extdirect, minify=false, batchRequestsMultithreadingEnabled=true, batchRequestsMinThreadsPoolSize=16, batchRequestsMaxThreadsPoolSize=80, batchRequestsMaxThreadsPerRequest=8, batchRequestsMaxThreadKeepAliveSeconds=60, gsonBuilderConfiguratorClass=org.sonatype.nexus.extdirect.internal.ExtDirectGsonBuilderConfigurator, dispatcherClass=com.softwarementors.extjs.djn.servlet.ssm.SsmDispatcher, jsonRequestProcessorThreadClass=org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread, contextPath=--not specified: calculated via Javascript--, createSourceFiles=true 2017-05-09 14:45:17,791+0200 INFO [jetty-main-1] *SYSTEM com.softwarementors.extjs.djn.servlet.DirectJNgineServlet - Servlet GLOBAL configuration: registryConfiguratorClass= 2017-05-09 14:45:17,813+0200 INFO [jetty-main-1] *SYSTEM com.softwarementors.extjs.djn.jscodegen.CodeFileGenerator - Creating source files for APIs... 2017-05-09 14:45:17,998+0200 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - JAX-RS RuntimeDelegate: org.sonatype.nexus.siesta.internal.resteasy.SisuResteasyProviderFactory@7c2f8ed2 2017-05-09 14:45:18,376+0200 INFO [jetty-main-1] *SYSTEM org.jboss.resteasy.plugins.validation.i18n - RESTEASY008550: Unable to find CDI supporting ValidatorFactory. Using default ValidatorFactory 2017-05-09 14:45:18,419+0200 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - Initialized 2017-05-09 14:45:18,424+0200 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Initialized 2017-05-09 14:45:18,457+0200 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.handler.ContextHandler - Started o.e.j.w.WebAppContext@1287b6bc{/nexus,file:///nexus/nexusV3/nexus-3.3.1-01/public/,AVAILABLE} 2017-05-09 14:45:18,505+0200 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.ServerConnector - Started ServerConnector@3904067{HTTP/1.1,[http/1.1]}{0.0.0.0:8088} 2017-05-09 14:45:18,505+0200 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.Server - Started @52041ms 2017-05-09 14:45:18,506+0200 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - ------------------------------------------------- Started Sonatype Nexus OSS 3.3.1-01 ------------------------------------------------- {noformat} A thread dump from the server may show the task thread stuck as follows: {noformat} quartz-1-thread-1 id=163 state=TIMED_WAITING - waiting on <0x28cbf57a> (a java.util.concurrent.CountDownLatch$Sync) - locked <0x28cbf57a> (a java.util.concurrent.CountDownLatch$Sync) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1037) at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1328) at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:277) at org.sonatype.nexus.quartz.internal.task.QuartzTaskFuture.get(QuartzTaskFuture.java:203) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.mayBlock(QuartzTaskJob.java:222) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:139) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:106) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) Locked synchronizers: count = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@4c7bc7c2 {noformat} h4. Workaround A user may want to know how to delete the stuck task. The only way is to explicitly delete the task from the configuration database using a special OrientDB console command. Please contact support if you need the additional information to delete a similarly stuck task.",3 +"NEXUS-13126","05/10/2017 18:57:06","When ""Require user tokens for repository authentication"" is set nexus does not send an authorization header","Configure user token access in the server, and enable ""Require user tokens for repository authentication"".  Then run a Maven build against the server.  Artifact downloads will fail with 401 even if a valid token is used. The reason for this is that Maven by default sends requests with non-preemptive authentication, and will only send credentials in response to a 401 response with a challenge header.  The challenge header is missing in the response.  Nexus should be setting something like:   {code:java} WWW-Authenticate: BASIC realm=""Sonatype Nexus Repository Manager""{code}",1 +"NEXUS-13127","05/10/2017 18:59:24","Anonymous access to repositories does not work when ""Require user tokens for repository authentication"" is set","Configure user token access in the server, and enable ""Require user tokens for repository authentication"".  Then run a Maven build against the server against a repository that allows anonymous read access.   The build will fail, a 401 response is sent.   The ""Require user tokens for repository authentication"" feature should not block anonymous requests.  It should only block requests that are sent with credentials that are not user tokens.",2 +"NEXUS-13130","05/11/2017 14:44:42","Timed out reading query result from queue when running purge unused snapshots task","  The purge unused snapshots task fails with query timeouts when run against large data sets.     The blob store this was running against is used only for the snapshot repository the task is running against.  It has: blob count: 3752052 total size: 828.9 GB   The machine has plenty of RAM (32Gb).  14Gb of space was allocated for OrientDB cache, 4Gb for heap.     {noformat} 2017-05-10 15:20:52,086+0200 INFO [quartz-1-thread-6] *SYSTEM org.sonatype.nexus.repository.maven.internal.PurgeUnusedSnapshotsFacetImpl - Purging unused snapshots 600 days or older from repository orbis-snapshots 2017-05-10 15:21:17,399+0200 INFO [pool-21-thread-9] anonymous com.sonatype.nexus.plugins.outreach.internal.outreach.SonatypeOutreach - Outreach bundle unavailable http://orbis-maven.agfahealthcare.com/nexus3/oss/3.3.1-01/en/anonymous (404:Not Found) 2017-05-10 15:21:52,101+0200 ERROR [quartz-1-thread-6] *SYSTEM org.sonatype.nexus.repository.maven.tasks.PurgeMavenUnusedSnapshotsTask - Failed to run task 'Purge unused Maven snapshot versions from orbis-snapshots' on repository 'orbis-snapshots' java.lang.IllegalStateException: Timed out reading query result from queue 181ac967 after 60 seconds at org.sonatype.nexus.repository.storage.OrientAsyncHelper$QueueConsumingIterable.hasNext(OrientAsyncHelper.java:201) [na:na] at com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:42) [com.google.guava:21.0.0] at org.sonatype.nexus.repository.maven.internal.PurgeUnusedSnapshotsFacetImpl.deleteUnusedSnapshotComponents(PurgeUnusedSnapshotsFacetImpl.java:164) [na:na] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) [org.sonatype.nexus.transaction:3.3.1.01] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) [org.sonatype.nexus.transaction:3.3.1.01] at org.sonatype.nexus.repository.maven.internal.PurgeUnusedSnapshotsFacetImpl.purgeSnapshotsFromRepository(PurgeUnusedSnapshotsFacetImpl.java:145) [na:na] at org.sonatype.nexus.repository.maven.internal.PurgeUnusedSnapshotsFacetImpl.processAsHosted(PurgeUnusedSnapshotsFacetImpl.java:120) [na:na] at org.sonatype.nexus.repository.maven.internal.PurgeUnusedSnapshotsFacetImpl.purgeUnusedSnapshots(PurgeUnusedSnapshotsFacetImpl.java:109) [na:na] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [org.sonatype.nexus.common:3.3.1.01] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [org.sonatype.nexus.common:3.3.1.01] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [org.sonatype.nexus.common:3.3.1.01] at org.sonatype.nexus.repository.maven.tasks.PurgeMavenUnusedSnapshotsTask.execute(PurgeMavenUnusedSnapshotsTask.java:59) [na:na] at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:56) [na:na] at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:89) [org.sonatype.nexus.scheduling:3.3.1.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) [org.sonatype.nexus.quartz:3.3.1.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:106) [org.sonatype.nexus.quartz:3.3.1.01] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [org.quartz-scheduler.quartz:2.2.2] at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) [org.sonatype.nexus.thread:3.3.1.01] at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [org.apache.shiro.core:1.3.2] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_131] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_131] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131] 2017-05-10 15:21:52,103+0200 WARN [quartz-1-thread-6] *SYSTEM org.sonatype.nexus.{noformat}  ",5 +"NEXUS-13136","05/12/2017 00:18:27","NullPointerException is thrown when user-agent header value is not present","Discovered as part of NEXUS-13048 where a user was doing an upload to a raw repository and seeing an NPE in the logs. The user was using a Groovy library to perform the upload which was not sending the user-agent header which caused the NPE. Acceptance criteria: No NPE",1 +"NEXUS-13137","05/12/2017 15:03:04","Purge unused components and assets task should support PyPi and Bower proxy repositories","Currently the task ""Purge unused components and assets task"" is not configurable against and no-op for PyPi and Bower format proxy repositories. h4. Expected - PyPi and Bower proxy repositories should be selectable in the repository list shown on the task configiuration - when the task is configured for All Repositories, PyPi and Bower proxy repositories should not be a no-op, but instead be processed  ",0.5 +"NEXUS-13140","05/12/2017 20:26:12","when browsing assets in a group repository the asset summary UI should display the containing member repository name ","If you use ""browse assets"" on a group repository you can find the files in the group.  But there is no way to know what repository these files actually live in.    This is a critical diagnostic tool needed by support.  As an example, a customer here had bad metadata files in their group repository which was causing merges to fail. There was no way to find out what repository actually had the bad files.  Note that ""?describe"" diagnostics are not user friendly and would not work in this case since it would end up running a merge, which would fail. h4. Expected - The asset details screen should show what proxy or hosted group member containing repository the asset resides in",2 +"NEXUS-13141","05/12/2017 20:31:21","when merging maven-metadata.xml for a group request fails the repository ID containing the bad metadata is not logged","If a maven-metadata.xml file merge fails in Nexus 3 the repository ID with bad metadata is not logged, even at ROOT DEBUG.  This makes it extremely difficult to find where the problematic file is.   {noformat} 2017-05-12 16:41:57,460+0000 WARN [qtp359682993-47] test org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: GET /repository/public/org/apache/maven/wagon/wagon-ssh/maven-metadata.xml java.io.EOFException: input contained no data at org.codehaus.plexus.util.xml.pull.MXParser.fillBuf(MXParser.java:3037) [na:na] at org.codehaus.plexus.util.xml.pull.MXParser.more(MXParser.java:3080) [na:na] at org.codehaus.plexus.util.xml.pull.MXParser.parseProlog(MXParser.java:1451) [na:na] at org.codehaus.plexus.util.xml.pull.MXParser.nextImpl(MXParser.java:1436) [na:na] at org.codehaus.plexus.util.xml.pull.MXParser.next(MXParser.java:1131) [na:na] at org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader.read(MetadataXpp3Reader.java:913) [na:na] at org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader.read(MetadataXpp3Reader.java:519) [na:na] at org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader.read(MetadataXpp3Reader.java:548) [na:na] at org.sonatype.nexus.repository.maven.internal.MavenModels.readMetadata(MavenModels.java:83) [na:na] at org.sonatype.nexus.repository.maven.internal.group.RepositoryMetadataMerger.merge(RepositoryMetadataMerger.java:73) [na:na] at org.sonatype.nexus.repository.maven.internal.group.MavenGroupFacet.mergeAndCache(MavenGroupFacet.java:125) [na:na] at org.sonatype.nexus.repository.maven.internal.group.MergingGroupHandler.doGet(MergingGroupHandler.java:98) [na:na] at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:79) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na]{noformat}    ",0.5 +"NEXUS-13145","05/15/2017 08:08:36","Rejecting requests including an Authorization header for unrestricted resoruces","This is a bug that bit me hard while trying to install scoped packages ([#6857|https://issues.sonatype.org/browse/NEXUS-6857]) with [yarn|https://yarnpkg.com/en/]. It is a new popular client for npm. When requesting scoped packages, yarn always includes an Authorization header, if the user previously logged in to the npm registry. This request is a standard non-scoped package and Nexus responds correctly. {noformat} GET /repository/web/locale-emoji HTTP/1.1 User-Agent: yarn/0.23.4 npm/? node/v7.10.0 linux x64 host: mirror.devrepo.ddg:8081 accept-encoding: gzip, deflate accept: application/json Connection: keep-alive {noformat} This request is for a scoped package and includes the Authorization header. {noformat} GET /repository/web/@glimmer%2fresolver HTTP/1.1 User-Agent: yarn/0.23.4 npm/? node/v7.10.0 linux x64 authorization: Bearer fa2da30a-*** host: mirror.devrepo.ddg:8081 accept-encoding: gzip, deflate accept: application/json Connection: keep-alive {noformat} Nexus responds with a 401. {noformat} HTTP/1.1 401 Unauthorized Date: Mon, 15 May 2017 06:44:17 GMT Server: Nexus/3.0.0-03 (OSS) X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Set-Cookie: NXREMEMBERME=deleteMe; Path=/; Max-Age=0; Expires=Sun, 14-May-2017 06:44:17 GMT WWW-Authenticate: BASIC realm=""Sonatype Nexus"" Content-Length: 0 {noformat} Versus a yarn request without having logged in: {noformat} GET /repository/web/@glimmer%2fresolver HTTP/1.1 User-Agent: yarn/0.23.4 npm/? node/v7.10.0 linux x64 host: mirror.devrepo.ddg:8081 accept-encoding: gzip, deflate accept: application/json Connection: keep-alive {noformat} {noformat} HTTP/1.1 200 OK Date: Mon, 15 May 2017 07:05:45 GMT Server: Nexus/3.0.0-03 (OSS) X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Content-Type: application/json Content-Length: 15665 {noformat} Expected behavior: Ignore the Authorization header for unrestricted packages instead of issuing a 401.",2 +"NEXUS-13148","05/15/2017 15:35:55","Query timeout when running Publish Maven Indexes task.","The Publish Maven Indexes task fails with query timeouts when run against large data sets. The machine has plenty of RAM (32Gb).  14Gb of space was allocated for OrientDB cache, 4Gb for heap.   {code:java} 2017-05-15 09:29:32,609+0200 ERROR [quartz-1-thread-12] *SYSTEM org.sonatype.nexus.repository.maven.tasks.PublishMavenIndexTask - Failed to run task 'Publish Maven indexes of orbis-dev' on repository 'orbis-dev' java.lang.IllegalStateException: Timed out reading query result from queue 589e7e80 after 60 seconds at org.sonatype.nexus.repository.storage.OrientAsyncHelper$QueueConsumingIterable.hasNext(OrientAsyncHelper.java:201) [na:na] at com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:42) [com.google.guava:21.0.0] at com.google.common.collect.Iterators$6.computeNext(Iterators.java:615) [com.google.guava:21.0.0] at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:145) [com.google.guava:21.0.0] at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:140) [com.google.guava:21.0.0] at com.google.common.collect.MultitransformedIterator.hasNext(MultitransformedIterator.java:53) [com.google.guava:21.0.0] at com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:42) [com.google.guava:21.0.0] at com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:42) [com.google.guava:21.0.0] at org.apache.maven.index.reader.ChunkWriter.writeChunk(ChunkWriter.java:92) [na:na] at org.apache.maven.index.reader.IndexWriter.writeChunk(IndexWriter.java:150) [na:na] at org.sonatype.nexus.repository.maven.internal.MavenIndexPublisher.lambda$0(MavenIndexPublisher.java:216) [na:na] at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) [org.sonatype.nexus.transaction:3.3.1.01] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) [org.sonatype.nexus.transaction:3.3.1.01] at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:200) [org.sonatype.nexus.transaction:3.3.1.01] at org.sonatype.nexus.transaction.Operations.call(Operations.java:146) [org.sonatype.nexus.transaction:3.3.1.01] at org.sonatype.nexus.repository.maven.internal.MavenIndexPublisher.publishHostedIndex(MavenIndexPublisher.java:211) [na:na] at org.sonatype.nexus.repository.maven.internal.hosted.MavenHostedIndexFacet.publishIndex(MavenHostedIndexFacet.java:38) [na:na] at org.sonatype.nexus.repository.maven.tasks.PublishMavenIndexTask.execute(PublishMavenIndexTask.java:37) [na:na] at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:56) [na:na] at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:89) [org.sonatype.nexus.scheduling:3.3.1.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) [org.sonatype.nexus.quartz:3.3.1.01] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:106) [org.sonatype.nexus.quartz:3.3.1.01] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [org.quartz-scheduler.quartz:2.2.2] at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) [org.sonatype.nexus.thread:3.3.1.01] at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [org.apache.shiro.core:1.3.2] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_131] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_131] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131] {code} The hosted repo orbis-dev is using a custom blobstore that no other repo uses. orbis-dev-2016 blob store: Blob count: 2922750 Total size: 562.1 GB",5 +"NEXUS-13163","05/17/2017 03:48:46","Use bulk API for incremental Elasticsearch updates","Incremental Elasticsearch index updates, such as those triggered by component and asset entity events, currently use the standard put and delete API. When a massive insert of assets occurs this could cause index updates to fail for the same reason as NEXUS-12520 To get the same benefits as NEXUS-12520 (automatic retries, etc.) we should also use the bulk API for incremental updates.",2 +"NEXUS-13168","05/17/2017 17:11:30","NullPointerException on npm search when invalidating cache","While investigating https://issues.sonatype.org/browse/NEXUS-12716 I found another NPE when running npm search. When npm search is run against a group containing a proxy the following stack is outputted but the search runs successfully: {code:java} 2017-05-17 09:04:35,695+0100 ERROR [event-7-thread-18] anonymous com.google.common.eventbus.EventBus.nexus.async - Could not dispatch event com.sonatype.nexus.repository.npm.internal.NpmSearchIndexInvalidatedEvent@68784d5f to subscriber com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetGroup$$EnhancerByGuice$$2aa2ef56@326797d7 method [public void com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetGroup.on(com.sonatype.nexus.repository.npm.internal.NpmSearchIndexInvalidatedEvent)] java.lang.NullPointerException: null at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:770) [com.google.guava:21.0.0] at org.sonatype.nexus.repository.FacetSupport.getRepository(FacetSupport.java:62) [na:na] at org.sonatype.nexus.repository.FacetSupport.facet(FacetSupport.java:213) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetGroup.on(NpmSearchIndexFacetGroup.java:77) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_121] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_121] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_121] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_121] at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) [na:na] at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) [na:na] at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) [org.sonatype.nexus.thread:3.3.1.SNAPSHOT] at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [org.apache.shiro.core:1.3.2] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_121] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_121] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121] {code} This has something to do with the fact that the proxy fires the search index invalidation event while the group is in the middle of building its search index, although it is not immediately obvious how the repository field could ever be null.",2 +"NEXUS-13171","05/17/2017 20:22:00","Administration UI ""cog"" does not show up when using RUT authentication","When a user with ""nx-admin"" role is authenticated using RUT authorization the ""cog"" icon which lets you into the user administration UI for Nexus does not show up.   To reproduce this set up remote user authorization: [https://books.sonatype.com/nexus-book/3.3/reference/security.html#remote-user-token] [https://support.sonatype.com/hc/en-us/articles/214942368-How-to-Configure-Request-Header-Authentication-in-Nexus-with-Apache]   Then simply authenticate through Apache using a user that has ""nx-admin"" role.  You will see that the administration cog is not visible.   Direct access to the administration UI through URL's like [http://localhost:8081/#admin/security/users] does work.  ",2 +"NEXUS-13173","05/17/2017 21:40:49","Search UI does not show up when using RUT authentication","When a user with ""nx-admin"" role is authenticated using RUT authorization the repository search UI does not show up.   To reproduce this set up remote user authorization: [https://books.sonatype.com/nexus-book/3.3/reference/security.html#remote-user-token] [https://support.sonatype.com/hc/en-us/articles/214942368-How-to-Configure-Request-Header-Authentication-in-Nexus-with-Apache]   Then simply authenticate through Apache using a user that has ""nx-admin"" role.  You will see that the search UI is missing on the landing page.",1 +"NEXUS-13178","05/18/2017 15:46:14","gem development dependencies are treated as runtime dependencies","1. publish a gem with dev dependencies to nx3 hosted repo 2. when you install the gem from the hosted repo, nx3 reports the dev dependencies as main dependencies (downloads them when it should not ) - this is different than how rubygems.org and nexus 2 works Ruby gems dependency metadata returned from /api/v1/dependencies incorrectly identifies development dependencies as runtime dependencies - this can cause builds to fail due to conflicts resolving dependency versions. Expected - make Nexus 3 treat dev dependencies like rubygems.org and nexus 2 do",3 +"NEXUS-13200","05/23/2017 21:13:49","Deleting docker image leaves dangling image of same ID","When I have 2 images with different tags but delete one using curl, it removes the sha file and the latest image but leaves the other image there. This was intentional after NEXUS-12711 but further work could be done so delete both images. The workaround is run the delete again and it will remove the second image. Steps to repro: 1) docker pull hello-world 2) docker tag hello-world /hello-world 3) docker push /hello-world 4) docker tag hello-world /hello-world:second 5) docker push /hello-world:second 6) curl -v -u 'admin:admin123' -H 'Accept:application/vnd.docker.distribution.manifest.v2+json' https:///v2/hello-world/manifests/latest -k 7) curl -v -X DELETE -u 'admin:admin123' https:///v2/hello-world/manifests/sha256: -k 8) curl -u 'admin:admin123' https:///v2/hello-world/tags/list -k shows ""second"". UI also shows image and manifest for second. WEIRD9) curl -v -u 'admin:admin123' -H 'Accept:application/vnd.docker.distribution.manifest.v2+json' https:///v2/hello-world/manifests/second -k shows the same as latest. So seems an associated file is now missing (on push, both the manifest and sha file are created).",2 +"NEXUS-13207","05/24/2017 20:05:43","NPM group search document is not invalidated when member search documents change","While testing NPM (mostly group search) I noticed this exception a few times. I could not find a reproducable case nor am I sure any adverse behavior but am filing after discussion with the team and also after seeing in 3.3.1, knowing it's not (recent) regression. {code} 2017-05-23 15:59:28,235-0400 ERROR [event-7-thread-26] admin com.google.common.eventbus.EventBus.nexus.async - Could not dispatch event com.sonatype.nexus.repository.npm.internal.NpmSearchIndexInvalidatedEvent@3e77c99e to subscriber com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetGroup$$EnhancerByGuice$$999fc080@5757b488 method [public void com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetGroup.on(com.sonatype.nexus.repository.npm.internal.NpmSearchIndexInvalidatedEvent)] java.lang.IllegalStateException: Unit of work has not been set at com.google.common.base.Preconditions.checkState(Preconditions.java:444) [com.google.guava:21.0.0] at org.sonatype.nexus.transaction.UnitOfWork.acquireTransaction(UnitOfWork.java:169) [na:na] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [na:na] at com.sonatype.nexus.repository.npm.internal.NpmSearchIndexFacetGroup.on(NpmSearchIndexFacetGroup.java:74) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [na:1.8.0_40] at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) [na:na] at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) [na:na] at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) [org.sonatype.nexus.thread:3.4.0.SNAPSHOT] at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [org.apache.shiro.core:1.3.2] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_40] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_40] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] {code}",2 +"NEXUS-13227","05/29/2017 20:44:46","Deleting last asset from search leaves component until refresh","While testing, I found if I deleted the last asset of a component that I had searched, I was returned to the search list however the component was still there. If you manually enter the component, it has no assets. If you refresh the search again, the component disappears. While I was looking to see if this was filed (seemed familiar), I noticed browse does NOT act the same way. Thus I am filing a bug, as I had suspsected it might be intentional, but cannot rationalize why Search would work this way and Browse not (Browse works as I expected). Marking minor since the workaround is to refresh.",2 +"NEXUS-13228","05/29/2017 22:22:11","race condition writing to request.log under high load may cause dead lock, thread pool exhaustion and CPU spike","Nexus 2.x uses version 1.1.2 of logback-access,logback-core,logback-classic. As such it may be affected by a race condition that has been reported and described in https://jira.qos.ch/browse/LOGBACK-1270. Nexus uses a custom PatternLayoutEncoder defined inside the logback-access.xml file so that the request log can print the user name for each authenticated request log line. Recently the LogBack developers released a backported fix for version 1.1.x line of releases. Nexus 2.14.x uses version 1.1.2 of logback. h4. Symptoms The main symptom is a single thread was blocking many others from writing to the request.log. {noformat:title=Example Blocking Thread} ""qtp2074628523-9375"" #9375 prio=5 os_prio=0 tid=0x00007f8cb0404800 nid=0x2014 waiting for monitor entry [0x00007f8d4466b000] java.lang.Thread.State: BLOCKED (on object monitor) at ch.qos.logback.core.pattern.PatternLayoutBase.writeLoopOnConverters(PatternLayoutBase.java:116) at ch.qos.logback.access.PatternLayout.doLayout(PatternLayout.java:196) at ch.qos.logback.access.PatternLayout.doLayout(PatternLayout.java:65) at ch.qos.logback.core.encoder.LayoutWrappingEncoder.doEncode(LayoutWrappingEncoder.java:134) at ch.qos.logback.core.OutputStreamAppender.writeOut(OutputStreamAppender.java:194) at ch.qos.logback.core.FileAppender.writeOut(FileAppender.java:209) at ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:219) at ch.qos.logback.core.rolling.RollingFileAppender.subAppend(RollingFileAppender.java:182) at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:103) at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:88) at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:48) at ch.qos.logback.access.jetty.RequestLogImpl.log(RequestLogImpl.java:142) at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:92) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:370) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494) at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Unknown Source) Locked ownable synchronizers: - <0x00000006c8e2e578> (a java.util.concurrent.locks.ReentrantLock$FairSync) {noformat} {noformat:title=Example Blocked Thread} ""qtp2074628523-9368"" #9368 prio=5 os_prio=0 tid=0x00007f8d0c00b000 nid=0x200a waiting on condition [0x00007f8d471f0000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000006c8e2e578> (a java.util.concurrent.locks.ReentrantLock$FairSync) at java.util.concurrent.locks.LockSupport.park(Unknown Source) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(Unknown Source) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(Unknown Source) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(Unknown Source) at java.util.concurrent.locks.ReentrantLock$FairSync.lock(Unknown Source) at java.util.concurrent.locks.ReentrantLock.lock(Unknown Source) at ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:217) at ch.qos.logback.core.rolling.RollingFileAppender.subAppend(RollingFileAppender.java:182) at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:103) at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:88) at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:48) at ch.qos.logback.access.jetty.RequestLogImpl.log(RequestLogImpl.java:142) at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:92) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:370) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494) at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Unknown Source) Locked ownable synchronizers: - None {noformat} h4. Workaround A restart will be required to escape the dead lock. ",2 +"NEXUS-13303","06/01/2017 12:02:47","email non-ssl fails when 'use Nexus truststore is selected'","When none of the SSL options are selected for email server, but ""Use the Nexus Trust Store"" is then email connection fails with the following error. {noformat} Caused by: javax.mail.MessagingException: Could not connect to SMTP host: test-email-server.int, port: 25 at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2120) [na:na] at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:712) [na:na] at javax.mail.Service.connect(Service.java:388) [na:na] at javax.mail.Service.connect(Service.java:246) [na:na] at javax.mail.Service.connect(Service.java:195) [na:na] at javax.mail.Transport.send0(Transport.java:254) [na:na] at javax.mail.Transport.send(Transport.java:124) [na:na] at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1411) [na:na] ... 95 common frames omitted Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710) [na:1.8.0_102] at sun.security.ssl.InputRecord.read(InputRecord.java:527) [na:1.8.0_102] at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) [na:1.8.0_102] at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) [na:1.8.0_102] at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) [na:1.8.0_102] at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) [na:1.8.0_102] at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:598) [na:na] at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:372) [na:na] at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238) [na:na] at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2084) [na:na] ... 102 common frames omitted {noformat} Although the ""Use the Nexus Trust Store"" does not make sense when connecting to non-ssl email server, it should not fail a and use plain text connect. A valid use case would be to have ""Enable STARTTLS support for insecure connections"" selected, so if SSL is available it would use it, otherwise use plain text. But with ""Use the Nexus Trust Store"" select it will for it to use SSL.",2 +"NEXUS-13304","06/01/2017 17:11:36","500 responses from Nexus after enabling quarantine on NuGet proxy repository","Reproduce steps: # Configure Nexus 3.3.1 to use an IQ server # Set up audit/quarantine capability for a proxy of ""https://www.nuget.org/api/v2/"".  Enable quarantine for this capability # Request a NuGet package through the server, such as""http://localhost:8081/repository/nuget.org-proxy/Newtonsoft.Json/10.0.2""    You'll get a 500 response from the server.   Note that this affects all new component requests, not just the first one. Not all repository formats are affected by this bug.  I was not able to reproduce this using Maven, for example.  When the failure occurs the log shows:   {noformat} 2017-06-01 11:07:21,705-0500 WARN  [qtp1583363509-140] admin com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinary - Error deserializing record with id #29:0 send this data for debugging: AAphc3NldD0AAABEPwAAAEZBAAAATDsAAABSRwAACUsBAAAJTUkAAAlkSwAACWhNAAAJeE8AAAnTUQAACdlTAAAJ3wAuAApudWdldJK1ysaMVwoHCm51Z2V0AAAAmQwHEGNoZWNrc3VtAAAIGAwHDmNvbnRlbnQAAAjcDAcKY2FjaGUAAAkUDAcUcHJvdmVuYW5jZQAACS8MOgc0cmVxdWlyZV9saWNlbnNlX2FjY2VwdGFuY2UAAAK/AAcgcmVwb3J0X2FidXNlX3VybAAAAsAHBxBrZXl3b3JkcwAAAwMHBxhwYWNrYWdlX3NpemUAAANzAwcWZGVzY3JpcHRpb24AAAN3BwcWcHJvamVjdF91cmwAAAO2BwcQbGFuZ3VhZ2UAAAPVBwcKdGl0bGUAAAPbBwcmZ2FsbGVyeV9kZXRhaWxzX3VybAAAA+QHByxwYWNrYWdlX2hhc2hfYWxnb3JpdGhtAAAEGgcHBGlkAAAEIQcHEGljb25fdXJsAAAEMQcHDnN1bW1hcnkAAARoBwcYbGFzdF91cGRhdGVkAAAEaQYHGmlzX3ByZXJlbGVhc2UAAARvAAcOY3JlYXRlZAAABHAGBxJwdWJsaXNoZWQAAAR2BgcOdmVyc2lvbgAABHwHBxxkb3dubG9hZF9jb3VudAAABIMBBxhkZXBlbmRlbmNpZXMAAASHBwcIdGFncwAABwsHByx2ZXJzaW9uX2Rvd25sb2FkX2NvdW50AAAHEAEHEGxvY2F0aW9uAAAHFAcHFG5hbWVfb3JkZXIAAAdQBwcYcGFja2FnZV9oYXNoAAAHaAcHFmxpY2Vuc2VfdXJsAAAHwgcHDmF1dGhvcnMAAAgEBwciaXNfbGF0ZXN0X3ZlcnNpb24AAAgWAAc0aXNfYWJzb2x1dGVfbGF0ZXN0X3ZlcnNpb24AAAgXAACCAWh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9OZXd0b25zb2Z0Lkpzb24vMTAuMC4yL1JlcG9ydEFidXNl3AFuZXd0b25zb2Z0Lmpzb24ganNvbi5uZXQganNvbi5uZXQgaXMgYSBwb3B1bGFyIGhpZ2gtcGVyZm9ybWFuY2UganNvbiBmcmFtZXdvcmsgZm9yIC5uZXQganNvbiBqYW1lcyBuZXd0b24ta2luZ5K/+wF8SnNvbi5ORVQgaXMgYSBwb3B1bGFyIGhpZ2gtcGVyZm9ybWFuY2UgSlNPTiBmcmFtZXdvcmsgZm9yIC5ORVQ8aHR0cDovL3d3dy5uZXd0b25zb2Z0LmNvbS9qc29uCmVuLVVTEEpzb24uTkVUamh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9OZXd0b25zb2Z0Lkpzb24vMTAuMC4yDFNIQTUxMh5OZXd0b25zb2Z0Lkpzb25saHR0cDovL3d3dy5uZXd0b25zb2Z0LmNvbS9jb250ZW50L2ltYWdlcy9udWdldGljb24ucG5nAPzslu7lVgD87Jbu5Vb87Jbu5VYMMTAuMC4yqraOOYQKOjpuZXQ0NXw6Om5ldDQwfDo6bmV0MzV8OjpuZXQyMHw6OnBvcnRhYmxlNDUtbmV0NDUrd2luOCt3cDgrd3BhODF8Ojpwb3J0YWJsZTQwLW5ldDQwK3NsNSt3aW44K3dwOCt3cGE4MXxNaWNyb3NvZnQuQ1NoYXJwOls0LjMuMCwgKTpuZXRzdGFuZGFyZDEuM3xORVRTdGFuZGFyZC5MaWJyYXJ5OlsxLjYuMSwgKTpuZXRzdGFuZGFyZDEuM3xTeXN0ZW0uQ29tcG9uZW50TW9kZWwuVHlwZUNvbnZlcnRlcjpbNC4zLjAsICk6bmV0c3RhbmRhcmQxLjN8U3lzdGVtLlJ1bnRpbWUuU2VyaWFsaXphdGlvbi5Gb3JtYXR0ZXJzOls0LjMuMCwgKTpuZXRzdGFuZGFyZDEuM3xTeXN0ZW0uUnVudGltZS5TZXJpYWxpemF0aW9uLlByaW1pdGl2ZXM6WzQuMy4wLCApOm5ldHN0YW5kYXJkMS4zfFN5c3RlbS5YbWwuWG1sRG9jdW1lbnQ6WzQuMy4wLCApOm5ldHN0YW5kYXJkMS4zfE1pY3Jvc29mdC5DU2hhcnA6WzQuMy4wLCApOm5ldHN0YW5kYXJkMS4wfE5FVFN0YW5kYXJkLkxpYnJhcnk6WzEuNi4xLCApOm5ldHN0YW5kYXJkMS4wfFN5c3RlbS5Db21wb25lbnRNb2RlbC5UeXBlQ29udmVydGVyOls0LjMuMCwgKTpuZXRzdGFuZGFyZDEuMHxTeXN0ZW0uUnVudGltZS5TZXJpYWxpemF0aW9uLlByaW1pdGl2ZXM6WzQuMy4wLCApOm5ldHN0YW5kYXJkMS4wCGpzb26y46MBdmh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9hcGkvdjIvcGFja2FnZS9OZXd0b25zb2Z0Lkpzb24vMTAuMC4yLmpzb24ubmV0bmV3dG9uc29mdC5qc29usAFpd0VsU1UySVhtd0d2eXRKc2V6eURNTDJaV0RrRzJKelRZemxVL0JObG16TWRsbVJ2Ym53SVRzR0dZNzRnd1ZFcERsaTFVZE9Ma01UNy8zanhXdlh6QT09gAFodHRwczovL3Jhdy5naXRodWIuY29tL0phbWVzTksvTmV3dG9uc29mdC5Kc29uL21hc3Rlci9MSUNFTlNFLm1kIkphbWVzIE5ld3Rvbi1LaW5nAQEEBwxzaGE1MTIAAAgxBwcIc2hhMQAACLMHgAI4YjAxMjU0OTRkODg1ZTZjMDZiZjJiNDliMWVjZjIwY2MyZjY2NTYwZTQxYjYyNzM0ZDhjZTU1M2YwNGQ5NjZjY2M3NjU5OTFiZGI5ZjAyMTNiMDYxOThlZjg4MzA1NDRhNDM5NjJkNTQ3NGUyZTQzMTNlZmZkZTNjNTZiZDdjY1A1MDZkMTkzODcwY2Q3YzBiMTE2YzFlYWM2NDAwZTBiODViMDcwOThhBAcIZXRhZwAACPwHBxpsYXN0X21vZGlmaWVkAAAJDgYiMHg4RDQ3OTkyQzc1QjY1Q0XAqZLW5VYCBxpsYXN0X3ZlcmlmaWVkAAAJKQbasMrGjFcCByZoYXNoZXNfbm90X3ZlcmlmaWVkAAAJSgAAMgAsTmV3dG9uc29mdC5Kc29uLzEwLjAuMpK/+wEeYXBwbGljYXRpb24vemlwsgFkZWZhdWx0QDc2OTkzNTkxLTgxNkYxNkNBLThGNzc0REVCLTI2MUYzQzQyLTZBRDE4RDZFOjE0YjNkZmExLTc3YzgtNDI5My05NWQ5LWIxN2Y3NWIzZjIzZIisysaMV4a1ysaMV4a1ysaMVw== 2017-06-01 11:07:21,729-0500 WARN  [qtp1583363509-140] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: GET /repository/nuget.org-proxy/Newtonsoft.Json/10.0.2 com.orientechnologies.orient.core.exception.ODatabaseException: The database instance is not set in the current thread. Be sure to set it with: ODatabaseRecordThreadLocal.INSTANCE.set(db); at com.orientechnologies.orient.core.db.ODatabaseRecordThreadLocal.get(ODatabaseRecordThreadLocal.java:51) [na:na] at com.orientechnologies.orient.core.record.ORecordAbstract.getDatabase(ORecordAbstract.java:237) [na:na] at com.orientechnologies.orient.core.record.impl.ODocument.getGlobalPropertyById(ODocument.java:2194) [na:na] at com.orientechnologies.orient.core.record.impl.ODocumentInternal.getGlobalPropertyById(ODocumentInternal.java:64) [na:na] at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.getGlobalProperty(ORecordSerializerBinaryV0.java:513) [na:na] at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.deserialize(ORecordSerializerBinaryV0.java:259) [na:na] at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinary.fromStream(ORecordSerializerBinary.java:80) [na:na] at com.orientechnologies.orient.core.record.impl.ODocument.deserializeFields(ODocument.java:1854) [na:na] at com.orientechnologies.orient.core.record.impl.ODocument.checkForFields(ODocument.java:2623) [na:na] at com.orientechnologies.orient.core.record.impl.ODocument.setDirty(ODocument.java:1421) [na:na] at com.orientechnologies.orient.core.record.impl.ODocument.setDirty(ODocument.java:63) [na:na] at com.orientechnologies.orient.core.db.record.OTrackedMap.setDirty(OTrackedMap.java:167) [na:na] at com.orientechnologies.orient.core.db.record.OTrackedMap.fireCollectionChangedEvent(OTrackedMap.java:226) [na:na] at com.orientechnologies.orient.core.db.record.OTrackedMap.put(OTrackedMap.java:82) [na:na] at org.sonatype.nexus.common.collect.NestedAttributesMap.child(NestedAttributesMap.java:117) [na:na] at com.sonatype.nexus.clm.internal.QuarantineStatusUtil.getAttributes(QuarantineStatusUtil.java:99) [na:na] at com.sonatype.nexus.clm.internal.QuarantineStatusUtil.getQuarantineStatus(QuarantineStatusUtil.java:85) [na:na] at com.sonatype.nexus.clm.internal.QuarantineContributedHandler.handle(QuarantineContributedHandler.java:68) [na:na]{noformat}   When we confirm the fix, we need to make sure that we haven't left a whole bunch of artifacts in pending status.",3 +"NEXUS-13329","06/06/2017 17:57:50","Maven artifact whose case does not match the version folder they reside in are not migrated","If you have a Maven artifacts in Nexus 2 whose artifact ID does not match the ID of the artifact folder they reside in these artifacts will not be migrated to Nexus 3 on upgrade. See attached screenshots for an example of this. This is a critical bug, it is unfortunately not at all uncommon for users who are running Nexus 2.x on Windows to have artifacts whose case changes over time.  These will be lost on upgrade. I've attached the work directory from Nexus 2.x to make this easy to reproduce.    ",3 +"NEXUS-13333","06/07/2017 07:14:42","400 bad request when deploying a release versioned Maven artifact with an artifactId containing the word ""SNAPSHOT""","My artifact name is ""A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00"" (I know this is ugly but it is my company's naming convention) When I try to release my artifact I get the following error. What I am uploading is a release (version 0.1) so it should not be refused. If I just change the name of my artifact removing SNAPSHOT everything works fine so I guess instead of just checking the version number, Nexus is wrongly checking if the String ""SNAPSHOT"" is present anywhere in the artifact description. Here is the exception: {code:java} [INFO] — maven-deploy-plugin:2.7:deploy (default-deploy) @ A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00 — [INFO] Using alternate deployment repository edi-releases::default::https://localhost/nexus/content/repositories/releases/ [INFO] Uploading: https://localhost/nexus/content/repositories/releases/org/talend/job/talend_edw/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/0.1/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00-0.1.jar [INFO] Uploaded: https://localhost/nexus/content/repositories/releases/org/talend/job/talend_edw/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/0.1/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00-0.1.jar (62 KB at 217.9 KB/sec) [INFO] Uploading: https://localhost/nexus/content/repositories/releases/org/talend/job/talend_edw/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/0.1/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00-0.1.pom [INFO] Uploaded: https://localhost/nexus/content/repositories/releases/org/talend/job/talend_edw/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/0.1/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00-0.1.pom (14 KB at 107.8 KB/sec) [INFO] Downloading: https://localhost/nexus/content/repositories/releases/org/talend/job/talend_edw/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/maven-metadata.xml [INFO] Uploading: https://localhost/nexus/content/repositories/releases/org/talend/job/talend_edw/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/maven-metadata.xml [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] TALEND_EDW Codes Master ........................... SUCCESS [ 1.922 s] [INFO] TALEND_EDW Routines ............................... SUCCESS [ 7.941 s] [INFO] TALEND_EDW DW_CONTRACT_VRBL (Job Designs) ......... SUCCESS [ 3.606 s] [INFO] TALEND_EDW DW_PAY_INSTR (Job Designs) ............. SUCCESS [ 2.765 s] [INFO] TALEND_EDW DW_CONTRACT (Job Designs) .............. SUCCESS [ 3.658 s] [INFO] TALEND_EDW A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00 (Job Designs) FAILURE [ 3.123 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 23.164 s [INFO] Finished at: 2017-06-07T15:43:35+10:00 [INFO] Final Memory: 28M/401M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00: Failed to deploy metadata: Could not transfer metadata org.talend.job.talend_edw:A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/maven-metadata.xml from/to edi-releases (https://localhost/nexus/content/repositories/releases/): Failed to transfer https://localhost/nexus/content/repositories/releases/org/talend/job/talend_edw/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/maven-metadata.xml. Error code 400, Bad Request -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00: Failed to deploy metadata: Could not transfer metadata org.talend.job.talend_edw:A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/maven-metadata.xml from/to edi-releases (https://localhost/nexus/content/repositories/releases/): Failed to transfer https://localhost/nexus/content/repositories/releases/org/talend/job/talend_edw/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/maven-metadata.xml. Error code 400, Bad Request at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213) at org.apache.maven.cli.MavenCli.main(MavenCli.java:157) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to deploy metadata: Could not transfer metadata org.talend.job.talend_edw:A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/maven-metadata.xml from/to edi-releases (https://localhost/nexus/content/repositories/releases/): Failed to transfer https://localhost/nexus/content/repositories/releases/org/talend/job/talend_edw/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/maven-metadata.xml. Error code 400, Bad Request at org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:193) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) ... 19 more Caused by: org.apache.maven.artifact.deployer.ArtifactDeploymentException: Failed to deploy metadata: Could not transfer metadata org.talend.job.talend_edw:A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/maven-metadata.xml from/to edi-releases (https://localhost/nexus/content/repositories/releases/): Failed to transfer https://localhost/nexus/content/repositories/releases/org/talend/job/talend_edw/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/maven-metadata.xml. Error code 400, Bad Request at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:143) at org.apache.maven.plugin.deploy.AbstractDeployMojo.deploy(AbstractDeployMojo.java:167) at org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:157) ... 21 more Caused by: org.eclipse.aether.deployment.DeploymentException: Failed to deploy metadata: Could not transfer metadata org.talend.job.talend_edw:A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/maven-metadata.xml from/to edi-releases (https://localhost/nexus/content/repositories/releases/): Failed to transfer https://localhost/nexus/content/repositories/releases/org/talend/job/talend_edw/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/maven-metadata.xml. Error code 400, Bad Request at org.eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.java:368) at org.eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.java:268) at org.eclipse.aether.internal.impl.DefaultRepositorySystem.deploy(DefaultRepositorySystem.java:413) at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:139) ... 23 more Caused by: org.eclipse.aether.transfer.MetadataTransferException: Could not transfer metadata org.talend.job.talend_edw:A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/maven-metadata.xml from/to edi-releases (https://localhost/nexus/content/repositories/releases/): Failed to transfer https://localhost/nexus/content/repositories/releases/org/talend/job/talend_edw/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/maven-metadata.xml. Error code 400, Bad Request at io.tesla.aether.connector.AetherRepositoryConnector$2.wrap(AetherRepositoryConnector.java:871) at io.tesla.aether.connector.AetherRepositoryConnector$2.wrap(AetherRepositoryConnector.java:865) at io.tesla.aether.connector.AetherRepositoryConnector$PutTask.flush(AetherRepositoryConnector.java:764) at io.tesla.aether.connector.AetherRepositoryConnector.put(AetherRepositoryConnector.java:343) at org.eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.java:362) ... 26 more Caused by: io.tesla.aether.connector.TransferException: Failed to transfer https://localhost/nexus/content/repositories/releases/org/talend/job/talend_edw/A_INITIAL_SNAPSHOT_DWSCHEMA_TABLES_00/maven-metadata.xml. Error code 400, Bad Request at io.tesla.aether.connector.AetherRepositoryConnector.handleResponseCode(AetherRepositoryConnector.java:371) at io.tesla.aether.connector.AetherRepositoryConnector.access$900(AetherRepositoryConnector.java:95) at io.tesla.aether.connector.AetherRepositoryConnector$PutTask.run(AetherRepositoryConnector.java:734) at io.tesla.aether.connector.AetherRepositoryConnector.put(AetherRepositoryConnector.java:337) ... 27 more{code}",2 +"NEXUS-13352","06/08/2017 16:04:02","add per task log files for easier task auditing","*Background* There are a number of long-running tasks whose specifics we need to audit (self-repair tasks being a good example, but also purging releases, snapshots, etc.), but we don't want to a) fill the nexus log with a million line items, or b) lose information at the whim of a customer's log levels. Support frequently gets requests from users asking to understand what happened to specific artifacts. *Acceptance* * Create a service that can accept all these detailed actions, in large volumes * One log file per run of a given scheduled task * Output files should be dated, clearly indicate which task was run * Emit the log file location into the log at the start and end of the scheduled task * Include task logs in the support tools zip ",3 +"NEXUS-13355","06/08/2017 16:42:05","Regenerate CMA from Blobs - Docker","*Acceptance* Augment the self-repair/consistency task so that it will re-create component metadata entries for this format. * Every operation should be logged to the new long-running task log. ** Creating a new component db record ** Conflicts (e.g. there's an unreferenced blob, but there's already an asset record that exist at the implied coordinate, but it refers to a different blob) * Conflicts never overwrite existing Orient metadata; they're only logged. * All operations should have a 'do no work' mode as per ---NEXUS-12390--- * -Restore should work if only components are dropped- (while true we have a ticket for this elsewhere) * Restore should work if only assets are dropped * Restore should work if both component and asset are dropped",8 +"NEXUS-13363","06/08/2017 18:42:55","Conditional GET requests for Docker image layers always download the layer when proxying another Nexus","Tested this with 3.2.1, although the problem has also been reported against 3.3.1 as well. # (Optional) Keep things simple and use --insecure-registry and plain http ports for the docker repos In this example I will use plain http ports. # (Optional) use https ports and have your docker daemon trust the Nexus certificate. # Configure Nexus A with a docker hosted repo. ( 192.168.2.97:14440 ) {noformat} { ""@type"": ""d"", ""@rid"": ""#76:1"", ""@version"": 2, ""@class"": ""repository"", ""recipe_name"": ""docker-hosted"", ""repository_name"": ""docker-hosted"", ""online"": true, ""attributes"": { ""docker"": { ""httpPort"": 14440, ""v1Enabled"": true }, ""storage"": { ""strictContentTypeValidation"": true, ""writePolicy"": ""ALLOW"", ""blobStoreName"": ""default"" } } }, {noformat} # Configure Nexus B with a docker proxy repo which proxies Nexus A hosted repo. ( 192.168.2.97:13350 ) {noformat} { ""@type"": ""d"", ""@rid"": ""#73:2"", ""@version"": 4, ""@class"": ""repository"", ""recipe_name"": ""docker-proxy"", ""repository_name"": ""docker-proxy"", ""online"": true, ""attributes"": { ""proxy"": { ""contentMaxAge"": 0, ""remoteUrl"": ""http://192.168.2.97:14440/"", ""metadataMaxAge"": 0 }, ""negativeCache"": { ""timeToLive"": 0, ""enabled"": false }, ""dockerProxy"": { ""indexType"": ""REGISTRY"" }, ""storage"": { ""strictContentTypeValidation"": true, ""blobStoreName"": ""default"" }, ""httpclient"": { ""blocked"": false, ""autoBlock"": false }, ""docker"": { ""httpPort"": 13350, ""v1Enabled"": true } } }, {noformat} # Configure the following loggers in Nexus B so that you can monitor the outbound HTTP headers and requests: ## org.apache.http at DEBUG # Docker Login to both proxy and hosted repos so that docker v2 API works and Nexus does not fall back automatically to using /v1 API ( which would otherwise void this test). ## docker login 192.168.2.97:14440 ## docker login 192.168.2.97:13350 # Find and remove all images with the same name to remove all the layers attached to those images - in this example I will re-use the sonatype/nexus 3 image: ## docker images ( list ALL images based on sonatype/nexus3 ) ## docker rmi - there may be more than one image, delete them all to make sure subsequent pulls actually download layers not already cached # tag and push an image to Nexus A docker hosted. ## docker pull sonatype/nexus3 ( download from official docker registry ) ## docker tag sonatype/nexus3 192.168.2.97:14440/sonatype/nexus3 ( tag the nexus 3 image against the hosted repo ) ## docker push 192.168.2.97:14440/sonatype/nexus3 ( push the image and layers to hosted repo ) # remove the local image you just tagged from the docker client cache. This should also remove dependent layers forcing them to re-download on the next pull. ## docker rmi 192.168.2.97:14440/sonatype/nexus3 # request the image through the proxy repository which will in turn download from the hosted repo ## docker pull 192.168.2.97:13350/sonatype/nexus3 # Examine the nexus.log of Nexus B. There you will find outbound requests to the hosted repo, downloading the layers as expected. # Delete the cached image and layers from the proxy now and then pull again ## docker rmi 192.168.2.97:13350/sonatype/nexus3 ## docker pull 192.168.2.97:13350/sonatype/nexus3 # Examine the nexus.log of Nexus B. There you will find identical outbound requests to the hosted repo again. The manifest request will return 304 indicating it is not changed. {color:#ff0000}*However all the conditional GET requests for the layers will return 200 and the full content of the image.*{color} h4. Problem The images are always re-downloaded from the remote Nexus, even if the hash/content was unchanged. The conditional GET does not work as expected - 304 status code and no content was expected. For comparison, proxying the official docker registry at [https://registry-1.docker.io|https://registry-1.docker.io/] from Nexus 3.2.1 does work correctly in that the official registry returns 304 for unchanged layers. h4. Workaround Set Component Max Age to {{-1}} as image layers never change hash identity anyways. This prevents already cached image layers from being requested from the remote.",3 +"NEXUS-13371","06/09/2017 14:47:55","BlobAttributes deletedReason is logged as reason: null instead of the actual reason","BlobAttributes deletedReason is persisted, but is not restored on load This leads to the following non-helpful messages: {code} 2017-06-09 14:06:31,204+0100 WARN [qtp169860459-374] admin org.sonatype.nexus.blobstore.file.internal.FileBlobStore - Attempt to access soft-deleted blob 5d13939f-3c83-4254-90ec-741c60d987db (/opt/nexus/sonatype-work/nexus3/blobs/default/content/vol-24/chap-34/5d13939f-3c83-4254-90ec-741c60d987db.properties), reason: null {code} Instead of: {code} 2017-06-09 14:11:43,891+0100 WARN [qtp680984661-293] admin org.sonatype.nexus.blobstore.file.internal.FileBlobStore - Attempt to access soft-deleted blob 7a313585-9c97-405b-9d02-f3507ccbea9e (/opt/nexus/sonatype-work/nexus3/blobs/default/content/vol-39/chap-09/7a313585-9c97-405b-9d02-f3507ccbea9e.properties), reason: Updating asset AttachedEntityId{asset->#55:8} {code} ",1 +"NEXUS-13378","06/10/2017 01:30:54","Limit multiple outbound upstream requests for the same proxied asset","NX3 currently allows multiple requests for the same proxied asset to go upstream, one of which will be the ""winner"" when the storage transaction is committed. This avoids any upfront locking, improving scalability - especially in a distributed setup. The downside is the potential for duplicated work, which will end up being thrown away for any ""losing"" threads. This story will attempt to limit the amount duplicated proxy work, while maintaining scalability.",5 +"NEXUS-13385","06/12/2017 17:35:06","java.util.ConcurrentModificationException possible with Docker UploadManager during POST to blobs/uploads","A POST request to a Docker repository at endpoint /v2/*/blobs/uploads/ may result in a ConcurrentModificationException and 500 HTTP status code response. request.log {code:java}  172.20.9.5 - user [12/Jun/2017:07:15:59 -0700] ""POST /repository/docker-internal/v2/twistlock/blobs/uploads/ HTTP/1.1"" 500 65 31 ""docker/17.06.0-ce-rc2 go/go1.8.3 git-commit/402dd4a kernel/4.9.30-moby os/linux arch/amd64 UpstreamClient(Docker-Client/17.06.0-ce-rc2 (darwin))"" {code} nexus.log: {noformat} 2017-06-12 07:15:59,523-0700 WARN [qtp659463480-1838] user org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: POST /v2/twistlock/blobs/uploads/ java.util.ConcurrentModificationException: null at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) [na:1.8.0_102] at java.util.stream.AbstractPipeline.copyInto(Unknown Source) [na:1.8.0_102] at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) [na:1.8.0_102] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) [na:1.8.0_102] at java.util.stream.AbstractPipeline.evaluate(Unknown Source) [na:1.8.0_102] at java.util.stream.ReferencePipeline.collect(Unknown Source) [na:1.8.0_102] at org.sonatype.nexus.repository.docker.internal.UploadManager.getUploadsByName(UploadManager.java:120) [na:na] at org.sonatype.nexus.repository.docker.internal.UploadManager.startUpload(UploadManager.java:63) [na:na] at org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl.beginBlobUpload(DockerHostedFacetImpl.java:549) [na:na] at org.sonatype.nexus.repository.docker.internal.DockerHostedFacet$beginBlobUpload$1.call(Unknown Source) [na:na] at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure3.doCall(V2Handlers.groovy:100) [na:na] at sun.reflect.GeneratedMethodAccessor453.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_102] at java.lang.reflect.Method.invoke(Unknown Source) [na:1.8.0_102] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) [na:na] at groovy.lang.Closure.call(Closure.java:414) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) [groovy-all:2.4.7] at com.sun.proxy.$Proxy132.handle(Unknown Source) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [!/:na] at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure18.doCall(V2Handlers.groovy:283) [na:na] at sun.reflect.GeneratedMethodAccessor445.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_102] at java.lang.reflect.Method.invoke(Unknown Source) [na:1.8.0_102] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) [na:na] at groovy.lang.Closure.call(Closure.java:414) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) [groovy-all:2.4.7] at com.sun.proxy.$Proxy132.handle(Unknown Source) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [!/:na] at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure1.doCall(V2Handlers.groovy:77) [com.sonatype.nexus.plugins.nexus-repository-docker:3.2.1.01] at sun.reflect.GeneratedMethodAccessor444.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [na:1.8.0_102] at java.lang.reflect.Method.invoke(Unknown Source) [na:1.8.0_102] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) [na:na] at groovy.lang.Closure.call(Closure.java:414) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) [groovy-all:2.4.7] at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) [groovy-all:2.4.7] at com.sun.proxy.$Proxy132.handle(Unknown Source) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.view.Context.start(Context.java:114) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:63) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.2.1.01] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:197) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.2.1.01] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:159) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.2.1.01] at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:116) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.2.1.01] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) [com.google.inject:4.1.0] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) [com.google.inject:4.1.0] at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.1.0] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.2.1.01] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.3.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.3.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.3.2] at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.2.1.01] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.3.2] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.1.0] {noformat} h4. Diagnosis Failure to follow the fully advertised Collections.synchronizedList() contract, leading to potential for ConcurrentModificationException. ",0.5 +"NEXUS-13391","06/13/2017 10:53:18","non-migration of admin credentials isn't documented","The Admin user credentials from NXRM 2 are not migrated to NXRM 3. Although this may not be a bug and is intentional, it should be mentioned in the following section of documentation.  [20.5.3. What Is Not Upgraded|http://books.sonatype.com/nexus-book/reference3/upgrading.html#not-upgraded]",1 +"NEXUS-13393","06/13/2017 14:00:43","Docker V2 API returns incorrect list of tags for a repository","I use {{GET /v2/_catalog}} Docker API call to get a list of repositories, then request a list of tags as {{GET /v2//tags/list}} and the response differs from Nexus WebUI, see below: {noformat} { ""name"": ""...-servicename-service"", ""tags"": [ ""0.1.0-SNAPSHOT-analysis-JIRA-1308-instance-kill-research"", ""0.1.0-SNAPSHOT-analysis-JIRA-1503-missing-result"", ""0.1.0-SNAPSHOT-devops-JIRA-1542-new-jenkins"", ""0.1.0-SNAPSHOT-devops-JIRA-2086-jenkins-slave"", ... ] } {noformat} There are *45+* tags returned from Docker API call, but Nexus WebUI knows only about *16*. I used Docker API to remove all these extra/obsolete layers/images by issuing {{DELETE /v2//manifests/}} calls before. Seems like Nexus is aware these objects are no longer valid, but Nexus Docker Registry API still announces them. I expect Registry API and Nexus WebUI show the same objects.",3 +"NEXUS-13422","06/16/2017 20:54:35","HEAD WARN when pushing docker images","I noticed if I push an image to docker hosted, I am getting back messages like this: {quote} 2017-06-16 15:01:34,297-0400 WARN [qtp31792032-299] admin org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: HEAD /v2/mongo/blobs/sha256:4a3c5460d81c6322019bdbe40d0921c4c97f425506306d8b6708b4a614665863: 404 - org.sonatype.nexus.repository.docker.internal.V2Exception$BlobNotFound: blob unknown to registry {quote} As far as I can tell everything is functioning correctly, so does not seem WARN worthy at least. This reminds me of NEXUS-10517 but is definitely pushing not pulling from group.",2 +"NEXUS-13426","06/18/2017 11:42:44","Infinite loop when using $filter (the $skip-Parameter is ignored)","Please see the comment from Sebastian Jancke.",3 +"NEXUS-13440","06/20/2017 16:24:03","RemoveSnapshotsTask has threading issues and incorrectly processes npm repositories","Nexus 3.3.1 was configured with two Snapshot removal tasks that started at the same time: See attached text file for play-by-play. h4. Problems - quartz-1-thread-11 task is only configured to process agfa-snapshots but logs it is also processing orbis-snapshots: 2017-06-17 03:00:00,141+0200 INFO [quartz-1-thread-11] *SYSTEM org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Removing snapshots on repository orbis-snapshots with configuration: org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsConfig(2, 7, true, 365) - the ending task thread is clearly processing **npm** assets when it should only be processing Maven repositories - one of tasks times out and fails performing a query - the other one takes an extremely long time with very little progress logging.",3 +"NEXUS-13462","06/21/2017 15:57:46","Extend proxy cooperation across HA nodes","NEXUS-13378 introduced proxy cooperation between threads in the same node, to avoid the same content being downloaded multiple times. This story will look at supporting proxy cooperation across HA nodes, potentially using Hazelcast to perform the cooperation. Since hazelcast is only available in HA this will likely involve different implementations for the local and HA case, sharing the same common interface.",5 +"NEXUS-13465","06/21/2017 17:19:43","Accesslog database cleanup fails with BufferUnderflowException","We should add some limits to this deletion to ensure that it doesn't suffer from what are presumably issues deleting large amounts of data at once.  {noformat} 2017-06-20 20:43:26,663+0000 WARN [AccessLogDeleter] *SYSTEM com.sonatype.nexus.licensing.internal.access.AccessLogRemover - Failed to remove records com.orientechnologies.orient.core.exception.ODatabaseException: Error on retrieving record #19:1208 (cluster: entry_2) DB name=""accesslog"" at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeReadRecord(ODatabaseDocumentTx.java:2033) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:656) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:103) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearchRecord(OCommandExecutorSQLSelect.java:588) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.serialIterator(OCommandExecutorSQLSelect.java:1619) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchFromTarget(OCommandExecutorSQLSelect.java:1566) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchValuesFromIndexCursor(OCommandExecutorSQLSelect.java:2455) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchForIndexes(OCommandExecutorSQLSelect.java:2270) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchInClasses(OCommandExecutorSQLSelect.java:1001) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.assignTarget(OCommandExecutorSQLResultsetAbstract.java:209) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.assignTarget(OCommandExecutorSQLSelect.java:530) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:512) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:488) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:74) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:2592) [na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:2538) [na:na] at com.orientechnologies.orient.core.sql.query.OSQLQuery.run(OSQLQuery.java:78) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.sql.query.OSQLAsynchQuery.run(OSQLAsynchQuery.java:74) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.query.OQueryAbstract.execute(OQueryAbstract.java:33) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelete.execute(OCommandExecutorSQLDelete.java:200) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:74) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:2592) [na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:2538) [na:na] at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69) [com.orientechnologies.orientdb-core:2.2.16] at com.sonatype.nexus.licensing.internal.access.AccessLogEntryEntityAdapter.deleteBefore(AccessLogEntryEntityAdapter.java:205) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.2.1.01] at com.sonatype.nexus.licensing.internal.access.OrientAccessLogStore.lambda$4(OrientAccessLogStore.java:107) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.2.1.01] at org.sonatype.nexus.orient.transaction.OrientOperations.lambda$1(OrientOperations.java:56) [org.sonatype.nexus.orient:3.2.1.01] at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) [org.sonatype.nexus.transaction:3.2.1.01] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) [org.sonatype.nexus.transaction:3.2.1.01] at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:200) [org.sonatype.nexus.transaction:3.2.1.01] at org.sonatype.nexus.transaction.Operations.call(Operations.java:146) [org.sonatype.nexus.transaction:3.2.1.01] at org.sonatype.nexus.orient.transaction.OrientOperations.call(OrientOperations.java:56) [org.sonatype.nexus.orient:3.2.1.01] at com.sonatype.nexus.licensing.internal.access.OrientAccessLogStore.removeBefore(OrientAccessLogStore.java:107) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.2.1.01] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [org.sonatype.nexus.common:3.2.1.01] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) [org.sonatype.nexus.common:3.2.1.01] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [org.sonatype.nexus.common:3.2.1.01] at com.sonatype.nexus.licensing.internal.access.AccessLogRemover.process(AccessLogRemover.java:67) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.2.1.01] at com.sonatype.nexus.licensing.internal.access.AccessLogRemover.doRun(AccessLogRemover.java:55) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.2.1.01] at com.sonatype.nexus.licensing.internal.access.AccessLogThreadSupport.run(AccessLogThreadSupport.java:43) [com.sonatype.nexus.plugins.nexus-licensing-plugin:3.2.1.01] Caused by: java.nio.BufferUnderflowException: null at java.nio.DirectByteBuffer.get(DirectByteBuffer.java:271) [na:1.8.0_121] at java.nio.ByteBuffer.get(ByteBuffer.java:715) [na:1.8.0_121] at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurablePage.getBinaryValue(ODurablePage.java:138) [na:na] at com.orientechnologies.orient.core.storage.impl.local.paginated.OClusterPage.getRecordBinaryValue(OClusterPage.java:376) [na:na] at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readFullEntry(OPaginatedCluster.java:1800) [na:na] at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:666) [na:na] at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:628) [na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doReadRecord(OAbstractPaginatedStorage.java:3249) [na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:2879) [na:na] at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:1090) [na:na] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx$SimpleRecordReader.readRecord(ODatabaseDocumentTx.java:3324) [com.orientechnologies.orientdb-core:2.2.16] at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeReadRecord(ODatabaseDocumentTx.java:1994) [com.orientechnologies.orientdb-core:2.2.16] ... 38 common frames omitted{noformat}",2 +"NEXUS-13483","06/26/2017 17:45:25","Re-introduce LDAP user caching","{{EnterpriseLdapManager}} in NX2 used to provide user-level caching to avoid repeated requests for the same information from going upstream to the LDAP server. This was necessary to avoid a flood of upstream LDAP requests from token-based realms such as NuGet or Usertoken. When the LDAP codebase was ported to NX3 this caching appears to have been removed from {{EnterpriseLdapManager}}. This story will look at re-introducing user-level caching to the NX3 LDAP codebase, so all token-based realms (and other users of LDAP-based information) can take advantage of this cache and don't have to implement their own caching. See https://issues.sonatype.org/browse/NEXUS-13467?focusedCommentId=415462&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-415462 for more background.",5 +"NEXUS-13485","06/26/2017 19:27:43","warn in UI when ulimit < 65536 on Linux or OSX","As per -NEXUS-12041-, Nexus 3.x process user should have a minimum max ulimit of 65536 file handles. Having less could potentially lead to a critical failure. h4.   *Acceptance* * When NXRM detects that it has insufficient file handles ** a prominent user interface warning is shown to administrators (indicating NXRM failed a health check, pls check the logs) ** an ERROR appears in the log",1 +"NEXUS-13486","06/26/2017 20:24:22","prevent restoring database backups with mismatched versions","*Background* As discovered in the field, some users have occasionally restored some databases, but not all of them. In other cases, restores were carried out using a set of export files taken from different exports. This can lead to unusable NXRM instances with an incoherent state. *Acceptance* * Modify the filenames of database exports so it's clear whether they were generated * Disallow restores from incomplete sets, or sets with mismatched export times",5 +"NEXUS-13554","06/28/2017 21:24:17","A NuGet package that is in Nexus 2.x storage but not in its database causes a NullPointerException on migration to Nexus 3","If a NuGet package is in repository storage but not in the Nexus 2.x database you will get an NPE in Nexus 3 when it migrates it. To reproduce this, just place a NuGet package into directly into storage in the right spot in Nexus 2, and run an upgrade to Nexus 3.   {noformat} 2017-06-28 14:59:47,246-0500 ERROR [plan-executor-8-thread-2] admin com.sonatype.nexus.migration.repository.ProcessChangesStep - Failed processing of CREATE nuget:/Microsoft.AspNet.WebApi.WebHost/5.2.3/Microsoft.AspNet.WebApi.WebHost-5.2.3.nupkg, will ignore and move on. null java.lang.NullPointerException: null at com.sonatype.nexus.migration.repository.migrators.NugetHostedRepositoryMigrator.nugetCoords(NugetHostedRepositoryMigrator.java:268) [na:na] at com.sonatype.nexus.migration.repository.migrators.NugetHostedRepositoryMigrator.recordMetadata(NugetHostedRepositoryMigrator.java:74) [na:na] at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.processChange(RepositoryMigratorSupport.java:134) [na:na] at com.sonatype.nexus.migration.repository.RepositoryMigrator$processChange.call(Unknown Source) [na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [na:na] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [na:na] at com.sonatype.nexus.migration.repository.ProcessChangesStep$_submit_closure2.doCall(ProcessChangesStep.groovy:317) [na:na] at com.sonatype.nexus.migration.repository.ProcessChangesStep$_submit_closure2.doCall(ProcessChangesStep.groovy) [na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.8.0_102] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [na:1.8.0_102] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_102] at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_102] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [na:na] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [na:na] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [na:na] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) [na:na] at groovy.lang.Closure.call(Closure.java:414) [na:na] at groovy.lang.Closure.call(Closure.java:408) [na:na] at groovy.lang.Closure.run(Closure.java:495) [na:na] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_102] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_102] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_102] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_102] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_102{noformat} *This may also affect npm*.",2 +"NEXUS-13566","06/30/2017 18:37:13","OOM may lead to blobstore/database inconsistencies","We had a user here who had thousands of blobs that were referenced in their database, but are not in blob storage. The cause seems to be that they ran out of heap space, and this caused CPU starvation of threads writing to the blob store. These threads reached their timeout, and the blobs were not written.  An example of this is below. {noformat} 2017-06-27 20:17:41,269-0500 ERROR [OrientDB Write Cache Flush Task (accesslog)] *SYSTEM java.lang.Throwable - java.lang.OutOfMemoryError: Java heap space 2017-06-27 20:17:41,270-0500 WARN [qtp1144406047-17181] *SYSTEM org.eclipse.jetty.util.thread.QueuedThreadPool - Unexpected thread death: org.eclipse.jetty.util.thread.QueuedThreadPool$3@4e132759 in qtp1144406047{STARTED,8<=47<=200,i=5,q=1} 2017-06-27 20:17:41,270-0500 WARN [qtp1144406047-17186] *SYSTEM org.eclipse.jetty.util.thread.QueuedThreadPool - Unexpected thread death: org.eclipse.jetty.util.thread.QueuedThreadPool$3@4e132759 in qtp1144406047{STARTED,8<=47<=200,i=5,q=1} 2017-06-27 20:17:41,270-0500 ERROR [nexus_QuartzSchedulerThread] *SYSTEM java.lang.Throwable - java.lang.OutOfMemoryError: Java heap space 2017-06-27 20:17:41,271-0500 ERROR [WAL Closer Task (audit)] *SYSTEM java.lang.Throwable - java.lang.OutOfMemoryError: Java heap space 2017-06-27 20:17:41,285-0500 ERROR [nexus-httpclient-eviction-thread] *SYSTEM java.lang.Throwable - java.lang.OutOfMemoryError: Java heap space 2017-06-27 20:26:58,929-0500 WARN [qtp1144406047-17177] deployment org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Service failure org.sonatype.nexus.blobstore.api.BlobStoreException: java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 31711/30000 ms at org.sonatype.nexus.blobstore.file.internal.FileBlobStore.create(FileBlobStore.java:290) [na:na] at org.sonatype.nexus.blobstore.file.internal.FileBlobStore.create(FileBlobStore.java:225) [na:na] at org.sonatype.nexus.repository.storage.StorageFacetImpl.createTempBlob(StorageFacetImpl.java:220) [na:na] at org.sonatype.nexus.repository.storage.StorageFacetImpl.createTempBlob(StorageFacetImpl.java:232) [na:na] at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.put(MavenFacetImpl.java:199) [na:na] at org.sonatype.nexus.repository.maven.internal.hosted.HostedHandler.doPut(HostedHandler.java:87) [na:na] at org.sonatype.nexus.repository.maven.internal.hosted.HostedHandler.handle(HostedHandler.java:61) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.maven.internal.VersionPolicyHandler.handle(VersionPolicyHandler.java:50) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na] at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [na:na] at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na]{noformat}",5 +"NEXUS-13586","07/05/2017 17:11:56","non-standard date format in NuGet ODATA feed causes IllegalArgumentException Invalid format","After an export/import operation is performed to repair a Nexus Repository Manager 3 database, (c.f. NEXUS-12064), NXRM can generate NuGet feeds with a non-standard date format, causing client exceptions and 500 responses from Nexus while retrieving those packages.   Date format before: {code:java} 2017-04-02T13:37:50.910Z {code} Date format now (triggering error): {code:java} 1480511591411{code} Example Log message: {noformat} 2018-07-05 10:43:35,395-0400 WARN [qtp876488736-178763] nexusadmin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: GET /repository/nuget-group/Enterprise.Encryption/4.5.8423.7 java.lang.IllegalArgumentException: Invalid format: ""1489000369333"" is malformed at ""9333"" at org.joda.time.format.DateTimeParserBucket.doParseMillis(DateTimeParserBucket.java:187) at org.joda.time.format.DateTimeFormatter.parseMillis(DateTimeFormatter.java:826) at com.sonatype.nexus.repository.nuget.odata.ODataUtils.datetime(ODataUtils.java:89) at com.sonatype.nexus.repository.nuget.odata.ODataUtils.toDate(ODataUtils.java:93) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.setDerivedAttributes(NugetLocalGalleryFacetSupport.java:726) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.updateAssetMetadata(NugetLocalGalleryFacetSupport.java:501) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.putMetadata(NugetLocalGalleryFacetSupport.java:306) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) at com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyFacet.lambda$0(NugetProxyFacet.java:70) at com.sonatype.nexus.repository.nuget.odata.FeedSplicer.ended(FeedSplicer.java:109) at com.sonatype.nexus.repository.nuget.odata.XmlSplicer.consume(XmlSplicer.java:81) at com.sonatype.nexus.repository.nuget.odata.FeedSplicer.consumePage(FeedSplicer.java:58) at com.sonatype.nexus.repository.nuget.internal.NugetFeedFetcher.parseFeed(NugetFeedFetcher.java:103) at com.sonatype.nexus.repository.nuget.internal.NugetFeedFetcher.cachePackageFeed(NugetFeedFetcher.java:86) at com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyFacet.fetch(NugetProxyFacet.java:66) {noformat} h4. Cause We believe this is caused by an export / import of the database. The date-times in question are stored in a part of the database that is schema-less and therefore loses the information that a timestamp was actually a date object. h4. Mitigation The linked ticket also suggests that this only affects older versions of the client and is fixed in Visual Studio 2015 and later (see https://issues.sonatype.org/browse/NEXUS-12064?focusedCommentId=412345&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-412345). If you are using an older version of Visual Studio and are affected by this bug then we suggest upgrading NXRM to the fix version listed in this ticket or upgrading to 3.12.1 and applying the patch attached to this ticket for that specific version. ",2 +"NEXUS-13591","07/05/2017 18:29:56","Ingest product license file on server startup via a system property","*Acceptance* * We want a clean system with no blob stores or repositories, starting up a Nexus Pro with clustered=true from a fresh install * The ability for NXRM to ingest a license file on startup (e.g. by specifying where the license file is) * Use the {{nexus.licenseFile}} nexus property to point to the license file * Fails startup if {{nexus.licenseFile}} is set but that license file is invalid",3 +"NEXUS-13626","07/10/2017 11:50:38","Privilege name does not fit in list of Privileges box","When assigning privileges to roles the list containing ""Available"" and ""Given"" does not have room horizontally for a lot of the privileges especially when the scrollbar is visible. It makes it ever so hard to get an overview of what privileges are given. Could you please either increase the width or make them resizeable?",1 +"NEXUS-13639","07/11/2017 23:13:55","User tokens not migrated if LDAP user ID case does not match login case","User token lookups in Nexus 3 from user ID to token are done using a case sensitive match.  This causes a problem after upgrading from Nexus 2.x to 3.x because Nexus 2.x uses the case a user logs in with when creating a token, and Nexus 3 uses the case of the ID stored in the LDAP server. Reproduce steps: # Create an upper case LDAP user ID in an LDAP system. # Map this user into roles in Nexus 2.x that allow access to user tokens # Enable user token access in Nexus 2.x # Log in as the LDAP user using a lower case login ID, and access the user token # Upgrade to Nexus 3.4.0 # Log in as the LDAP user using a lower case login ID, and access the user token   You will see that the token in Nexus 3 does not match the one in Nexus 2. *Notes* * LDAP user IDs are not case sensitive. This should be preserved in NXRM 3's behavior. * This will likely require an upgrade step that cleans up duplicate user tokens that only differ by case. * This problem may also affect default realm user ids.",3 +"NEXUS-13766","07/14/2017 22:00:20","NuGet metadata can incorrectly display pre-release as blank","I noticed that if I downloaded https://www.nuget.org/packages/bootstrap/4.0.0-alpha6 into my NXRM3 that the is_prerelease field in the metadata shows as blank. However, on nuget.org it's clearly marked is a pre-release. I verified this as a non-regression from what I was testing so am filing seperately. While reproducable I noticed the same behavior with HtmlAgilityPack/1.5.2-beta2 in case you need a second source.",2 +"NEXUS-13777","07/19/2017 15:29:28","JVM optimizations may log exceptions without stack traces by default due to OmitStackTraceInFastThrow ","We have seen at least two instances where a java.lang.NullPointerException is thrown unintentionally due to programming error and yet no stack trace is logged to help us determine and fix the root cause of the bug. This seems to be due to a JVM optimization according to: http://www.oracle.com/technetwork/java/javase/relnotes-139183.html bq. The compiler in the server VM now provides correct stack backtraces for all ""cold"" built-in exceptions. For performance purposes, when such an exception is thrown a few times, the method may be recompiled. After recompilation, the compiler may choose a faster tactic using preallocated exceptions that do not provide a stack trace. To disable completely the use of preallocated exceptions, use this new flag: -XX:-OmitStackTraceInFastThrow h4. Expected - prevent critical exceptions to be logged without without a stack trace, by turning off the JVM optimization and setting {{-XX:-OmitStackTraceInFastThrow}} by default Additional Reference: https://stackoverflow.com/a/27214402/235000 h4. Workaround A user may wish to disable this JVM optimization themselves until it is made the default option. They can edit bin/nexus.vmoptions and add the following line and restart Nexus: {noformat} -XX:-OmitStackTraceInFastThrow {noformat}",1 +"NEXUS-13780","07/19/2017 18:01:07","Danger Uncaught TypeError Cannot read property 'load' of undefined when reloading UI after server disconnect","See attached video for reproduce case. Basically 1. Login as admin and load a restricted config page ( example security/realms ) 2. Stop nexus 3. Wait for UI to report server is disconnected 4. Start nexus 5. Retry UI loading with the dialog 6. Login again 7. See Danger message after login and also you apparently don't have access to the UI that admin should have access to. 8. refresh the browser page - realms are visible. This was verified using Chrome.",2 +"NEXUS-13861","07/26/2017 14:13:07","Leading/trailing whitespace not trimmed from role ID's","When creating a new role ID in Nexus 3 leading and trailing spaces are not trimmed.  So you can create roles that have whitespace preceding and trailing the role ID.   *To Reproduce* # Navigate to /#admin/security/roles # {color:#ff0000}!https://issues.sonatype.org/images/icons/emoticons/add.png|width=16,height=16!  {color}Create Role > Nexus Role # Add an ID with leading or trailing spaces *Expected* Field to show an validation message when a Role ID has leading or trailing spaces *Actual* Role is able to be saved without out any challenge or failure",2 +"NEXUS-13866","07/26/2017 18:21:53","IE11: Outreach wraps despite there being space","Noticed in IE11, that Outreach will wrap around despite there being space for both columns. I made the left navigation as small as possible and still doesn't not wrap. I don't have this issue in Chrome or FF.",1 +"NEXUS-13882","07/31/2017 16:28:23","If an old indexing context is found when creating a new repository it should be deleted","When a repository is deleted in Nexus the search index context is not always deleted properly. If you later try to recreate the repository the old search index context will be found, and this will result in an error. The only way to recover from this is to shut the server down. manually remove the old index context from disk. Then restart and rebuild the index for the affected repository. Expected: If an old (stale) indexing context is present on disk when a repository is being created we should delete it, and create a new one. {noformat} 2017-07-31 13:16:54,482+0100 INFO [qtp191745335-110930] fastds_admin org.sonatype.nexus.proxy.maven.routing.internal.ManagerImpl - Initializing non-existing prefix file of newly added ""releases"" [id=releases] 2017-07-31 13:16:54,544+0100 ERROR [qtp191745335-110930] fastds_admin org.sonatype.nexus.index.DefaultIndexerManager - Old/stale indexing context releases-ctx for repository releases. Operation cancaled. 2017-07-31 13:16:54,544+0100 INFO [qtp191745335-110930] fastds_admin org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry - Added repository ""releases"" [id=releases][contentClass=Maven2][mainFacet=org.sonatype.nexus.proxy.maven.MavenHostedRepository] 2017-07-31 13:16:54,549+0100 INFO [qtp191745335-110930] fastds_admin org.sonatype.nexus.configuration.application.DefaultNexusConfiguration - Applying Nexus Configuration made by fastds_admin... 2017-07-31 13:16:55,056+0100 INFO [pxpool-1-thread-19] fastds_admin org.sonatype.nexus.index.tasks.UpdateIndexTask - Scheduled task (UpdateIndexTask) started :: Updating repository index ""releases"" from path null and below. 2017-07-31 13:16:55,068+0100 INFO [pxpool-1-thread-19] fastds_admin org.sonatype.nexus.index.NexusScanningListener - Scanning of repositoryID=""releases"" started. 2017-07-31 13:16:55,105+0100 WARN [pxpool-1-thread-19] fastds_admin org.sonatype.nexus.index.tasks.UpdateIndexTask - Scheduled task (UpdateIndexTask) failed :: Updating repository index ""releases"" from path null and below. (started 2017-07-31T13:16:55+01:00, runtime 0:00:00.041) java.lang.RuntimeException: java.io.FileNotFoundException: _8.cfs at org.apache.lucene.index.TieredMergePolicy$SegmentByteSizeDescending.compare(TieredMergePolicy.java:253) ~[na:na] at org.apache.lucene.index.TieredMergePolicy$SegmentByteSizeDescending.compare(TieredMergePolicy.java:240) ~[na:na] at java.util.TimSort.countRunAndMakeAscending(TimSort.java:324) ~[na:1.7.0_25] at java.util.TimSort.sort(TimSort.java:189) ~[na:1.7.0_25] at java.util.TimSort.sort(TimSort.java:173) ~[na:1.7.0_25] at java.util.Arrays.sort(Arrays.java:659) ~[na:1.7.0_25] {noformat}",2 +"NEXUS-14039","08/01/2017 18:50:52","NPE in RubygemsContentFacetImpl while handling asset download count","While doing upgrade testing in NEXUS-13735 I saw this NPE while running a Ruby {{bundle install}} command. {noformat} 2017-08-01 10:27:53,678-0700 WARN [qtp1565762475-81] *UNKNOWN org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: GET /repository/rubygems-hosted/api/v1/dependencies java.lang.NullPointerException: null at org.sonatype.nexus.repository.rubygems.internal.RubygemsContentFacetImpl.getBundlerApiDependencies(RubygemsContentFacetImpl.java:269) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) at org.sonatype.nexus.repository.rubygems.internal.RubygemsContentHandler.handleGET(RubygemsContentHandler.java:104) at org.sonatype.nexus.repository.rubygems.internal.RubygemsContentHandler.handle(RubygemsContentHandler.java:63) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at com.sonatype.nexus.plugins.healthcheck.downloads.AssetDownloadCountContributedHandler.handle(AssetDownloadCountContributedHandler.java:47) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at com.sonatype.nexus.clm.internal.QuarantineContributedHandler.handle(QuarantineContributedHandler.java:62) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at com.sonatype.nexus.usertoken.plugin.internal.UserTokenHandler.handle(UserTokenHandler.java:70) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.HandlerContributor.handle(HandlerContributor.java:67) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:43) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.Context.start(Context.java:114) at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:63) at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) {noformat} Saw in 3.4, but also reproduced in 3.5. I was just following the instructions at [https://docs.sonatype.com/display/Nexus/RubyGems+Testing+-+NX3.] The final test is to download a custom asset from a hosted repository.",0.5 +"NEXUS-13894","08/02/2017 21:36:11","Docker unauthenticated access shows ""unknown: unknown"" console output","*Description* When having configured a docker proxy without or with invalid HTTP Authentication we expect a similar or at least close to output message as docker hub would give us. *To reproduce* # Setup a private repo on Docker Hub (see [here|https://issues.sonatype.org/browse/NEXUS-11300?focusedCommentId=425137&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-425137] for some instructions on a setup) # Setup a docker proxy, do not give it any HTTP Authentication # On the command do a pull ## docker pull // *Actual* {noformat} Using default tag: latest Error response from daemon: unknown: unknown{noformat} *Expected* {noformat} Using default tag: latest Error response from daemon: repository billybob/hello-test-1234 not found: does not exist or no pull access{noformat}",1 +"NEXUS-13897","08/03/2017 06:04:48","static css files are not using a cache buster which may cause unexpected UI rendering","When you load the Nexus UI, requests are made to URLs like this: [http://localhost:8081/static/rapture/resources/baseapp-prod_01.css] [http://localhost:8081/static/rapture/resources/baseapp-prod_02.css] [http://localhost:8081/static/rapture/resources/baseapp-prod_03.css] It seems that the browser will cache these and then during upgrade of Nexus to a new version with the same files, may read the file from the browser cache instead of asking for a new version from Nexus. This could lead to artifacts like this: !image-2017-08-03-02-02-03-687.png! Instead of the expected: !image-2017-08-03-02-02-28-285.png! h4. Expected The static resource urls should be handled in such a way that makes them unique per Nexus release and so that a user does not need to clear their browser cache to load new UI elements as intended. h4. Workaround Manually clear your browser cache and restart the browser, then load the new version of Nexus.  ",1 +"NEXUS-13900","08/03/2017 09:15:44","add YUM proxy repository support","As a systems developer, so that I can minimize downtime, I want to be able to access remote yum packages if the remote yum repository goes down Acceptance Criteria: * Access to metadata in SQLLite database format should be blocked * If proxied metadata is changed, the metadata in the proxy repository will be updated when a package is requested * Proxy repository must function if the remote repository goes down ** The proxy will serve what cached components are currently available * A user with sufficient privilege will be able to run the following commands: ** yum install __ ** yum update __ ** yum check-update ** yum remove __ ** yum search __ ** yum list * Deleting a yum component should function the same as yum remove, removing the dependencies as well ",8 +"NEXUS-13905","08/03/2017 20:02:52","Docker image should set java preference store location","Our Docker images should override the Java preferences store location to be somewhere under the work directory.  This way an installed license will not be lost when a new Docker image is deployed.    ",1 +"NEXUS-13915","08/04/2017 18:24:18","conditional GET to npm group repository returns status 404 instead of 304 or 200","When a Nexus 3 instance proxy's a repository it sends conditional GET requests for npm metadata to the remote.  These fail if the remote is a group repository in another Nexus 3 instance. Reproduce case: # Configure an npm proxy repository to https:registry.npmjs.org in Nexus 3.5.0 # Create an npm group repository, add the proxy repo into it as a member # Request npm metadata through the group, such as [http://localhost:8081/repository/npm-group/ansi-regex] # Now request it again with a conditional GET - That will return a 404 response: {code:java} $ curl -v -H ""If-Modified-Since: Fri, 04 Aug 2017 16:45:35 GMT"" http://localhost:8081/repository/npm-group/ansi-regex {code} h4. Expected Nexus should return 304 (not modified) IF the combined/merged metadata for all group repository members is no different ( not updated ) as compared to the conditional get conditions as applied by general standards. -[https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.25]- OBSOLETE [https://tools.ietf.org/html/rfc7232] - CURRENT conditional gets [https://tools.ietf.org/html/rfc7230#section-3.2] - message headers general Note: Sending the same conditional GET directly to the remote proxy returns 304. h4. Outcome Group repo requests will return 200 status + the most recent package metadata content instead of 404 now. Proper 304 response to conditional gets is a desired future improvement.",2 +"NEXUS-13916","08/04/2017 19:09:58","Generation of maven-metadata.xml representing a group of plugins adds an extra ""groupId"" tag, which to be used for artifacts","When using “Rebuild Maven repository metadata” task, maven-metadata.xml that represents plugin groups, has and extra “groupId” tag. As maven documentation states here ([http://maven.apache.org/ref/3.5.0/maven-repository-metadata/repository-metadata.html]) there are two types of matadata content: artifacts /artifact versions (groupId, artifactId, version, versioning) and group of plugins (plugins). Metadata generated by Nexus 3 {code:java} org.codehaus.mojo Maven Wagon plugin wagon wagon-maven-plugin {code} Metadata in Maven Central ([http://repo1.maven.org/maven2/org/codehaus/mojo/maven-metadata.xml])  {code:java} Animal Sniffer Maven Plugin animal-sniffer animal-sniffer-maven-plugin ... Maven XSLT Plugin xslt xslt-maven-plugin {code} When using the maven repository directly that is not really an issue but when that repository participates in maven repository group is one. Current Nexus 3 matadata merge (RepositoryMetadataMerger.merge) has a validation bug so when merging metadata for plugins from different repositories may result in a incomplete result.",3 +"NEXUS-13921","08/05/2017 09:34:22","yum proxy xml re-encoded and truncated",".xml and .xml.gz files proxied and cached by the nexus Yum Proxy are being re-encoded. Additionally .xml.gz files are being truncated.   {noformat} $ curl -o -  http://nexus.docker:8081/repository/frYum6/repodata/ed2b2d4ac98d774d4cd3e91467e1532f7e8b0275cfc91a0d214b532dcaf1e979-primary.xml.gz | gzip -dc | tail x86_64 1d954bbccf77d20ca055665822f4665c2ab3e67764d0c83a52b12c414f330ba4 SELinux policy compiler Security-enhanced Linux is a feature of the Linux? kernel and a number of utilities with enhanced security functionality designed to add mandatory access controls to Linux. The Security-enhanced Linux kernel contains new architectural components originally developed to improve the security of the Flask operating system. These architectural (EOF) {noformat}   whereas downloading from the remote repository source directly: {noformat}  curl -o - http://centos.mirror.iweb.ca/6/os/x86_64/repodata/ed2b2d4ac98d774d4cd3e91467e1532f7e8b0275cfc91a0d214b532dcaf1e979-primary.xml.gz | gzip -dc | tail {noformat}   Using sha256sum on the two downloaded urls give me different checksums as well. Interestingly, the sha256sum of the file I download from the nexus3.5.0 container matches the asset checksum sha245 attribute of the file (via the browser). This leads me to believe that as the yum proxy attempts to fetch the file, it is saving it with an incorrect length.   You can see more evidence of the munging if you expand and diff the two xml files: {code:java} $ diff mirror.primary.xml nexus.primary.xml 1,2c1 < < --- > 6,7c5,6 < < 575122051cdbe6a8d47211b84ce7f970160f80e71ad6868bfc060c490584a43f --- > > 575122051cdbe6a8d47211b84ce7f970160f80e71ad6868bfc060c490584a43f {code}   to reproduce, setup a yum proxy repository with a name of frYum6 and a source of [http://centos.mirror.iweb.ca/6.9/os/x86_64/]   Then compare the checksum of the downloaded file: $ curl -o nexus.primary.xml.gz [http://your.nexus3.test.server/repository/frYum6/repodata/ed2b2d4ac98d774d4cd3e91467e1532f7e8b0275cfc91a0d214b532dcaf1e979-primary.xml.gz]   with the source: $ curl -o mirror.primary.xml.gz  http://centos.mirror.iweb.ca/6/os/x86_64/repodata/ed2b2d4ac98d774d4cd3e91467e1532f7e8b0275cfc91a0d214b532dcaf1e979-primary.xml.gz $ sha256sum *gz ed2b2d4ac98d774d4cd3e91467e1532f7e8b0275cfc91a0d214b532dcaf1e979 mirror.primary.xml.gz c24f8d887a2a374469ad5276d9c14f72b93abc7c3b6bd1437482aa832dd1d330 nexus.primary.xml.gz  ",1 +"NEXUS-13929","08/07/2017 22:08:34","help link printed in log file for open file descriptor limit minimums does not match the link used in the UI","The link in the log file is different than the UI warning link at the top of the UI: http://links.sonatype.com/products/nexus/system-reqs#filehandles h4. Expected Make the link in the log use the links.sonatype.com link instead of the support.sonatype.com link   {noformat} 2017-08-07 18:03:12,281-0300 WARN  [FelixStartLevel] *SYSTEM org.sonatype.nexus.internal.system.FileDescriptorServiceImpl - WARNING: ******************************************************************************************************************* 2017-08-07 18:03:12,281-0300 WARN  [FelixStartLevel] *SYSTEM org.sonatype.nexus.internal.system.FileDescriptorServiceImpl - WARNING: The open file descriptor limit is 10240 which is below the minimum recommended value of 65536. 2017-08-07 18:03:12,282-0300 WARN  [FelixStartLevel] *SYSTEM org.sonatype.nexus.internal.system.FileDescriptorServiceImpl - WARNING: Please see: https://support.sonatype.com/hc/en-us/articles/213464208-Sonatype-Nexus-System-Requirements#filehandles 2017-08-07 18:03:12,282-0300 WARN  [FelixStartLevel] *SYSTEM org.sonatype.nexus.internal.system.FileDescriptorServiceImpl - WARNING: ******************************************************************************************************************* {noformat}",1 +"NEXUS-13939","08/08/2017 20:31:05","default task log progress ---- Mark ---- messages are missing helpful context and therefore should be removed","Starting in 3.5.0, the task specific logs ( not nexus.log ) may print messages such as this ( specific concern is about these ---- Mark ---- messages ): {noformat} 2017-08-08 16:12:33,360+0200 INFO [quartz-1-thread-2] *SYSTEM org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - Processing 5678 GAVs found with more than minimum 2 snapshot versions 2017-08-08 16:13:13,231+0200 INFO [pool-24-thread-1] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - ---- Mark ---- 2017-08-08 16:14:13,231+0200 INFO [pool-24-thread-1] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - ---- Mark ---- 2017-08-08 16:15:13,230+0200 INFO [pool-24-thread-1] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - ---- Mark ---- 2017-08-08 16:16:13,230+0200 INFO [pool-24-thread-1] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - ---- Mark ---- 2017-08-08 16:17:13,231+0200 INFO [pool-24-thread-1] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - ---- Mark ---- 2017-08-08 16:18:13,230+0200 INFO [pool-24-thread-1] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - ---- Mark ---- 2017-08-08 16:19:13,231+0200 INFO [pool-24-thread-1] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - ---- Mark ---- 2017-08-08 16:20:13,231+0200 INFO [pool-24-thread-1] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - ---- Mark ---- 2017-08-08 16:21:13,230+0200 INFO [pool-24-thread-1] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - ---- Mark ---- 2017-08-08 16:22:13,230+0200 INFO [pool-24-thread-1] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - ---- Mark ---- 2017-08-08 16:23:13,231+0200 INFO [pool-24-thread-1] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - ---- Mark ---- 2017-08-08 16:24:13,230+0200 INFO [pool-24-thread-1] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - ---- Mark ---- {noformat} These Mark messages are not helpful because: - they lack context - they fill the logs without telling us what the task is doing - the thread id is different from the task thread doing the actual work - a thread dump can tell use where in the code the task thread is doing work specificly - a leading informative log message ahead of beginning any major work is a better way to summarize what work a task is about to begin - an end user can view task state ( ie. Running,waiting, etc) for end user visible tasks in the tasks UI Some tasks take days to run, and could leave 1440 of these in the log per day for no discernable value. h4. Expected For now the simplest thing is to remove the default progress logging which prints ---- Mark ---- as a log message. In other words, there should be no periodic progress logging unless explicitly coded into a task and that log message includes task specific progress data. Any work to add more explicit progress logging should be done via another ticket.",1 +"NEXUS-13947","08/09/2017 13:22:03","Expand Snapshot Remover task log messages with context","Per --NEXUS-13580-- - Tasks that can support additional task log progress information need to be updated to provide {quote} # At the start and end of each major area of work performed by the task, add a contextual INFO log message to the nexus.log and task specific log indicating what work is being/been performed # At regular intervals during work, log progress with contextual data about the actual progress of that specific work{quote} AC for the Snapshot Remover task: # Major areas of work: Effectively each major method in {{RemoveSnapshotsFacetImpl}} can have a log.info. A number already do (e.g. {{processSnapshots}}), but some do not (e.g. {{processRepository}} and {{findReleasedSnapshots}}). There are many possible places of 'major work' in this task (compared to all others) so this may require some iteration with feedback from support. # Contextual data: depends on the major stage we are in, but there are a number of iterators in the task that can be leveraged. _Note: the exact items logged may get clearer as the work is done. Above AC is from a quick analysis of the code_ Original description (above description added to be inline with [the other task log context updates|https://issues.sonatype.org/issues/?jql=issue%20in%20linkedIssues(NEXUS-13580)%20AND%20summary%20~%20%22with%20context%22%20ORDER%20BY%20key%20ASC]: ---- In contrast to NEXUS-13939 which deals with Mark messages only across all tasks, this is a more specific issue about snapshot removal task. h4. Expected - At the start and end of each major area of work performed by the task, add a contextual INFO log message to the nexus.log and task specific log indicating what work is being/been performed - at regular intervals during work, log progress with contextual data about the actual progress of that specific work - looking at a thread dump should not be the only way to tell what the task is doing at any given moment. Attached Example task log output which is not adequate. When the log was captured, a thread dump shows the task is busy trying to find released snapshots, but there is no indication in the log that this is what it is actually doing or what progress it has made so that one can have a better sense of when it might complete or move on to the next piece of work. {noformat} quartz-1-thread-2 id=204 state=RUNNABLE at com.orientechnologies.common.concur.lock.ODistributedCounter.increment(ODistributedCounter.java:46) at com.orientechnologies.common.concur.lock.OReadersWriterSpinLock.acquireReadLock(OReadersWriterSpinLock.java:77) at com.orientechnologies.orient.core.storage.cache.local.twoq.O2QCache.release(O2QCache.java:432) at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.releasePage(ODurableComponent.java:169) at com.orientechnologies.orient.core.index.sbtree.local.OSBTree.access$3200(OSBTree.java:75) at com.orientechnologies.orient.core.index.sbtree.local.OSBTree$OSBTreeCursorForward.next(OSBTree.java:2111) at com.orientechnologies.orient.core.index.engine.OSBTreeIndexEngine$OSBTreeIndexCursor.nextEntry(OSBTreeIndexEngine.java:271) at com.orientechnologies.orient.core.index.OIndexAbstractCursor.hasNext(OIndexAbstractCursor.java:83) at com.orientechnologies.orient.core.index.OIndexChangesWrapper.hasNext(OIndexChangesWrapper.java:138) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.serialIterator(OCommandExecutorSQLSelect.java:1635) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchFromTarget(OCommandExecutorSQLSelect.java:1584) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchValuesFromIndexCursor(OCommandExecutorSQLSelect.java:2464) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchForIndexes(OCommandExecutorSQLSelect.java:2278) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchInClasses(OCommandExecutorSQLSelect.java:1019) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.assignTarget(OCommandExecutorSQLResultsetAbstract.java:209) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.assignTarget(OCommandExecutorSQLSelect.java:530) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:512) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:488) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:74) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:3208) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:3146) at com.orientechnologies.orient.core.sql.query.OSQLQuery.run(OSQLQuery.java:78) at com.orientechnologies.orient.core.sql.query.OSQLAsynchQuery.run(OSQLAsynchQuery.java:74) at com.orientechnologies.orient.core.sql.query.OSQLSynchQuery.run(OSQLSynchQuery.java:85) at com.orientechnologies.orient.core.query.OQueryAbstract.execute(OQueryAbstract.java:33) at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl.lambda$7(RemoveSnapshotsFacetImpl.java:327) at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl$$Lambda$226/595543127.apply(Unknown Source) at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267) at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1548) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl.findReleasedSnapshots(RemoveSnapshotsFacetImpl.java:336) at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl.processReleasedSnapshots(RemoveSnapshotsFacetImpl.java:213) at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl.processRepository(RemoveSnapshotsFacetImpl.java:197) at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl$$EnhancerByGuice$$bbbe27aa.CGLIB$processRepository$1() at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl$$EnhancerByGuice$$bbbe27aa$$FastClassByGuice$$6f372d4a.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl$$EnhancerByGuice$$bbbe27aa.processRepository() at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl.removeSnapshots(RemoveSnapshotsFacetImpl.java:150) at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl$$EnhancerByGuice$$bbbe27aa.CGLIB$removeSnapshots$0() at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl$$EnhancerByGuice$$bbbe27aa$$FastClassByGuice$$6f372d4a.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl$$EnhancerByGuice$$bbbe27aa.removeSnapshots() at org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask.execute(RemoveSnapshotsTask.java:58) at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:56) at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:92) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:108) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) Locked synchronizers: count = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@70357a64 {noformat}",2 +"NEXUS-13948","08/09/2017 13:46:18","/swagger-ui prompts to save a useless file instead of redirecting to something useful","Load this in a browser: http://localhost:8081/swagger-ui You are prompted to save a file. Saving this file on a local machine takes about 15 seconds. When it is done, all this file contains is this text: {noformat} css fonts images index.html lang lib o2c.html swagger-ui.min.js {noformat} h4. Expected redirect to proper swagger-ui url of http://localhost:8081/swagger-ui/#/ and load that instead. Users are not going to anticipate /swagger-ui/#/ and are going to frequently type /swagger-ui and expect something more useful to happen. When it doesn't, they will file support questions.",1 +"NEXUS-13949","08/09/2017 20:36:28","Remove snapshots from Maven repository remove if released option may progress slowly","The maven snapshot removal task is doing more work than expected. Expected that it would look at the snapshots in the snapshot repo and then check whether those exist in release repos. Instead it seems to be looking in other repos and checking whether those components exist in the snapshot repo. Steps to reproduce: Create a new maven snapshot repo and add one 0.0.1-SNAPSHOT version of a component. Configure the snapshot removal task with minimum snapshot count 1 and remove if released enabled with a grace period 1 day. Run the task with debug logging enabled. Expected: The snapshot would not be removed since it was just added, and there would be very little activity recorded in the log since there is just one snapshot in the repo and nothing to clean up. Actual: A whole bunch of debug log messages were recorded looking for components that do not exist in the snapshot repository. From the logs it looks like the task is iterating over other repositories, such as the central proxy, and checking whether those components exist in the snapshot repo. Example log entry: {noformat} 2017-08-09 09:47:36,007-0700 DEBUG [quartz-4-thread-18] *SYSTEM org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl - looking in maven-snapshots for snapshots older than Tue Aug 08 09:47:35 PDT 2017 for component GAV{group='org.sonatype.nexus.buildsupport', name='nexus-buildsupport', baseVersion='2.14.3-02', count=0}{noformat} Searching for nexus-buildsupport only exists in Central proxy repo.  ",5 +"NEXUS-14029","08/15/2017 16:02:34","Support Nuget ""NormalizedVersion"" queries","Newer versions of NuGet make queries with a ""NormalizedVersion"" field. [https://github.com/NuGet/NuGetGallery/issues/2944] Example: {code:java} 127.0.0.1 - - [10/Aug/2017:08:18:49 +0100] ""GET /nexus/service/local/nuget/barclays-nuget-read/Packages?$filter=(tolower(Id)%20eq%20'microsoft.aspnetcore.razor')%20and%20(NormalizedVersion%20eq%20'1.1.2') HTTP/1.1"" 400 238 2744{code}   When Nexus 2.x receives one of these queries it results in an error:   {code:java} 2017-08-10 08:18:49,249+0100 INFO [qtp1368710677-27545] anonymous com.sonatype.nexus.plugins.nuget.rest.NugetGalleryResource - Illegal argument: Problem preparing SQL: SELECT P.*,(P.VERSION=L.AV) AS ISABSOLUTELATESTVERSION,(P.VERSION=L.V) AS ISLATESTVERSION FROM (SELECT ID,MAX_VERSION(VERSION) AS AV,MAX_VERSION(CASEWHEN(ISPRERELEASE,'',VERSION)) AS V FROM PACKAGES WHERE LOCATE(CONCAT(CONCAT(':',REPOSITORYID),':'),?1) GROUP BY ID) AS L INNER JOIN PACKAGES AS P ON L.ID=P.ID WHERE LOCATE(CONCAT(CONCAT(':',REPOSITORYID),':'),?1) AND ((LOWER(P.ID) = 'microsoft.aspnetcore.razor') AND (P.NORMALIZEDVERSION = '1.1.2')) ORDER BY P.DOWNLOADCOUNT DESC,P.ID,P.VERSION LIMIT 40{code} The query is then re-issued by NuGet.exe with just ""version"", so this isn't visible to the end user.  But it creates a *ton* of log noise, and no doubt slows builds down.",2 +"NEXUS-14034","08/15/2017 20:13:42","NuGet ""filter=(tolower(Id))"" queries don't use a database index in Nexus 2.x, causing severe performance issues in large instances","Nexus 2.14.4 has experienced some severe performance problems with certain NuGet builds. Queries issued sporadically slow down, and they frequently get complete failures due to the h2 connection pool being exhausted. They have builds that are making large numbers of queries like this: {noformat} [10/Aug/2017:20:18:02 +0100] ""GET /nexus/service/local/nuget/nuget-repo-read/Packages?$filter=(tolower(Id)%20eq%20'akka.remote')%20and%20(Version%20eq%20'1.1.3') HTTP/1.1"" 200 5425 12242{noformat} Investigation has shown the cause was queries with a e.g. ""((LOWER(ID) = 'nunit')"" in them. It turns out these will not use the index, and will result in a full table scan being done.  *Acceptance* * Queries with a ""LOWER"" will use the index",2 +"NEXUS-14038","08/15/2017 23:47:19","Group repositories created through the Provisioning API do not preserve member order","Two problems introduced by the fix for NEXUS-13064: - Jackson serializes LinkedHashSet to a HashSet when transmitting to the client, losing the ordering - Orientdb serializes LinkedHashSet to OTrackedSet when converting the mapped attributes on a Repository configuration, so even though the member order is initially correct with the in-memory representation, restarting the server will reload from the db and therefore lose the order NOTE: - for the small number of Repositories that are likely affected by this, the manual remediation after this fix is to load the Group repo in the UI, reorder the members as desired and save; from this point forward the order should be consistent ",1 +"NEXUS-14048","08/16/2017 18:51:20","Component/Asset browsing UI gets JavaScript errors in Edge browser","Reproduce steps: # Load the Nexus 3.5 UI in the Edge browser on Windows 10 # Click on the asset browser # Click on the component browser You'll get a JavaScript error (see screenshot). I reproduced this using an Edge browser which had a completely clear cache.",2 +"NEXUS-14058","08/18/2017 14:26:55","configurable repodata depth for yum proxy repos","*Background* The yum client commands and yum configuration files [support dynamic variables|https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s1-yum-useful-variables.html]: $releasever This is replaced with the package's version, as listed in distroverpkg. This defaults to the version of the redhat-release package. $arch This is replaced with your system's architecture, as listed by os.uname() in Python. $basearch This is replaced with your base architecture. For example, if $arch=i686 then $basearch=i386. The yum client can use these variables to dynamically construct the final URL of the repository from which to download yum metadata - for example in yum.conf: {noformat} baseurl=http://nexus:8081/repository/yum-proxy/$releasever/os/$basearch/ {noformat} The advantage from a client perspective is a more flexible configuration. Using Nexus 2.x Yum support or Nexus 3.5.0 Yum Proxy support, a Nexus administrator needs to create a single Yum repository for every combination of dynamic variable. This is because Nexus will only expect repodata at the root of the remote URL value of a proxy repo or at the base of a hosted repo. This is not ideal since repositories are heavyweight and the management of these many repositories is not scalable if a repository is made for every unique variable combination. Instead it should be possible to create a single Nexus repository that supports any unique combination of URL form used by the client *at a specific depth*. The base URL from the Nexus administrator perspective would be simply [http://nexus:8081/repository/yum-proxy/] and the administrator would configure a depth at which they expect the metadata about what is in the repository will be stored/calculated. Example: Client configures baseurl=[http://nexus:8081/repository/yum-proxy/$releasever/os/$basearch/] Nexus has single yum proxy repo at [http://nexus:8081/repository/yum-proxy/] with a repodata metadata depth of '3' ( 3 path parts ). So metadata will be accessible under [http://nexus:8081/repository/yum-proxy/$releasever/os/$basearch/repodata/*] Example: Client configures baseurl=[http://nexus:8081/repository/yum-proxy/$basearch/$releasever] Nexus has single yum proxy repo at [http://nexus:8081/repository/yum-proxy/] with a repodata metadata depth of '2'. ( 2 path parts ). So metadata will be accessible under [http://nexus:8081/repository/yum-proxy/$basearch/$releasever/repodata/*] Note: this scheme does not mean repodata within a single Nexus repository can be at multiple depths - you would still need to create more than one repository per depth *Acceptance* * Support repos at a configurable depth inside a single aggregating repo ** When we generate metadata, it's at the correct depth ** Ensure we're only invalidating the appropriate metadata when content changes ",5 +"NEXUS-14062","08/18/2017 19:39:18","ERROR OConcurrentModificationException Cannot UPDATE the record because the version is not the latest during upgrade of npm repositories ","During upgrade from Nexus 2.x to Nexus 3.x, Nexus 3 logs may report the following type of ERROR: {noformat} 2017-08-16 10:27:10,374+0000 ERROR [plan-executor-8-thread-4] admin com.sonatype.nexus.migration.repository.ProcessChangesStep - Failed processing of CREATE npm-public:/chokidar/-/chokidar-1.5.0.tgz, will ignore and move on. Reached max retries: 8/8 org.sonatype.nexus.repository.storage.RetryDeniedException: Reached max retries: 8/8 .... Caused by: com.orientechnologies.orient.core.exception.OConcurrentModificationException: Cannot UPDATE the record #32:11222 because the version is not the latest. Probably you are updating an old record or it has been modified by another user (db=v16 your=v15) DB name=""component"" at com.orientechnologies.orient.core.conflict.OVersionRecordConflictStrategy.checkVersions(OVersionRecordConflictStrategy.java:56) {noformat} This looks like a problem where multiple ProcessChangesStep threads in Nexus 3 could be attempting to update the same npm package metadata for different tarballs. The concern is that some npm package metadata tarballs _may_ be lost on upgrade to Nexus 3 when encountering this type of ERROR. In the case of a proxy repository, does not appear to be serious. In the case of this happening with a hosted repository, this is considerably more serious. h4. Workaround In Nexus 3, edit ./bin/nexus.vmoptions Add this new line at the end of that file and save: {noformat} -Dcom.sonatype.nexus.migration.repository.ProcessChangesStep.threads=1 {noformat} This attempts to reduce the migration concurrency to avoid the problem of different threads trying to update the same record. Restart the Nexus 3 migration using a completely empty karaf.data directory",5 +"NEXUS-14075","08/21/2017 19:06:33","Migrated proxy does not migrate analyzed","I migrated over my Central proxy and noticed that while the contents migrated and the Health Check task migrated, the health check column in the repository list still had the analyze button (the NXRM2 one had report results). I tried running the task and still nothing. I may be missing some subtlty (or maybe itetentional) but it seems like this aspect is not migrated to me. Workaround is click the analyze button and enable as usual (NOTE: Doing this results in ""Insufficient Trend Data"" but still it's enabled). I left major as I have no clue if the trend data is gathering while not analyzing. If it is, then this seems minor.",3 +"NEXUS-14105","08/25/2017 20:39:25","potential OutOfMemory or poor performance retrieving specs.4.8.gz from a rubygems repository","Make a RubyGems group. ( gem-group ) Put a RubyGems proxy to https://rubygems.org in the group as the only member. Make a HEAD request for http://localhost:8081/repository/gem-group/specs.4.8.gz - HEAD with return no content as expected, status 200. Make a GET request for http://localhost:8081/repository/gem-group/specs.4.8.gz - GET will return content and status 200. A local test on Nexus with no load showed consistent 6-7 second response times infinitely for both types of requests with a single user making the request. The time required for Nexus to begin a HTTP response is identical for both HTTP methods and much slower than sending the same request to rubygems.org. Repeating the requests over and over even though no content has changed, does not improve the response time. A thread dump while a HEAD request is active shows the following work being performed: {noformat} ""qtp421378397-200"" #200 prio=5 os_prio=31 tid=0x00007fd55066b800 nid=0x6207 runnable [0x000070000f81f000] java.lang.Thread.State: RUNNABLE at java.util.zip.Inflater.inflateBytes(Native Method) at java.util.zip.Inflater.inflate(Inflater.java:259) - locked <0x00000007ba428078> (a java.util.zip.ZStreamRef) at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:152) at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:117) at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:122) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad.loadByte(MarshalLoad.java:123) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad.loadObject(MarshalLoad.java:108) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad.access$4(MarshalLoad.java:107) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad$ListLoadVisitor.accept(MarshalLoad.java:324) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad$ListLoadVisitor.accept(MarshalLoad.java:1) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad.loadObject(MarshalLoad.java:113) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad.access$4(MarshalLoad.java:107) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad$ListLoadVisitor.accept(MarshalLoad.java:324) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad$ListLoadVisitor.accept(MarshalLoad.java:1) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad.loadObject(MarshalLoad.java:113) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad.fromBytes(MarshalLoad.java:104) at org.sonatype.nexus.repository.rubygems.marshal.Marshal.load(Marshal.java:72) at org.sonatype.nexus.repository.rubygems.internal.RubygemsGroupHandler.handleSpecsIndex(RubygemsGroupHandler.java:131) at org.sonatype.nexus.repository.rubygems.internal.RubygemsGroupHandler.doGet(RubygemsGroupHandler.java:70) at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:81) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at com.sonatype.nexus.plugins.healthcheck.downloads.AssetDownloadCountContributedHandler.handle(AssetDownloadCountContributedHandler.java:47) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at com.sonatype.nexus.clm.internal.QuarantineContributedHandler.handle(QuarantineContributedHandler.java:62) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at com.sonatype.nexus.usertoken.plugin.internal.UserTokenHandler.handle(UserTokenHandler.java:70) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.HandlerContributor.handle(HandlerContributor.java:67) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:43) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.Context.start(Context.java:114) at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:63) at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) 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:125) 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:125) 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:125) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) 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:383) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.repository.httpbridge.internal.ExhaustRequestFilter.doFilter(ExhaustRequestFilter.java:71) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:108) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:102) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) at org.eclipse.jetty.server.Server.handle(Server.java:517) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) at java.lang.Thread.run(Thread.java:745) Locked ownable synchronizers: - <0x00000007ba1104a0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) {noformat} As load increases ( increase concurrent threads requesting these files ), the time to respond increases exponentially. Further it is very easy to trigger OutOfMemory when multiple threads request this file at the same time using either method type. {noformat} 2017-08-25 16:37:29,329-0300 ERROR [qtp421378397-267] *SYSTEM org.sonatype.nexus.internal.web.ErrorPageServlet - Unexpected exception java.lang.OutOfMemoryError: Java heap space at java.util.IdentityHashMap.resize(IdentityHashMap.java:471) at java.util.IdentityHashMap.put(IdentityHashMap.java:440) at org.sonatype.nexus.repository.rubygems.marshal.ObjectCache.add(ObjectCache.java:65) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad$ListLoadVisitor.accept(MarshalLoad.java:322) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad$ListLoadVisitor.accept(MarshalLoad.java:1) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad.loadObject(MarshalLoad.java:113) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad.access$4(MarshalLoad.java:107) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad$ListLoadVisitor.accept(MarshalLoad.java:324) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad$ListLoadVisitor.accept(MarshalLoad.java:1) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad.loadObject(MarshalLoad.java:113) at org.sonatype.nexus.repository.rubygems.marshal.MarshalLoad.fromBytes(MarshalLoad.java:104) at org.sonatype.nexus.repository.rubygems.marshal.Marshal.load(Marshal.java:72) at org.sonatype.nexus.repository.rubygems.internal.RubygemsGroupHandler.handleSpecsIndex(RubygemsGroupHandler.java:131) at org.sonatype.nexus.repository.rubygems.internal.RubygemsGroupHandler.doGet(RubygemsGroupHandler.java:70) at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:81) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at com.sonatype.nexus.plugins.healthcheck.downloads.AssetDownloadCountContributedHandler.handle(AssetDownloadCountContributedHandler.java:47) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at com.sonatype.nexus.clm.internal.QuarantineContributedHandler.handle(QuarantineContributedHandler.java:62) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at com.sonatype.nexus.usertoken.plugin.internal.UserTokenHandler.handle(UserTokenHandler.java:70) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.HandlerContributor.handle(HandlerContributor.java:67) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:43) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.Context.start(Context.java:114) at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:63) 2017-08-25 16:38:43,398-0300 ERROR [fileinstall-/app/nexus-testing/3.5.0-02/nexus-installer-3.5.0-02-mac-archive/nexus-3.5.0-02/deploy] *SYSTEM org.apache.felix.fileinstall - In main loop, we have serious trouble java.lang.OutOfMemoryError: GC overhead limit exceeded at java.util.Arrays.copyOfRange(Arrays.java:3664) at java.lang.String.(String.java:207) at java.lang.String.substring(String.java:1933) at java.io.File.getName(File.java:456) at org.apache.felix.fileinstall.internal.BundleTransformer.canHandle(BundleTransformer.java:41) at org.apache.felix.fileinstall.internal.DirectoryWatcher.findListener(DirectoryWatcher.java:524) at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:456) at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:361) at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:312) {noformat} ",5 +"NEXUS-14174","08/29/2017 17:28:16","Component Database got corrupted after OOM exception.","After an OutOfMemoryError, the component database was corrupted. A ""{{repair database --fix-links"" and ""rebuild index *}}"" was required to fix the database. {noformat} 2017-08-25 13:49:31,045+0800 ERROR [Thread-14954] xxxxxx com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - $ANSI{green {db=component}} Exception `675151B2` in storage `component` java.lang.OutOfMemoryError: GC overhead limit exceeded at com.orientechnologies.orient.core.storage.cache.local.twoq.O2QCache.doLoad(O2QCache.java:328) at com.orientechnologies.orient.core.storage.cache.local.twoq.O2QCache.load(O2QCache.java:291) at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.loadPage(ODurableComponent.java:148) at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.loadPage(ODurableComponent.java:142) at com.orientechnologies.orient.core.index.sbtree.local.OSBTree.access$2900(OSBTree.java:75) at com.orientechnologies.orient.core.index.sbtree.local.OSBTree$OSBTreeCursorForward.next(OSBTree.java:2081) at com.orientechnologies.orient.core.index.engine.OSBTreeIndexEngine$OSBTreeIndexCursor.nextEntry(OSBTreeIndexEngine.java:271) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract$IndexValuesIterator.hasNext(OCommandExecutorSQLResultsetAbstract.java:114) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.serialIterator(OCommandExecutorSQLSelect.java:1617) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchFromTarget(OCommandExecutorSQLSelect.java:1566) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:525) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:488) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:74) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:3200) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:3138) at com.orientechnologies.orient.core.sql.query.OSQLQuery.run(OSQLQuery.java:78) at com.orientechnologies.orient.core.sql.query.OSQLAsynchQuery.run(OSQLAsynchQuery.java:74) at com.orientechnologies.orient.core.query.OQueryAbstract.execute(OQueryAbstract.java:33) at com.orientechnologies.orient.core.sql.query.OSQLNonBlockingQuery$1.run(OSQLNonBlockingQuery.java:282) at java.lang.Thread.run(Thread.java:748) {noformat} {noformat} 2017-08-25 15:21:09,799+0800 ERROR [qtp107108037-228] *UNKNOWN com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - $ANSI{green {db=component}} Exception `2522253C` in storage `component` com.orientechnologies.orient.core.exception.OStorageException: Error during transaction commit DB name=""component"" at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.makeRollback(OAbstractPaginatedStorage.java:2678) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1699) at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:541) at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:99) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2891) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2860) at org.sonatype.nexus.repository.storage.StorageTxImpl.commit(StorageTxImpl.java:173) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:66) at com.sun.proxy.$Proxy206.commit(Unknown Source) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:67) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl$$EnhancerByGuice$$4592afb1.doPut() at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.put(MavenFacetImpl.java:201) at org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyFacet.store(MavenProxyFacet.java:88) ... Caused by: java.lang.NullPointerException: null at com.orientechnologies.orient.core.index.sbtree.local.OSBTree.findBucket(OSBTree.java:1765) at com.orientechnologies.orient.core.index.sbtree.local.OSBTree.get(OSBTree.java:200) at com.orientechnologies.orient.core.index.engine.OSBTreeIndexEngine.get(OSBTreeIndexEngine.java:128) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doGetIndexValue(OAbstractPaginatedStorage.java:2115) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.getIndexValue(OAbstractPaginatedStorage.java:2090) at com.orientechnologies.orient.core.index.OIndexMultiValues.put(OIndexMultiValues.java:157) at com.orientechnologies.orient.core.index.OIndexMultiValues.put(OIndexMultiValues.java:44) at com.orientechnologies.orient.core.index.OIndexAbstract.putInSnapshot(OIndexAbstract.java:956) at com.orientechnologies.orient.core.index.OIndexAbstract.applyIndexTxEntry(OIndexAbstract.java:790) at com.orientechnologies.orient.core.index.OIndexAbstract.addTxOperation(OIndexAbstract.java:762) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commitIndexes(OAbstractPaginatedStorage.java:1730) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1688) ... 187 common frames omitted {noformat} There have been many timeout errors throughout the day: {noformat} 2017-08-25 13:47:53,376+0800 ERROR [qtp1295782900-18724] xxxxxx org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Component.readAssets, java-method: org.sonatype.nexus.coreui.ComponentComponent.readAssets java.lang.IllegalStateException: Timed out reading query result from queue 1b622e46 after 60 seconds at org.sonatype.nexus.repository.storage.OrientAsyncHelper$QueueConsumingIterable.hasNext(OrientAsyncHelper.java:201) {noformat}",5 +"NEXUS-14196","08/31/2017 19:19:38","Nexus 3 docker image should allow tweaking the ""-XX:MaxDirectMemorySize""","Our [installation requirements|https://help.sonatype.com/display/NXRM3/System+Requirements#SystemRequirements-GeneralMemoryGuidelines] indicate that ""-XX:MaxDirectMemorySize"" should be increased on systems that have sufficient RAM to support doing so.  But our Nexus 3 docker image currently provides no way to change this value. We should change our Docker image to allow customization of that falue.",1 +"NEXUS-14198","08/31/2017 22:46:48","outbound proxy repository requests for identical files which take more than 10 minutes duplicate work and disk space","Configure a Proxy repository which points to a remote server hosting a large file that will take over 10 minutes to download. Send 2 or more identical requests into the proxy repository for that large file. One request will begin downloading the remote file. The other requests will be put into a queue waiting for it to complete. The first request starts writing the remote file into the blobstore as a temporary file. It may look like this: {noformat} > ls -la blobs/default/content/tmp drwxrwxr-x 3 plynch staff 102 Aug 31 17:17 ./ drwxrwxr-x 3 plynch staff 102 Aug 31 17:05 ../ -rw-rw-r-- 1 plynch staff 43K Aug 31 17:17 'tmp$f1d08191-df11-47c2-8c6e-845f7599915d.94cabaaf-f9d7-4121-a040-11f8a4aaf769.bytes' total 2.0M {noformat} After 10 minutes, the initial request is not done. The second thread that was in the queue will get tired of waiting and begin downloading the same file. Now two threads are actively downloading the same file from the remote and writing the content to the blobstore to a temporary file. {noformat} drwxrwxr-x 3 plynch staff 102 Aug 31 17:17 ./ drwxrwxr-x 3 plynch staff 102 Aug 31 17:05 ../ -rw-rw-r-- 1 plynch staff 1.3G Aug 31 17:27 'tmp$f1d08191-df11-47c2-8c6e-845f7599915d.94cabaaf-f9d7-4121-a040-11f8a4aaf769.bytes' total 1.3G drwxrwxr-x 4 plynch staff 136 Aug 31 17:27 ./ drwxrwxr-x 3 plynch staff 102 Aug 31 17:05 ../ -rw-rw-r-- 1 plynch staff 68K Aug 31 17:27 'tmp$16237c6b-30e8-49ab-9c1d-9d1c817d98ab.43361be6-cac6-459a-aa6b-231c94c790de.bytes' -rw-rw-r-- 1 plynch staff 1.3G Aug 31 17:27 'tmp$f1d08191-df11-47c2-8c6e-845f7599915d.94cabaaf-f9d7-4121-a040-11f8a4aaf769.bytes' total 1.3G {noformat} This pattern continues for as long as there are identical inbound requests for the same file in a queue - every 10 minutes, a new outbound request for the same file begins. The disk holding the repository blobstore location becomes more full. In the case of - the remote file is large ( less common multi-GB ) - the network is comparatively slow and/or bandwidth starved ( common ) - requests for identical files at the same time come into Nexus concurrently ( common ie. chef ) - the blobstore does not have considerable free space larger than (concurrent requests \* file size) there becomes a high probability that the blobstore may fill with these temporary files, overflowing the disk. Running out of disk is a critical event. h4. Expected - the common cases described should be better mitigated against to prevent high disk usage and otherwise useless outbound requests and negative side effects of this behaviour h4. Workaround A Nexus administrator needs to guestimate the longest time the largest file should take to be downloaded from a proxy repository remote. Knowing this value, they can change the default 10 minute wait period to this new value. For example, if the longest remote request can take up to 8 hrs, then: Edit {{sonatype-work/nexus3/etc/nexus.properties}} Add a new line like this to the file: {noformat} nexus.proxy.passiveCooperationTimeout=8h {noformat} or {noformat} nexus.proxy.passiveCooperationTimeout=480m {noformat} or {noformat} nexus.proxy.passiveCooperationTimeout=28800s {noformat} ",1 +"NEXUS-14211","09/05/2017 06:45:34","Certain OData requests can cause pathological regex behavior in Nuget implementation","Certain Nuget OData requests do not play well with the regex-based query rewriting introduced in 3.5.0 causing poor performance.  This can be confirmed by trying the following request: {code:java} /repository/nuget-group/FindPackagesById?$top=80&id='Microsoft.ApplicationInsights.Web'&$skiptoken=2666439,'Microsoft.ApplicationInsights.Web','2.1.0-beta4'&$orderby=DownloadCount%20desc {code} I have also been able to confirm that this issue does not occur if the regexes are not in play.",2 +"NEXUS-14227","09/06/2017 20:01:58","Thread count increases linearly with scheduled task execution","Starting with 3.5.0, a new thread appears to be created each time a scheduled task executes, but is left in the WAITING state at the conclusion of the task. The overall thread count for the Nexus process increases indefinitely until the max user processes limit is reached (ulimit -u). Once this occurs, Nexus becomes mostly unresponsive. The behavior was first observed in a regular installation of 3.5.0 on RHEL 6, where the default ulimit -u was set to 1024. Increasing the ""max user processes"" limit extends the time before restarting the Nexus process is required. The issue of threads linearly increasing was reproduced using the sonatype/nexus3 Docker image on a macOS host using the following steps: # Create and run Nexus in new Docker container with defaults: {code:none} docker run -d -p 8081:8081 --name nexus sonatype/nexus3:3.5.1 {code} # Login as admin, navigate to ""Metrics"", download ""Thread dump"" (result attached: 01-threads-start.txt) # Create scheduled task, select ""Advanced"" for ""Task frequency"", and provide ""* * * * * ?"" for cron expression to run every second. # Wait 30 minutes (approx. 1800 tasks run, 1800+ threads). # Navigate to ""Metrics"", download ""Thread dump"" (result attached: 02-threads-1800-tasks-run.txt) Thread count never exceeds 120 when following the same steps on released versions 3.3.0 - 3.4.1. ",2 +"NEXUS-14312","09/12/2017 20:57:10","Yum proxy of mirrors.centos.org fails with encoding error ","Reproduce steps... # Create a yum proxy repository in Nexus with remote set to http://mirror.centos.org/centos/7/os/x86_64 # Configure yum in CentOS 7.3 to use it This fails with an error complaining that the encoding has not been set in the primary.xml file. Sure enough, if you check the file from RedHat it has: {code} {code} Our generated XML is missing the encoding: {code} {code} Full error log is below: {code} (process:18863): GLib-WARNING **: GError set over the top of a previous GError or uninitialized memory. This indicates a bug in someone's code. You must ensure an error is NULL before it's set. The overwriting error message was: Parsing primary.xml error: Specification mandate value for attribute e (process:18863): GLib-WARNING **: GError set over the top of a previous GError or uninitialized memory. This indicates a bug in someone's code. You must ensure an error is NULL before it's set. The overwriting error message was: Parsing primary.xml error: attributes construct error (process:18863): GLib-WARNING **: GError set over the top of a previous GError or uninitialized memory. This indicates a bug in someone's code. You must ensure an error is NULL before it's set. The overwriting error message was: Parsing primary.xml error: Couldn't find end of Start Tag rpm:entry line 481849 (process:18863): GLib-WARNING **: GError set over the top of a previous GError or uninitialized memory. This indicates a bug in someone's code. You must ensure an error is NULL before it's set. The overwriting error message was: Parsing primary.xml error: Premature end of data in tag rpm:provides line 481846 (process:18863): GLib-WARNING **: GError set over the top of a previous GError or uninitialized memory. This indicates a bug in someone's code. You must ensure an error is NULL before it's set. The overwriting error message was: Parsing primary.xml error: Premature end of data in tag format line 481839 (process:18863): GLib-WARNING **: GError set over the top of a previous GError or uninitialized memory. This indicates a bug in someone's code. You must ensure an error is NULL before it's set. The overwriting error message was: Parsing primary.xml error: Premature end of data in tag package line 481820 (process:18863): GLib-WARNING **: GError set over the top of a previous GError or uninitialized memory. This indicates a bug in someone's code. You must ensure an error is NULL before it's set. The overwriting error message was: Parsing primary.xml error: Premature end of data in tag metadata line 1 One of the configured repositories failed (Unknown), and yum doesn't have enough cached data to continue. At this point the only safe thing yum can do is fail. There are a few ways to work ""fix"" this: 1. Contact the upstream for the repository and get them to fix the problem. 2. Reconfigure the baseurl/etc. for the repository, to point to a working upstream. This is most often useful if you are using a newer distribution release than is supported by the repository (and the packages for the previous distribution release still work). 3. Run the command with the repository temporarily disabled yum --disablerepo= ... 4. Disable the repository permanently, so yum won't use it by default. Yum will then just ignore the repository until you permanently enable it again or use --enablerepo for temporary usage: yum-config-manager --disable or subscription-manager repos --disable= 5. Configure the failing repository to be skipped, if it is unavailable. Note that yum will try to contact the repo. when it runs most commands, so will have to try and fail each time (and thus. yum will be be much slower). If it is a very temporary problem though, this is often a nice compromise: yum-config-manager --save --setopt=.skip_if_unavailable=true Parsing primary.xml error: Input is not proper UTF-8, indicate encoding ! Bytes: 0x92 0x73 0x20 0x64 {code}",0.5 +"NEXUS-14315","09/13/2017 15:12:52","S3 Blobstore - provide a blobstore 'prefix' option","As a nexus administrator I want to have multiple blobstores in one S3 bucket so that I can use 1 S3 buckets for all my blobstores *Assumptions* At time of writing, the S3 Blobstore assumes that the bucket is exclusive to the blobstore (the content is stored at the root of the bucket). If we provide administrators the ability to supply a ""prefix"" for all content in the S3 blobstore, this will allow them to have multiple blobstores sitting in one S3 bucket. *Acceptance Criteria* * The UI presents an option, empty by default, for a content prefix to use. When set, all content for the blobstore is stored under the prefix. * Using the prefix allows multiple separate blobstores to co-exist in the same S3 bucket.",2 +"NEXUS-14381","09/18/2017 09:01:29","Schedule task compact blob store failed with BlobId: null","Hi, since we upgraded in 3.5.2 the scheduled task compact blob store failed. 2017-09-18 07:19:21,342+0000 WARN [quartz-1-thread-19] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskJob - Task 8d20bb2e-f599-4977-97f0-3970fc912118 : 'maven' [blobstore.compact] execution failure org.sonatype.nexus.blobstore.api.BlobStoreException: BlobId: null, java.lang.NullPointerException at org.sonatype.nexus.blobstore.file.FileBlobStore.compact(FileBlobStore.java:575) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.blobstore.compact.internal.CompactBlobStoreTask.execute(CompactBlobStoreTask.java:79) at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:92) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:108) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NullPointerException: null at org.sonatype.nexus.blobstore.file.FileBlobStore.maybeCompactBlob(FileBlobStore.java:583) at org.sonatype.nexus.blobstore.file.FileBlobStore.compact(FileBlobStore.java:563) ... 16 common frames omitted   Thx",1 +"NEXUS-14384","09/18/2017 17:18:57","No INFO log message when repositories are created and deleted","When a user creates or deletes a repository in Nexus 3 nothing is logged at all to record these actions in the nexus.log file. This is very important information, without it we will get reports of repositories ""disappearing"", and no way to investigate them.  There should be an INFO level log message for both of these events.",0.5 +"NEXUS-14385","09/18/2017 19:49:43","Possible regression, publishing npm package fails on 3.5.2, same package works on 3.1.0","Paypal is getting an error when publishing the attached npm package into Nexus 3.5.2.The same package can be published into Nexus 3.1.0 without any problem.   {noformat} 2017-09-18 15:01:57,161-0300 WARN [qtp1859861179-243] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: PUT /repository/npm-hosted/nemo-appscan-plugin java.lang.IllegalStateException: Unexpected token VALUE_NULL at [Source: java.io.InputStreamReader@1afd130f; line: 1, column: 192] at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseValue(NpmPublishParser.java:150) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseObject(NpmPublishParser.java:174) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseValue(NpmPublishParser.java:136) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseArray(NpmPublishParser.java:189) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseValue(NpmPublishParser.java:138) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseArray(NpmPublishParser.java:189) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseValue(NpmPublishParser.java:138) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseObject(NpmPublishParser.java:174) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseValue(NpmPublishParser.java:136) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseObject(NpmPublishParser.java:174) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseValue(NpmPublishParser.java:136) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parsePackageRoot(NpmPublishParser.java:123) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parse(NpmPublishParser.java:98) at com.sonatype.nexus.repository.npm.internal.NpmRequestParser.parseNpmPublish(NpmRequestParser.java:81) at com.sonatype.nexus.repository.npm.internal.NpmRequestParser.parsePublish(NpmRequestParser.java:60) at com.sonatype.nexus.repository.npm.internal.NpmHostedFacetImpl.putPackage(NpmHostedFacetImpl.java:85) at com.sonatype.nexus.repository.npm.internal.NpmHandlers$3.handle(NpmHandlers.java:172) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) {noformat} This is caused by the ""scope"": ""null"" line here: {code} ""_args"": [ [ { ""raw"": ""nemo-appscan-plugin@0.0.10"", ""scope"": null, ""escapedName"": ""nemo-appscan-plugin"", ""name"": ""nemo-appscan-plugin"", ""rawSpec"": ""0.0.10"", ""spec"": ""0.0.10"", ""type"": ""version"" }, ""C:\\Users\\xxx\\Desktop\\test"" ] ], {code} The ""_args"" is added by the npm installer when it locally installs a package in a node_modules directory: https://github.com/npm/npm/issues/10393 And it seems like it was only put in when using npm versions prior to 5, although I'm not completely certain about that. I'm not sure about whether publishing the package.json produced by a local install is a good idea or not, but we should at least be able to handle these uploads, especially because we used to do that in version 3.1.0. (We may want to be ignoring these fields being put in by the npm install altogether, but this particular issue is related to a parsing regression.)",1 +"NEXUS-14387","09/18/2017 22:39:48","Repository creation fails often with Javascript errors in Edge Browser","*To reproduce* # On a Windows 10 machine (can be a vm) start up NXRM, preferably the latest 3.* version # Login with Admin credentials # Navigate to Repositories # Click create Repository # Select for example yum-proxy *Expected* * Create Yum Proxy repository page *Actual* * Empty page stuck at ""Repositories / Select Recipe"", showing a red danger popup saying : {code:java} Unable to get property 'removeAll' of undefined or null reference (http://localhost:8081/static/rapture/nexus-rapture-prod.js?_v=3.6.0-SNAPSHOT&_dc=1505755108280:1){code} *Side affect* * After above error, click on the left hand side ""Repository -> Repositories"" link will show the same error with strange screen layout (see attached screen capture) Note appears to be similar as NEXUS-14048",3 +"NEXUS-14398","09/19/2017 21:22:21","Content selector with ' in path errors","One of the comments on https://docs.sonatype.com/display/Nexus/Content+Selector+Testing is ""String literals containing "" or ' will be rejected"". I attempted _path =^ ""/jtt/jtza'pp/""_ and got back the below error both in the UI and in the nexus.log: {code} 2017-09-19 16:16:34,652-0400 ERROR [qtp1843897464-66] admin com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - $ANSI{green {db=component}} Exception `073D9309` in storage `component` com.orientechnologies.orient.core.exception.OCommandExecutionException: Error on execution of command: sql.select count(*) from asset where (contentExpression(@this, :jexlExpression, :repositorySelector, :repoToContainedGroupMap) == true) and (bucket=#36:0 or bucket=#35:3 or bucket=#36:3 or bucket=#34:3 or bucket=#37:0 or bucket=#38:0 or bucket=#39:0) ... Caused by: org.apache.commons.jexl3.JexlException$Parsing: org.sonatype.nexus.selector.JexlSelector@1:20 parsing error in 'pp' ... {code} Full here: https://gist.github.com/joedragons/6c052e86c4c19a45a4c569b41b845a15 So it is rejected but filing in case we want to handle the error (I suspect we normally do, tho this may be an exception). I checked 3.5.2 and this is not new to CSEL and not regression.",0.5 +"NEXUS-14407","09/20/2017 15:51:02","REST Search & Download by 'Latest'","*Acceptance* * Extend the search & download service so that users can sort the search results by 'latest version' (see below) ** In the case of more than one, return the first-ordered result (since the 'best' result is unambiguous). * There multiple standard ""latest"" orderings ** format-specific ordering *** maven2 ordering of component.version (as implemented by [Apache Maven Artifact Resolver|https://maven.apache.org/resolver/] ( formerly [Eclipse Aether|https://projects.eclipse.org/projects/technology.aether] which is being [migrated to maven-resolver|http://maven.apache.org/aether.html] ) *** semver ordering of component.version  ",8 +"NEXUS-14414","09/20/2017 22:39:58","Privileges warn they're read only twice","On our default uneditable privilieges I noticed that the message that they cannot be edited appears twice. See attached (by the discard button). I suspect this is regression but haven't back checked at this time.",1 +"NEXUS-14419","09/21/2017 20:42:35","Access log output not sorted as expected","Came up with static analysis of the codebase that the Comparable impl here was never implemented correctly.",0.5 +"NEXUS-14439","09/26/2017 19:58:02","/service/siesta/rest/beta/search IllegalStateException current database instance is not active on the current thread while under stress","Under stress ( 700-900 requests per second of various types ) the /service/siesta/rest/beta/search resource may trigger the following message in the nexus.log: {noformat} 2017-09-26 00:12:11,238-0700 ERROR [qtp297617943-16913] nxadmin com.orientechnologies.orient.core.db.OPartitionedDatabasePool$DatabaseDocumentTxPooled - Error after transaction rollback java.lang.IllegalStateException: The current database instance (com.orientechnologies.orient.core.db.OPartitionedDatabasePool$DatabaseDocumentTxPooled@394fa658) is not active on the current thread (Thread[qtp297617943-16913,5,main]). Current active database is: null at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.checkIfActive(ODatabaseDocumentTx.java:3391) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.getConfiguration(ODatabaseDocumentTx.java:1203) at com.orientechnologies.orient.core.query.live.OLiveQueryHook.onAfterTxRollback(OLiveQueryHook.java:159) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.rollback(ODatabaseDocumentTx.java:2972) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.rollback(ODatabaseDocumentTx.java:2946) at org.sonatype.nexus.repository.storage.StorageTxImpl.rollback(StorageTxImpl.java:181) at org.sonatype.nexus.repository.storage.StorageTxImpl.close(StorageTxImpl.java:224) at sun.reflect.GeneratedMethodAccessor250.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:66) at com.sun.proxy.$Proxy225.close(Unknown Source) at org.sonatype.nexus.repository.browse.internal.BrowseServiceImpl.browseComponentAssets(BrowseServiceImpl.java:173) at org.sonatype.nexus.repository.browse.internal.resources.SearchResource.toComponent(SearchResource.java:169) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at org.sonatype.nexus.repository.browse.internal.resources.SearchResource.search(SearchResource.java:157) at sun.reflect.GeneratedMethodAccessor280.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140) at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:294) at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:248) at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:235) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:402) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:209) at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:227) at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56) at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51) at org.sonatype.nexus.siesta.internal.resteasy.ComponentContainerImpl.service(ComponentContainerImpl.java:106) at org.sonatype.nexus.siesta.SiestaServlet.service(SiestaServlet.java:137) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) at com.sonatype.nexus.analytics.internal.RestRequestCollector.doFilter(RestRequestCollector.java:80) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) 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:125) 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:125) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) 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:383) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:108) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:102) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) at org.eclipse.jetty.server.Server.handle(Server.java:517) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) at java.lang.Thread.run(Thread.java:748) {noformat} **Note**: When this exception happens, the request.log will not show any 4xx or 5xx status codes for this request, only 200 - this seems wrong as it sounds like a pretty severe error and may suggest the REST resource needs better error handling. Unclear what the response payload did contain ( and error payload with message and status code 200???? )",3 +"NEXUS-14441","09/26/2017 22:07:59","Race condition can cause component upload to fail.","If a large file is uploaded while a snapshot removal task is running it can fail with a file not found error. This is a rare race condition, but it can happen. This is because the directories needed in the target repository are made here: https://github.com/sonatype/nexus-public/blob/release-2.14.5-02/components/nexus-core/src/main/java/org/sonatype/nexus/proxy/storage/local/fs/DefaultFSPeer.java#L159 Only after this is the file actually stored, and then after it is stored Nexus attempts to rename it to it's final destination: https://github.com/sonatype/nexus-public/blob/release-2.14.5-02/components/nexus-core/src/main/java/org/sonatype/nexus/proxy/storage/local/fs/DefaultFSPeer.java#L190 But at that point a snapshot removal task may have deleted it's destination directory. This was actually observed in a user's log files. They had an upload that finished at ""26/Sep/2017:07:39:42 -0700"", and ran for 790 seconds. A snapshot removal task finished at 07:35:32: {code} 2017-09-26 07:35:32 INFO [pxpool-1-thread-8] *TASK org.sonatype.nexus.maven.tasks.SnapshotRemoverTask - Scheduled task (Clean snapshots) finished :: Removing snapshots from repository snapshots (started 2017-09-26T07:00:00-07:00, runtime 0:35:32.538) {code} And then a few minutes later the upload failed because the destination directory didn't exist anymore. {code} 2017-09-26 07:39:41 WARN [qtp1960493218-140575] ctodev org.sonatype.nexus.proxy.storage.local.fs.DefaultFSPeer - Could not delete file: /nexus-data/snapshots/com/somewhere/someplace/someproject/someartifact/2017R11-8fd74a7132-SNAPSHOT/someartifact-2017R11-8fd74a7132-20170926.142632-1.zip java.nio.file.NoSuchFileException: /nexus-data/snapshots/.nexus/tmp/someartifact-2017R11-8fd74a7132-20170926.142632-1.zipnx-tmp383300099789364522.nx-upload -> /nexus-data/snapshots/com/somewhere/someplace/someproject/someartifact/2017R11-8fd74a7132-SNAPSHOT/someartifact-2017R11-8fd74a7132-20170926.142632-1.zip {code} ",3 +"NEXUS-14459","09/29/2017 20:49:59","npm logout throws a 403 error","the npm login command works with no permissions, but to do a logout you get a 403 error.  Once the -delete permission is added to the user/role you are allowed to.  Nexus 3.5.2    {code:java} [user@chainsaw npm]$ npm logout npm ERR! Linux 4.12.13-300.fc26.x86_64 npm ERR! argv ""/usr/bin/node"" ""/usr/bin/npm"" ""logout"" npm ERR! node v6.11.2 npm ERR! npm v3.10.10 npm ERR! code E403 npm ERR! 403 Forbidden npm ERR! npm ERR! If you need help, you may report this error at: npm ERR! npm ERR! Please include the following file with any support request: npm ERR! /home/user/Desktop/files/npm/npm-debug.log {code}",3 +"NEXUS-14465","10/03/2017 00:40:37","PyPI hosted repository does not send etag header","Seems like the response from Nexus when downloading a hosted PyPI artifact doesn't include an etag or expires header.  This prevents pip from caching the artifact.  I see Maven handles this better by synthesizing an etag on upload if none is set:  [MavenFacetUtils.jav|https://github.com/sonatype/nexus-public/blob/1c8eff7e75a95cd96f4152e3f649245f21a76c66/plugins/nexus-repository-maven/src/main/java/org/sonatype/nexus/repository/maven/internal/MavenFacetUtils.java#L149]a You can see [here|https://github.com/pypa/pip/blob/a9d56c7734fd465d01437d61f632749a293e7805/src/pip/_vendor/cachecontrol/controller.py#L273-L279] for how pip handles the caching, and why an etag or expires header is desirable.   The response looks like:   HTTP/1.1 200 OK Date: Mon, 02 Oct 2017 16:49:10 GMT Server: Nexus/3.5.0-02 (OSS) X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Last-Modified: Mon, 25 Sep 2017 22:13:17 GMT Content-Type: application/zip Content-Length: 51711",1 +"NEXUS-14484","10/05/2017 22:13:27","Add support for proxying yum repositories that have sha1 checksums","If you proxy a yum repository in Nexus 3 whose remote has ""sha"" style checksums it will fail.   {noformat} 017-10-05 19:50:11,275+0000 WARN [qtp1956358891-277] *UNKNOWN org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: GET /repository/spacewalk-rhel7/repodata/repomd.xml java.lang.IllegalArgumentException: Unsupported hash sha at org.sonatype.nexus.repository.yum.internal.utils.YumFacetUtils.hashAlgorithmByName(YumFacetUtils.java:159) at org.sonatype.nexus.repository.yum.internal.metadata.RepomdChecksumAndSizeUpdater.lambda$0(RepomdChecksumAndSizeUpdater.java:73) at java.util.Optional.map(Optional.java:215) at org.sonatype.nexus.repository.yum.internal.metadata.RepomdChecksumAndSizeUpdater.checksum(RepomdChecksumAndSizeUpdater.java:73) at org.sonatype.nexus.repository.yum.internal.metadata.RepomdChecksumAndSizeUpdater.update(RepomdChecksumAndSizeUpdater.java:59) at org.sonatype.nexus.repository.yum.internal.metadata.RepomdProcessor.lambda$0(RepomdProcessor.java:59) at java.util.Optional.ifPresent(Optional.java:159) at org.sonatype.nexus.repository.yum.internal.metadata.RepomdProcessor.process(RepomdProcessor.java:59) at org.sonatype.nexus.repository.yum.internal.proxy.YumProxyFacetImpl.processRepomd(YumProxyFacetImpl.java:200){noformat} An example of this style can be seen here: [http://yum.spacewalkproject.org/2.5-client/RHEL/7/x86_64/repodata/]   As noted in the createrepo documentation: {noformat}       -s --checksum               Choose the checksum type used in repomd.xml and for packages in the metadata.  The default is now ""sha256"" (if python has  hashlib).  The               older  default  was  ""sha"",  which is actually ""sha1"", however explicitly using ""sha1"" doesn’t work on older (3.0.x) versions of yum, you               need to specify ""sha"". {noformat}   We should consider adding support for this style of checksum, since an and user is often not in control of the checksum format that is used on the remote of a proxy repository.",0.5 +"NEXUS-14488","10/06/2017 12:50:53","Cannot perform docker pull against some Docker-Hub proxy","Hi, I have Nexus OSS 3.6.0-02 installed running on the context path [http://10.105.139.17:8082/nexus] I have: - created a docker proxy repository to docker hub listening on 10.105.139.17:18001 - configured the docker client to allow insecure calls to the docker repository 10.105.139.17:18001 I can perform a search for jenkins docker images and get a resultset via: {code:java} [root@misvcdalmsndswa1 ~]# docker search 10.105.139.17:18000/jenkins NAME DESCRIPTION STARS OFFICIAL AUTOMATED jenkins Official Jenkins Docker image 3131 [OK] jenkinsci/jenkins Jenkins Continuous Integration and Deliver... 300 jenkins/jenkins The leading open source automation server 230 evarga/jenkins-slave This is a basic container to be used as a ... 103 [OK] stephenreed/jenkins-java8-maven-git Automated build that provides a continuous... 74 [OK] jenkinsci/jnlp-slave A Jenkins slave using JNLP to establish co... 66 [OK] jenkinsci/blueocean https://jenkins.io/projects/blueocean 64 jenkinsci/slave Base Jenkins slave docker image 27 [OK] killercentury/jenkins-dind Generic Jenkins CI with Docker Engine and ... 27 [OK] jenkinsci/ssh-slave A Jenkins SSH Slave docker image 26 [OK] cloudbees/jenkins-enterprise CloudBees Jenkins Enterprise (Rolling rele... 25 [OK] aespinosa/jenkins Sets up a container with jenkins installed... 22 [OK] codetroopers/jenkins-slave-jdk8-android 21 [OK] csanchez/jenkins-swarm-slave 19 [OK] jenkinsci/workflow-demo Demo of Jenkins Workflow feature. 15 mesosphere/jenkins Jenkins on DC/OS Docker image. 11 appcontainers/jenkins Centos/Debian/Ubuntu Based Customizable Je... 10 [OK] blacklabelops/jenkins Docker Jenkins Swarm-Ready with HTTPS and ... 10 [OK] killercentury/jenkins-slave-dind Generic Jenkins Slave with Docker Engine a... 9 [OK] cloudbees/jenkins-operations-center CloudBees Jenkins Operation Center (Rollin... 8 [OK] fabric8/jenkins-docker Fabric8 Jenkins Docker Image 8 [OK] xmartlabs/jenkins-android Jenkins image for Android development. 8 [OK] bitnami/jenkins Bitnami Docker Image for Jenkins 7 [OK] mesosphere/jenkins-dind Docker in Docker image for running Docker ... 7 tianon/jenkins-slave SSHd, Java, and Docker-in-Docker specifica... 7 [OK] {code} but cannot perform a docker login or docker pull {code:java} [root@misvcdalmsndswa1 ~]# docker login 10.105.139.17:18001 Username (dockerclient): Password: Error response from daemon: Get http://10.105.139.17:18001/v2/: error parsing HTTP 400 response body: invalid character '<' looking for beginning of value: ""\n\n\nError 400 \n\n\n

HTTP ERROR: 400

\n

Problem accessing /nexus/v2/token. Reason:\n

 Not a Docker request

\n
Powered by Jetty:// 9.3.20.v20170531
\n\n\n"" [root@misvcdalmsndswa1 ~]# docker pull 10.105.139.17:18000/jenkins Using default tag: latest Error response from daemon: Get http://10.105.139.17:18000/v2/jenkins/manifests/latest: error parsing HTTP 400 response body: invalid character '<' looking for beginning of value: ""\n\n\nError 400 \n\n\n

HTTP ERROR: 400

\n

Problem accessing /nexus/v2/token. Reason:\n

 Not a Docker request

\n
Powered by Jetty:// 9.3.20.v20170531
\n\n\n"" {code} My docker client details are: {code:java} $ cat /etc/docker/daemon.json { ""debug"": true, ""insecure-registries"": [ ""10.105.139.17:18001"" ] } $ docker --version Docker version 17.06.2-ce, build cec0b72 {code} Could you please confirm if this is a bug related to running Nexus OSS 3.6 on a context path /nexus or if this is a mis-configuration error. Many Thanks   Chris",1 +"NEXUS-14493","10/06/2017 18:25:01","directory to restore backups from should not be named ""backup""","The Database backup scheduled task asks for a directory to store database backups within. Naturally some users would want to store this some place under their existing karaf.data directory in a directory named 'backup. Unfortunately Nexus allows this, which means next time they try to start nexus, an automatic restore will be attempted. Worse, if there are more than two backups there, Nexus will not even start. h4. Expected * explicitly do not allow the task which performs backup to accept a target location which is the same location from which a restore will automatically take place * change the default restore location from $\{karaf.data}/backup to something much more obvious, like $\{karaf.data}/restore-from-backup  * do not worry about backwards restore compatibility to the old restore location - it was just a bad idea",2 +"NEXUS-14511","10/06/2017 19:04:08","ERROR failed to release FreezeRequest from DatabaseBackupTask","Database backup task may indicate successful completion, but also report ""fail to release FreezeRequest"". {noformat} 2017-10-04 01:00:00,022+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - Task information: 2017-10-04 01:00:00,093+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - ID: ab185ceb-4b0a-4cdd-8cfa-dc70f8a7a5f7 2017-10-04 01:00:00,093+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - Type: db.backup 2017-10-04 01:00:00,093+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - Name: db-backup-nexusng.example.com 2017-10-04 01:00:00,093+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - Description: Export configuration & metadata for backup 2017-10-04 01:00:00,115+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - task named 'db-backup-nexusng.example.com' database backup to location /nexus-data/nexus-backup/ 2017-10-04 01:00:00,459+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.quartz.internal.QuartzSchedulerSPI - Scheduler put into stand-by mode 2017-10-04 01:00:00,462+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskJob - Task not cancelable: 'db-backup-nexusng.example.com' [db.backup] 2017-10-04 01:00:00,463+0000 WARN [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.scheduling.internal.TaskActivation - Unable to cancel task: db-backup-nexusng.example.com 2017-10-04 01:00:06,174+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - database backup of analytics starting 2017-10-04 01:00:06,179+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - database backup of component starting 2017-10-04 01:00:08,888+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - database backup of security starting 2017-10-04 01:00:08,895+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - database backup of audit starting 2017-10-04 01:00:08,899+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - database backup of config starting 2017-10-04 01:00:08,904+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - database backup of accesslog starting 2017-10-04 01:00:14,135+0000 INFO [dbbackup-9-thread-4] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupRunner - database backup of audit completed successfully 2017-10-04 01:00:15,378+0000 INFO [dbbackup-9-thread-1] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupRunner - database backup of analytics completed successfully 2017-10-04 01:00:16,580+0000 INFO [dbbackup-9-thread-6] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupRunner - database backup of accesslog completed successfully 2017-10-04 01:00:23,269+0000 INFO [dbbackup-9-thread-3] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupRunner - database backup of security completed successfully 2017-10-04 01:00:29,307+0000 INFO [dbbackup-9-thread-2] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupRunner - database backup of component completed successfully 2017-10-04 01:00:30,871+0000 INFO [dbbackup-9-thread-5] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupRunner - database backup of config completed successfully 2017-10-04 01:00:30,886+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.quartz.internal.QuartzSchedulerSPI - Scheduler put into ready mode 2017-10-04 01:00:30,887+0000 ERROR [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - failed to release FreezeRequest{initiatorType=SYSTEM, initiatorId='db-backup-nexusng.example.com', timestamp=2017-10-04T01:00:00.122Z, nodeId='null'} 2017-10-04 01:00:30,887+0000 INFO [quartz-4-thread-20] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - Task complete {noformat} The message implies the database may be left ""frozen"". h4. Expected The ERROR message consequences need to be better understood and prevented if possible. If there is a marker file stored someplace and its presence changes behavior, then we need to capture that fact in a support zip in some place other than a log file ( ie. sysinfo.json? ) - -I suggest sysinfo.json because we cannot infinitely grow the support zip with included files- sounds like the actual contents of frozen.marker may be relevant, therefore will be relevant to include the actual file if present, in the support zip.",1 +"NEXUS-14512","10/06/2017 19:58:14","add anonymous search for docker repositories","As an extension to providing anonymous docker pull access we would also like to provide search capability.",1 +"NEXUS-14520","10/09/2017 16:08:55","Nexus unresponsive due to healthcheck asset download count","Nexus becomes unresponsive and CPU is high. Following threads are seen in the thread dump. {noformat} pool-21-thread-3 id=412 state=WAITING - waiting on <0x3976f8a9> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) - locked <0x3976f8a9> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) owned by pool-20-thread-1 id=216 at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:967) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1283) at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:727) at com.orientechnologies.common.concur.lock.OOneEntryPerKeyLockManager.acquireLock(OOneEntryPerKeyLockManager.java:169) at com.orientechnologies.common.concur.lock.OOneEntryPerKeyLockManager.acquireLock(OOneEntryPerKeyLockManager.java:101) at com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperationsManager.acquireReadLock(OAtomicOperationsManager.java:519) at com.orientechnologies.orient.core.index.sbtree.local.OSBTree$OSBTreeCursorForward.next(OSBTree.java:2066) at com.orientechnologies.orient.core.index.engine.OSBTreeIndexEngine$OSBTreeIndexCursor.nextEntry(OSBTreeIndexEngine.java:271) at com.orientechnologies.orient.core.index.OIndexAbstractCursor.next(OIndexAbstractCursor.java:97) at com.orientechnologies.orient.core.index.OIndexAbstractCursor.next(OIndexAbstractCursor.java:34) at com.orientechnologies.orient.core.index.OIndexChangesWrapper.next(OIndexChangesWrapper.java:154) at com.orientechnologies.orient.core.index.OIndexChangesWrapper.next(OIndexChangesWrapper.java:18) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.serialIterator(OCommandExecutorSQLSelect.java:1636) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchFromTarget(OCommandExecutorSQLSelect.java:1584) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchValuesFromIndexCursor(OCommandExecutorSQLSelect.java:2464) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchForIndexes(OCommandExecutorSQLSelect.java:2278) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchInClasses(OCommandExecutorSQLSelect.java:1019) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.assignTarget(OCommandExecutorSQLResultsetAbstract.java:209) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.assignTarget(OCommandExecutorSQLSelect.java:530) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:512) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:488) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:74) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:3208) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:3146) at com.orientechnologies.orient.core.sql.query.OSQLQuery.run(OSQLQuery.java:78) at com.orientechnologies.orient.core.sql.query.OSQLAsynchQuery.run(OSQLAsynchQuery.java:74) at com.orientechnologies.orient.core.query.OQueryAbstract.execute(OQueryAbstract.java:33) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.query(ODatabaseDocumentTx.java:755) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLUpdate.execute(OCommandExecutorSQLUpdate.java:291) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:74) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:3208) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:3146) at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69) at com.sonatype.nexus.plugins.healthcheck.downloads.AssetDownloadCountEntityAdapter.incrementCount(AssetDownloadCountEntityAdapter.java:392) at com.sonatype.nexus.plugins.healthcheck.downloads.AssetDownloadCountEntityAdapter.incrementCount(AssetDownloadCountEntityAdapter.java:282) at com.sonatype.nexus.plugins.healthcheck.downloads.CacheRemovalListener.lambda$0(CacheRemovalListener.java:55) at com.sonatype.nexus.plugins.healthcheck.downloads.CacheRemovalListener$$Lambda$222/1068609197.accept(Unknown Source) at org.sonatype.nexus.orient.transaction.OrientOperations.lambda$2(OrientOperations.java:63) at org.sonatype.nexus.orient.transaction.OrientOperations$$Lambda$105/715556946.run(Unknown Source) at org.sonatype.nexus.transaction.OperationPoint.lambda$0(OperationPoint.java:53) at org.sonatype.nexus.transaction.OperationPoint$$Lambda$106/1996542719.call(Unknown Source) at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:200) at org.sonatype.nexus.transaction.Operations.run(Operations.java:155) at org.sonatype.nexus.orient.transaction.OrientOperations.run(OrientOperations.java:63) at com.sonatype.nexus.plugins.healthcheck.downloads.CacheRemovalListener.onRemoval(CacheRemovalListener.java:52) at com.google.common.cache.RemovalListeners$1$1.run(RemovalListeners.java:51) at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) {noformat} See the following errors in the log: {noformat} 2017-10-09 14:16:05,826+0200 ERROR [pool-21-thread-2] anonymous com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - $ANSI{green {db=component}} Exception `7D7A47DF` in storage `component` com.orientechnologies.orient.core.exception.OCommandExecutionException: Error on execution of command: sql.select from assetdownloadcount WHERE node_id = ""41C4E904-CCB7359A-3056945C-A04D87F5-EA169947"" AND repository_name = ""public"" AND asset_name = ""org/aspectj/aspectjrt/1.8.6/aspectjrt-1.8.6.jar.sha1"" AND date_type = :dateType AND date = date('2017-10-01 00:00:00.000', 'yyyy-MM-dd HH:mm:ss.SSS') DB name=""component"" at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:3229) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:3146) at com.orientechnologies.orient.core.sql.query.OSQLQuery.run(OSQLQuery.java:78) at com.orientechnologies.orient.core.sql.query.OSQLAsynchQuery.run(OSQLAsynchQuery.java:74) at com.orientechnologies.orient.core.query.OQueryAbstract.execute(OQueryAbstract.java:33) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.query(ODatabaseDocumentTx.java:755) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLUpdate.execute(OCommandExecutorSQLUpdate.java:291) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:74) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:3208) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:3146) at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69) at com.sonatype.nexus.plugins.healthcheck.downloads.AssetDownloadCountEntityAdapter.incrementCount(AssetDownloadCountEntityAdapter.java:392) at com.sonatype.nexus.plugins.healthcheck.downloads.AssetDownloadCountEntityAdapter.incrementCount(AssetDownloadCountEntityAdapter.java:282) at com.sonatype.nexus.plugins.healthcheck.downloads.CacheRemovalListener.lambda$0(CacheRemovalListener.java:55) at org.sonatype.nexus.orient.transaction.OrientOperations.lambda$2(OrientOperations.java:63) at org.sonatype.nexus.transaction.OperationPoint.lambda$0(OperationPoint.java:53) at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:200) at org.sonatype.nexus.transaction.Operations.run(Operations.java:155) at org.sonatype.nexus.orient.transaction.OrientOperations.run(OrientOperations.java:63) at com.sonatype.nexus.plugins.healthcheck.downloads.CacheRemovalListener.onRemoval(CacheRemovalListener.java:52) at com.google.common.cache.RemovalListeners$1$1.run(RemovalListeners.java:51) at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NullPointerException: null {noformat} Workaround is to disable asset download count. [How do I disable recording download asset counts?|https://support.sonatype.com/hc/en-us/articles/115006490287-How-do-I-disable-recording-download-asset-counts-]",1 +"NEXUS-14521","10/09/2017 18:38:34","Pypi proxying is broken between 2 NXRM instances","We have several nexuses. The two in question are set up such that: * `A` nexus has a pypi group `pypi`, with several constituent repositories * `B` nexus has a pypi proxy repository pypi-upstream, configured with an upstream url of `https://A.example.com/repository/pypi/` We're seeing it fail to proxy artifacts correctly.   If we view `https://B.example.com/repository/pypi-upstream/simple/python-dateutil/` it shows no links. Invalidating the cache or rebuilding the index doesn't help. A tcpdump on nexus A shows that it is indeed sending a request, however the request it sends has an If-Modified-Since header, which consequently returns no results.   Nexus B accepts this, fills it's cache with a blank result (which is nonsense), and proxying is thus failing.   (Querying nexus A using curl presents many links for `https://A.example.com/repository/pypi/simple/python-dateutil/`, the packages are definitely there)  ",3 +"NEXUS-14528","10/10/2017 17:33:31","INFO log message is missing when a repository is deleted/created/changed","- -creating a repository- - -deleting a repository- - changing settings of a repository Are system changes and all system level changes need to be logged visibly at default log levels. For group repositories, the group members added or removed need to be logged explicitly. A concern is that logging the entire active group member list ( even the first level ) would create a very verbose log statement in some circumstances - this is why only first level additions and removals are requested. Yes - when the repo is first created, listing all the first level member ids is expected.",1 +"NEXUS-14593","10/11/2017 21:20:36","Errors reported when accessing NXRM3 via index.html","Intermittant errors have been reported when accessing NXRM3 via index.html (aka localhost:8081/index.html). See attached. No errors have been reported when using the site without index.html. Reportedly, this was carryover from NXRM2 (and was a result of old bookmarking). *Steps to Reproduce* * Edit _nexus.properties_ and set _nexus-context-path=/nexus/_ * Start nxrm and go to [http://localhost:8081/nexus/index.html]",1 +"NEXUS-14598","10/12/2017 18:13:40","Setting ""require user tokens for repository authentication"" prevents npm bearer tokens from working","If you enable  ""require user tokens for repository authentication"" under ""security/user tokens"" in the UI then publishing npm packages using npm bearer tokens no longer works. Expected:  Npm bearer tokens should continue to work regardless of the user token required setting. Bearer tokens are just as secure as user tokens. Also note that you cannot execute ""npm login"" using a user token, npm won't allow it due to the charachters in the username. So that doesn't provide a workaround: {noformat} $ npm login --registry=http://localhost:8081/repository/npmjs-internet/ Username: iqHO/VxE npm WARN Name must be lowercase Username: cMf2csEatr3M9Iq+yJxb5K8S3Y1+VhUXcSqvpKoafywC npm WARN Name must be lowercase Username: iqHO/VxE npm WARN Name must be lowercase Username: iaho/vxe npm WARN Name may not contain non-url-safe chars {noformat}  ",3 +"NEXUS-14603","10/12/2017 20:15:00","REST Asset Search JSON API","*Acceptance* * This sub-resource accepts the same inputs as NEXUS-11745 (search REST endpoint), except it replies with an ordered JSON list of assets * Until NEXUS-11744 (order by 'latest') is implemented, it's fine if the ordering is unspecified (e.g. it emerges from Elastic Search scoring) *Non-Requirements* (Just for clarity) * We're trying to avoid format-specific logic ** For maven, if people want the 'jar' (which was a default in NXRM2), then they specify that as a search parameter. maven.extension-jar ** Primary maven artifacts, as designated in POMs, aren't considered. Users have to ask for what they want. ** Similarly for PyPI, it's users' responsibility to know if they want an egg, a wheel, if they care, etc. and to specify the search accordingly",5 +"NEXUS-14604","10/12/2017 20:27:08","Yum proxy repository with relative paths in ""location"" cannot be proxied","This yum repository: [https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64] has relative paths in it's ""location"" tags in the primary.xml.gz file: {code:java} {code} It is not possible to create a proxy repository of this location in Nexus 3, because the ""location"" tags are not rewritten.  The yum client attempts to make a request to the ""../../pool"" location against nexus, and this is not valid.",2 +"NEXUS-14636","10/18/2017 18:13:07","allow customizing maven metadata rebuild db query buffer size and timeout values to mitigate IllegalStateException Timed out reading result from queue","Customers with large databases can have issues with the maven metadata rebuild with timeouts. Maven metadata can be rebuilt with the explicit task or as a side effect of snapshot removal tasks. Currently this implementation uses an asynchronous Orient query where Orient is feeding results into the backing queue faster than the metadata code can process them. Ultimately once the limits of the backing queue are hit (defaults are size 128, timeout 1 minute) then an error is thrown: {noformat} IllegalStateException: Timed out reading query result from queue 511695dd after 60 seconds{noformat} One of the approaches to alleviate this issue without looking at larger re-writes is that we want to make these values configurable *Acceptance*: * The {{MetadataRebuilder.browseGAVs}} query needs to ultimately use {{OrientAsyncHelper.asyncIterable}} with the {{bufferSize}} and {{timeoutSeconds}} options. This will require adding a {{StorageTx.browse}} that exposes these two params. * Configuration option for the buffer size in {{browseGAVs}} query. Default should be 1000 * Configuration option for the timeout in the {{browseGAVs}} query. Default should be 60 seconds",1 +"NEXUS-14639","10/18/2017 20:44:26","Add sha1 to asset resource on REST API","One outcome of NEXUS-14631, all agreed that sha1 (a universal attribute on all formats) should be part of the asset resource response in the API Acceptance * Add checksum to asset resource (AssetXO) * Should apply to /components, /assets, and /search",1 +"NEXUS-14646","10/19/2017 12:24:38","Etag is missing in http response for an artifact download from a proxy repository nexus3","Etag is missing in the http response for an artifact download from a proxy repository, however it works with hosted repository Nexus: 3.6.0-02 Repository type: proxy Format: maven2 Proxy: [http://repo1.maven.org/maven2/]   The http response in nexus2x is returned with Etag ",0 +"NEXUS-14653","10/19/2017 19:43:22","UI session time out not respected","Admin user login. Edits UI: Settings capability from default values. Authenticated User polling interval was set to 2 minutes Session timeout set to 3 minutes. Save capability. Logout. Login as admin user and wait on welcome screen. {noformat} 2017-10-19 15:12:04,209-0300 DEBUG [qtp1248985032-62] *SYSTEM org.eclipse.jetty.server.Server - REQUEST POST /service/rapture/session on HttpChannelOverHttp@760f6033{r=40,c=false,a=DISPATCHED,uri=//localhost:8081/service/rapture/session} 2017-10-19 15:12:04,213-0300 INFO [qtp1248985032-62] admin org.sonatype.nexus.rapture.internal.security.SessionServlet - Created session for user: admin 2017-10-19 15:12:04,214-0300 DEBUG [qtp1248985032-62] *SYSTEM org.eclipse.jetty.server.Server - handled=true async=false committed=false on HttpChannelOverHttp@760f6033{r=40,c=false,a=DISPATCHED,uri=//localhost:8081/service/rapture/session} {noformat} Stay on welcome screen. After approx *5* minutes ( not the expected 3) , UI timed out and prompts user that session will timeout in 30 seconds and begins count down. Allow the session to timeout. The UI sends an explicit request ( not user initiated ) to delete the session. {noformat} 2017-10-19 15:18:27,766-0300 DEBUG [qtp1248985032-224] *SYSTEM org.eclipse.jetty.server.Server - REQUEST DELETE /service/rapture/session on HttpChannelOverHttp@7ba4da46{r=194,c=false,a=DISPATCHED,uri=//localhost:8081/service/rapture/session} 2017-10-19 15:18:27,767-0300 INFO [qtp1248985032-224] admin org.sonatype.nexus.rapture.internal.security.SessionServlet - Deleting session for user: admin 2017-10-19 15:18:27,767-0300 DEBUG [qtp1248985032-224] *SYSTEM org.eclipse.jetty.server.Server - handled=true async=false committed=false on HttpChannelOverHttp@7ba4da46{r=194,c=false,a=DISPATCHED,uri=//localhost:8081/service/rapture/session} {noformat} h4. Expected The UI session timeout after inactivity should be respected for any new sessions while the regular polling the UI does should not be classified as 'activity'. h4. Reference https://groups.google.com/a/glists.sonatype.com/d/msgid/nexus-users/68d7050b-18bb-4793-b23b-f2efd8ec6306%40glists.sonatype.com?utm_medium=email&utm_source=footer  ",1 +"NEXUS-14671","10/24/2017 16:03:04","Missing repository recipe prevents startup","If a repository recipe cannot be found it prevents the startup Nexus.  This is a problem, because third party plugins often create new repository recipes, and it is very easy to forget to re-install a third party plugin during an upgrade.   Expected: An error should be logged if a repository recipe cannot be found, and the repository should either not be loaded, or should be disabled.  Nexus should still be able to start. {noformat} 2017-10-24 10:00:07,371-0500 INFO  [FelixStartLevel] *SYSTEM org.ehcache.jsr107.Eh107CacheManager - Registering Ehcache MBean javax.cache:type=CacheStatistics,CacheManager=file./Users/rseddon/nexus/nexus-3.6.0-02/etc/fabric/ehcache.xml,Cache=rubygems-proxy#negative-cache 2017-10-24 10:00:07,404-0500 ERROR [FelixStartLevel] *SYSTEM org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl - Failed transition: NEW -> STARTED java.lang.IllegalStateException: Missing recipe: apt-proxy at com.google.common.base.Preconditions.checkState(Preconditions.java:518) at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.recipe(RepositoryManagerImpl.java:136) at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.newRepository(RepositoryManagerImpl.java:154) at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.restoreRepositories(RepositoryManagerImpl.java:244) at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.doStart(RepositoryManagerImpl.java:226) at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:153) at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:93) at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:188) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) at java.lang.Thread.run(Thread.java:748) 2017-10-24 10:00:07,406-0500 ERROR [FelixStartLevel] *SYSTEM org.sonatype.nexus.extender.NexusContextListener - Failed to start nexus java.lang.IllegalStateException: Missing recipe: apt-proxy at com.google.common.base.Preconditions.checkState(Preconditions.java:518) at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.recipe(RepositoryManagerImpl.java:136) at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.newRepository(RepositoryManagerImpl.java:154) at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.restoreRepositories(RepositoryManagerImpl.java:244) at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.doStart(RepositoryManagerImpl.java:226) at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:153) at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:93) at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:188) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) at java.lang.Thread.run(Thread.java:748) ERROR: Framework listener delivery error. java.lang.IllegalStateException: Missing recipe: apt-proxy at com.google.common.base.Preconditions.checkState(Preconditions.java:518) at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.recipe(RepositoryManagerImpl.java:136) at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.newRepository(RepositoryManagerImpl.java:154) at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.restoreRepositories(RepositoryManagerImpl.java:244) at org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl.doStart(RepositoryManagerImpl.java:226) at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:153) at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:93) at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:188) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) at java.lang.Thread.run(Thread.java:748){noformat}",1 +"NEXUS-14729","11/01/2017 19:29:29","Regression: Nexus 3 returns 501, 400 and 204 responses for MKCOL requests","Nexus 3 returns 501, 400, and 204 responses for MKCOL requests:   {quote}127.0.0.1 - admin [01/Nov/2017:13:37:07 -0500] ""MKCOL /repository/ HTTP/1.1"" 400 0 1 ""Jakarta Commons-HttpClient/3.1"" 127.0.0.1 - admin [01/Nov/2017:13:37:07 -0500] ""MKCOL /repository/raw/site/ HTTP/1.1"" 204 0 1 ""Jakarta Commons-HttpClient/3.1"" 127.0.0.1 - admin [01/Nov/2017:13:37:07 -0500] ""MKCOL /repository/raw/ HTTP/1.1"" 400 0 1 ""Jakarta Commons-HttpClient/3.1"" 127.0.0.1 - admin [01/Nov/2017:13:37:07 -0500] ""MKCOL /repository/ HTTP/1.1"" 400 0 2 ""Jakarta Commons-HttpClient/3.1"" 127.0.0.1 - - [01/Nov/2017:13:37:07 -0500] ""MKCOL / HTTP/1.1"" 501 0 1 ""Jakarta Commons-HttpClient/3.1"" {quote}   It should be returning 405. This is covered here for Nexus 2.x: https://issues.sonatype.org/browse/NEXUS-6169 It is currently returning 400 for MKCOL within a repository, and 501 for MKCOL to the context root, and 204 for other directory creation requests.   This error response can break builds, and cause HTTP monitoring alarms to be raised when they should not be. The 204 responses are causing the maven-site-plugin to make separate MKCOL requests to create each parent directory individually, rather than giving up after the first 405 is received.  This causes site deploys to Nexus Repo 3 to take much longer than they did for Nexus Repo 2, even though the time for processing the PUT requests is faster in Repo 3. Here is a sample of requests for Nexus Repo 2: {quote}123.123.123.123 - admin [13/Jun/2019:14:29:18 -0400] ""MKCOL /nexus/content/sites/site/org/foo/bar/fubar/tools/blah/project/0.0.1-SNAPSHOT/images/ HTTP/1.1"" 405 654 4 123.123.123.123 - admin [13/Jun/2019:14:29:18 -0400] ""PUT /nexus/content/sites/site/org/foo/bar/fubar/tools/blah/project/0.0.1-SNAPSHOT/./images/icon_warning.gif HTTP/1.1"" 201 0 7 {quote} And Nexus Repo 3: {quote}123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] ""MKCOL /nxrm/repository/site/org/foo/bar/fubar/tools/blah/project/0.0.1-SNAPSHOT/images/ HTTP/1.1"" 204 0 0 1 123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] ""MKCOL /nxrm/repository/site/org/foo/bar/fubar/tools/blah/project/0.0.1-SNAPSHOT/ HTTP/1.1"" 204 0 0 1 123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] ""MKCOL /nxrm/repository/site/org/foo/bar/fubar/tools/blah/project/ HTTP/1.1"" 204 0 0 1 123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] ""MKCOL /nxrm/repository/site/org/foo/bar/fubar/tools/blah/ HTTP/1.1"" 204 0 0 1 123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] ""MKCOL /nxrm/repository/site/org/foo/bar/fubar/tools/ HTTP/1.1"" 204 0 0 1 123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] ""MKCOL /nxrm/repository/site/org/foo/bar/fubar/ HTTP/1.1"" 204 0 0 2 123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] ""MKCOL /nxrm/repository/site/org/foo/bar/ HTTP/1.1"" 204 0 0 1 123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] ""MKCOL /nxrm/repository/site/org/foo/ HTTP/1.1"" 204 0 0 1 123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] ""MKCOL /nxrm/repository/site/org/ HTTP/1.1"" 204 0 0 2 123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] ""MKCOL /nxrm/repository/site/ HTTP/1.1"" 400 0 0 2 123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] ""MKCOL /nxrm/repository/ HTTP/1.1"" 400 0 0 1 123.123.123.123 - - [13/Jun/2019:14:06:46 -0400] ""MKCOL /nxrm/ HTTP/1.1"" 501 0 0 0 123.123.123.123 - - [13/Jun/2019:14:06:46 -0400] ""MKCOL /nxrm/ HTTP/1.1"" 501 0 0 1 123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] ""PUT /nexus/content/sites/site/org/foo/bar/fubar/tools/blah/project/0.0.1-SNAPSHOT/./images/icon_warning.gif HTTP/1.1"" 201 0 7 {quote} As you can imagine, for a large site deploy all those extra MKCOL requests become very time consuming. *Expected*: Nexus Repo 3 should return HTTP 405 (method not allowed) for all MKCOL requests, just as Nexus Repo 2 does.  ",2 +"NEXUS-14837","11/07/2017 20:13:57","Script to report blob and repository size and space reclaimable by Compact Blobstore task","Customers are trying to understand how NXRM is using their disk space; currently it's hard for them to ascribe the size of a blob store to particular repositories. This is a simpler version of NEXUS-13056. h4. Acceptance * Admins can run a script to read the properties files of a blob store to summarize which repositories are using the blob store, and how much space each is consuming * Tabulate both the total size, and the size that could be reclaimed by compacting (i.e. soft-deleted blobs) h4. Solution We have a script that iterates over all files in a single blobstore and reports the total size of all files per repository in that blobstore and the amount of disk that could be reclaimed by running a compact blobstore task on that blobstore. # Visit this support page: [https://support.sonatype.com/hc/en-us/articles/115009519847] # Follow the instructions for *Listing the Size of File-based Repositories and Blobstores*",2 +"NEXUS-14838","11/07/2017 20:31:26","Random version deleted if there are multiple versions with same digest","Issue: If multiple image version exist with same digest/sha value, nexus randomly picks and deletes any one version. Usecase: Developers build snapshots as part of CI/CD process during development phase. Final snapshot is tagged as release version so digest stays the same. Developer tries to delete the snapshot version using the API but nexus randomly deletes any version that has the same digest. Command used to delete : curl -v -X DELETE -u ':' https://:/v2//manifests/   Fix Suggestion: Option1 : Digest should be unique per version Option2: Expose delete API that accepts version in the input request so clients know which exact version will be deleted.",3 +"NEXUS-14839","11/08/2017 06:28:02"," Hosted nuget repository ignore the framework version, always returns the .NET Core Version","As per issue reported here:  [https://groups.google.com/a/glists.sonatype.com/forum/?utm_medium=email&utm_source=footer#!msg/nexus-users/f-CDUV-OqAQ/H2EdCL1pBgAJ] the behavior when installing a package from a hosted repo is different to that from nuget.org, a nexus proxy to nuget.org, using klondike, or using nugetserver.org's implementation. In all cases except the nexus hosted repo, the behavior is the same - the others all return the .NET Framework version and it's dependencies whereas the hosted nexus repo returns the .NETCore version and it's dependencies. The referenced thread contains a project which will demonstrate the problem but as a minimal example of the problem, create a new empty nexus repo and put *only* System.Threading.Tasks 4.3.0 in it - you can get that from here: [https://www.nuget.org/packages/System.Threading.Tasks/] You can see that the .Net framework version has no dependencies at all, whereas the .NET Core version has dependencies. Now create an empty folder somewhere and in that folder, try to install System.Threading.Tasks and you will see the output as per the nuget-nexus.jpg image I attached.  The package failed to install because of the .NET Core dependencies which are not available in this repo. Then try the same thing with a local klondike instance - or indeed with nuget.org, though of course this will have all the dependencies available so you aren't really comparing like with like (ie repositories containing only this single package). The attached nuget-klondike.jpg image shows that using the klondike repo, the package was successfully installed. I was using the latest nexus-3.6.0-02 from your website. https://docs.microsoft.com/en-us/nuget/schema/target-frameworks  ",2 +"NEXUS-14860","11/09/2017 20:36:51","Rebuild maven repository metadata task bloats blobstore","h2. Description # Start up Nexus with a clean blob store # Deploy a Maven project into a hosted release repository # Scan the blobstore with ""find . -name ""*.properties""|xargs grep deleted=true"", observe there are no deleted blobs # Schedule and run a rebuild repository metadata task against the repository you deployed into # Scan the blobstore again, observer there are now 3 deleted blobs for each maven-metadata.xml file # Run the task again # Scan the blobstore again, observe there are now an additional 3 deleted blobs for each maven-metadata.xml file h2. Expected Rebuilt maven-metadata.xml files should only be written out if they have changed from the previous version.  This means that it is expected that the first run of the task will delete all the existing maven-metadata.xml files and their checksums, since Nexus does not build the files in the same format as Maven. The consequence of this behavior is that blob storage gets unnecessarily full of deleted files, consuming way more space than is needed, and running a compact blob store task can take a very long time to complete. The hope is two things: * avoid replacing the blob with an identical blob - if the hashes match, leave the original in place (and see if there's a way to purge the rejected candidate replacement) * another thing to consider would be hard-deleting maven-metadata files immediately instead of soft-deleting them (as long as that's not a weird special case down in generic asset code); this would stop blobstores getting bloated with soft-deleted derived content",3 +"NEXUS-14869","11/10/2017 18:02:54","nuget list against a www.nuget.org/api/v2/ proxy repository returns partial results","Tested with NuGet CLI 4.3.0 nuget list -Verbosity detailed jquery -Source http://localhost:8081/repository/nuget.org-proxy/ pages results 3 times nuget list -Verbosity detailed jquery -Source https://www.nuget.org/api/v2/ pages results 40 times Attached is a charles capture showing both commands for comparison against Nexus 3.6.0. h4. Expected There should be no difference in results paged through for identical queries. ",3 +"NEXUS-14878","11/13/2017 13:36:29","Artifact with no maven group is redeployed when ""Disable redeploy"" is set on maven hosted repo","It is possible to redeploy artifacts when Deployment Policy is set to ""Disable redeploy"". This only happens when the artifact has no maven group. Steps to reproduce: 1) Create a maven hosted repo with the following setting: Layout Policy : Permissive Deployment Policy: Disable redeploy. 2) Upload a file to [http://localhost:8081/repository/maven-hosted/TestZip/1.0.0/TestZip-1.0.0.zip] 3) Upload again to the same path. This should not be allowed. [http://localhost:8081/repository/maven-hosted/TestZip/1.0.0/TestZip-1.0.0.zip] If a maven group is present in the path then the redeploy is prevented   *Acceptance* Attempts to redeploy should be prevented.",1 +"NEXUS-14885","11/15/2017 15:08:02","Remove support for the non-gzipped specs 4.8 from Rubygems","Remove support for rubygems specs 4.8 file for performance reasons and deprecated repository format feature. This file is an uncompressed repository-wide index and Rubygems.org no longer supports it since it has been replaced by other more efficient indexes.",2 +"NEXUS-14940","11/16/2017 02:52:18","deprecate /service/siesta part of REST API urls","*Background* This is seemingly cosmetic issue for the REST API. I think it was discussed in the past, as we were planning development of long term public REST API for Nexus 3, but I don't see an issue to track it. The REST APIs are being mounted under - /service/siesta/rest/beta/tasks - /service/siesta/rest/v1/tasks The /service/siesta part was not intended to be a long term mount point. To my knowledge it was only kept to make getting /service/siesta/rest/v1/script out the door quicker. *Acceptance* * Expose the NXRM 3 public REST api under /service/rest/v1 * This includes the existing scripting endpoint, so update the examples for the scripting API * the previous /service/siesta/rest/v1/script endpoint has been moved to /service/rest/v1/script - there is no shim - release notes will announce scripts depending on the old URL will need to be updated ",3 +"NEXUS-14969","11/21/2017 20:39:03","HA-C nodes do not rejoin their cluster after cluster shutdown","Given an HA-C cluster, when nodes that were previously members of the cluster have been shut down, the nodes will not always properly rejoin the cluster. The following errors have been encountered in the log files: {code} 2017-11-21 07:18:04,448+0000 ERROR [FelixStartLevel] *SYSTEM com.sonatype.nexus.hazelcast.internal.orient.SharedHazelcastPlugin - [F7E2EC33-6D42028D-074D8BDF-2EED45CB-ABC97A45] No LSN found for delta sync for database 'accesslog'. Asking for full database sync... {code} Additionally, there may be error messages similar to the following: {code} Caused by: com.orientechnologies.orient.server.distributed.ODistributedException: Quorum (1) cannot be reached on server 'XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX' database 'config' because it is major than the nodes in quorum (0) {code} h4. Reproduce To reproduce, here is a brief description of what was done: 1) Start up Nexus1 in the 3-node cluster 2) Start up Nexus2 in the 3-node cluster 3) Start up Nexus3 in the 3-node cluster 4) Add some config to Nexus like new repositories, new users, etc. 5) Stop Nexus1 6) Stop Nexus2 7) Stop Nexus3 8) Try to start up Nexus1 or Nexus2 but an error will occur: {noformat} 2017-11-21 16:29:09,561+0000 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.extender.NexusLifecycleManager - Start TASKS 2017-11-21 16:29:09,656+0000 WARN [FelixStartLevel] *SYSTEM org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Execution failed com.orientechnologies.orient.server.distributed.ODistributedException: Quorum (2) cannot be reached on server 'F7E2EC33-6D42028D-074D8BDF-2EED45CB-ABC97A45' database 'config' because it is major than available nodes (1) at com.orientechnologies.orient.server.distributed.impl.ODistributedDatabaseImpl.calculateQuorum(ODistributedDatabaseImpl.java:1061) at com.orientechnologies.orient.server.distributed.impl.ODistributedDatabaseImpl.send2Nodes(ODistributedDatabaseImpl.java:430) at com.orientechnologies.orient.server.distributed.impl.ODistributedAbstractPlugin.sendRequest(ODistributedAbstractPlugin.java:584) at com.orientechnologies.orient.server.distributed.impl.ODistributedTransactionManager.commit(ODistributedTransactionManager.java:162) {noformat} 9) If you try to start Nexus3, then it starts up. h4. Expected There should not be a defined order to which nodes must rejoin the cluster after being shutdown. h4. Workaround The only workaround seems to be to abandon the two nodes that won't start, and add two new nodes to the one working node. ",3 +"NEXUS-15088","11/29/2017 23:28:04","Incorrect error response code 406 for bad ID in DELETE /component","If you take a real, but incorrect ID (such as an asset ID) and use it as a component ID in {{DELETE /component/\{id}}}, you get a 406 response. Acceptance * Should be considered a malformed ID and return a 422 response",0.5 +"NEXUS-15089","11/29/2017 23:30:36","Error response code 204 not listed in REST API codes for component and asset delete","While testing, I entered a ID into the REST API via the UI and submitted it and was returned (the expected) 204 response code. I noticed it was not listed in the status code list however. Acceptance * Add Swagger doc for 204 response for successful component or asset delete",0.5 +"NEXUS-15090","11/29/2017 23:38:18","Asset search does not treat short and long parameter names the same","Using the shortened parameter names produces the expected result: {code} http -a admin:admin123 GET ':8081/service/siesta/rest/beta/search/assets?maven.groupId=org.osgi&maven.artifactId=org.osgi.core&maven.baseVersion=4.3.1&maven.extension=pom' HTTP/1.1 200 OK Content-Length: 518 Content-Type: application/json Date: Wed, 29 Nov 2017 23:32:29 GMT Server: Nexus/3.7.0-SNAPSHOT (OSS) X-Content-Type-Options: nosniff X-Frame-Options: SAMEORIGIN { ""continuationToken"": null, ""items"": [ { ""checksum"": { ""md5"": ""3d87a59bcdb4b131d9a63e87e0ed924a"", ""sha1"": ""79391fc69dd72ad1fd983d01b4572f93f644882b"" }, ""downloadUrl"": ""http://localhost:8081/repository/maven-central/org/osgi/org.osgi.core/4.3.1/org.osgi.core-4.3.1.pom"", ""format"": ""maven2"", ""id"": ""bWF2ZW4tY2VudHJhbDplMDE4OGVkMDcyOGZhNjhmNDExNzU2OGU1MjQ2NjZiYg"", ""path"": ""org/osgi/org.osgi.core/4.3.1/org.osgi.core-4.3.1.pom"", ""repository"": ""maven-central"" } ] } {code} But using the long name for extension does not: {code} http -a admin:admin123 GET ':8081/service/siesta/rest/beta/search/assets?maven.groupId=org.osgi&maven.artifactId=org.osgi.core&maven.baseVersion=4.3.1&assets.attributes.maven2.extension=pom' HTTP/1.1 200 OK Content-Length: 988 Content-Type: application/json Date: Wed, 29 Nov 2017 23:32:51 GMT Server: Nexus/3.7.0-SNAPSHOT (OSS) X-Content-Type-Options: nosniff X-Frame-Options: SAMEORIGIN { ""continuationToken"": null, ""items"": [ { ""checksum"": { ""md5"": ""8053bbc1b55d51f5abae005625209d08"", ""sha1"": ""5458ffe2ba049e76c29f2df2dc3ffccddf8b839e"" }, ""downloadUrl"": ""http://localhost:8081/repository/maven-central/org/osgi/org.osgi.core/4.3.1/org.osgi.core-4.3.1.jar"", ""format"": ""maven2"", ""id"": ""bWF2ZW4tY2VudHJhbDpkMDY0ODA0YThlZDVhZDZlNjhmZGU5MWNmM2NiZTgzMw"", ""path"": ""org/osgi/org.osgi.core/4.3.1/org.osgi.core-4.3.1.jar"", ""repository"": ""maven-central"" }, { ""checksum"": { ""md5"": ""3d87a59bcdb4b131d9a63e87e0ed924a"", ""sha1"": ""79391fc69dd72ad1fd983d01b4572f93f644882b"" }, ""downloadUrl"": ""http://localhost:8081/repository/maven-central/org/osgi/org.osgi.core/4.3.1/org.osgi.core-4.3.1.pom"", ""format"": ""maven2"", ""id"": ""bWF2ZW4tY2VudHJhbDplMDE4OGVkMDcyOGZhNjhmNDExNzU2OGU1MjQ2NjZiYg"", ""path"": ""org/osgi/org.osgi.core/4.3.1/org.osgi.core-4.3.1.pom"", ""repository"": ""maven-central"" } ] } {code} These two searches should produce the same result, since {{maven.extension}} is mapped to {{assets.attributes.maven2.extension}}.",1 +"NEXUS-15095","12/01/2017 11:51:35","MissingBlobException can occur when publishing maven index","Hello I configured * a blobstore 'central' with ** proxy-repo for maven-central * a blobstore 'test-index' with ** a hosted-repo 'test-index-hosted' ** a group-repo 'test-index' which groups 'central' and 'test-index-hosted The indices for 'maven-central' and 'test-index-hosted' are created and published When i execute the task 'Publish Maven indexes of test-index', it finishes with an error and I get the following stacktrace   {code:java} 2017-12-01 12:25:25,441+0100 INFO  [qtp1777780842-42]  flindermaier org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'publish test-index' [repository.maven.publish-dotindex] runNow 2017-12-01 12:25:25,442+0100 INFO  [qtp1777780842-42]  flindermaier org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'publish test-index' [repository.maven.publish-dotindex] state change WAITING -> RUNNING 2017-12-01 12:25:25,475+0100 INFO  [quartz-3-thread-10]  *SYSTEM org.sonatype.nexus.repository.maven.tasks.PublishMavenIndexTask - Task log: /app/nexus/sonatype-work/nexus3/log/tasks/repository.maven.publish-dotindex-20171201122525.log 2017-12-01 12:25:25,520+0100 WARN  [quartz-3-thread-10]  *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob b0a34d2c-bc78-4914-b9cb-655d1921df3f (/app/nexus/sonatype-work/nexus3/blobs/test-index/content/vol-16/chap-21/b0a34d2c-bc78-4914-b9cb-655d1921df3f.properties) 2017-12-01 12:25:25,533+0100 WARN  [quartz-3-thread-10]  *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob b0a34d2c-bc78-4914-b9cb-655d1921df3f (/app/nexus/sonatype-work/nexus3/blobs/test-index/content/vol-16/chap-21/b0a34d2c-bc78-4914-b9cb-655d1921df3f.properties) 2017-12-01 12:25:25,557+0100 WARN  [quartz-3-thread-10]  *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob b0a34d2c-bc78-4914-b9cb-655d1921df3f (/app/nexus/sonatype-work/nexus3/blobs/test-index/content/vol-16/chap-21/b0a34d2c-bc78-4914-b9cb-655d1921df3f.properties) 2017-12-01 12:25:25,599+0100 WARN  [quartz-3-thread-10]  *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob b0a34d2c-bc78-4914-b9cb-655d1921df3f (/app/nexus/sonatype-work/nexus3/blobs/test-index/content/vol-16/chap-21/b0a34d2c-bc78-4914-b9cb-655d1921df3f.properties) 2017-12-01 12:25:25,671+0100 WARN  [quartz-3-thread-10]  *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob b0a34d2c-bc78-4914-b9cb-655d1921df3f (/app/nexus/sonatype-work/nexus3/blobs/test-index/content/vol-16/chap-21/b0a34d2c-bc78-4914-b9cb-655d1921df3f.properties) 2017-12-01 12:25:25,787+0100 WARN  [quartz-3-thread-10]  *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob b0a34d2c-bc78-4914-b9cb-655d1921df3f (/app/nexus/sonatype-work/nexus3/blobs/test-index/content/vol-16/chap-21/b0a34d2c-bc78-4914-b9cb-655d1921df3f.properties) 2017-12-01 12:25:25,995+0100 WARN  [quartz-3-thread-10]  *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob b0a34d2c-bc78-4914-b9cb-655d1921df3f (/app/nexus/sonatype-work/nexus3/blobs/test-index/content/vol-16/chap-21/b0a34d2c-bc78-4914-b9cb-655d1921df3f.properties) 2017-12-01 12:25:26,349+0100 WARN  [quartz-3-thread-10]  *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob b0a34d2c-bc78-4914-b9cb-655d1921df3f (/app/nexus/sonatype-work/nexus3/blobs/test-index/content/vol-16/chap-21/b0a34d2c-bc78-4914-b9cb-655d1921df3f.properties) 2017-12-01 12:25:27,137+0100 WARN  [quartz-3-thread-10]  *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob b0a34d2c-bc78-4914-b9cb-655d1921df3f (/app/nexus/sonatype-work/nexus3/blobs/test-index/content/vol-16/chap-21/b0a34d2c-bc78-4914-b9cb-655d1921df3f.properties) 2017-12-01 12:25:27,138+0100 WARN  [quartz-3-thread-10]  *SYSTEM org.sonatype.nexus.repository.storage.StorageTxImpl - Reached max retries: 8/8 2017-12-01 12:25:27,138+0100 ERROR [quartz-3-thread-10]  *SYSTEM org.sonatype.nexus.repository.maven.tasks.PublishMavenIndexTask - Failed to run task 'Publish Maven indexes of test-index' on repository 'test-index' org.sonatype.nexus.repository.storage.RetryDeniedException: Reached max retries: 8/8     at org.sonatype.nexus.repository.storage.StorageTxImpl.allowRetry(StorageTxImpl.java:220)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:498)     at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53)     at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:69)     at com.sun.proxy.$Proxy226.allowRetry(Unknown Source)     at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:81)     at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54)     at org.sonatype.nexus.repository.maven.internal.MavenIndexPublisher$Maven2WritableResource.read(MavenIndexPublisher.java:446)     at org.apache.maven.index.reader.Utils.loadProperties(Utils.java:87)     at org.apache.maven.index.reader.IndexReader.(IndexReader.java:68)     at org.sonatype.nexus.repository.maven.internal.MavenIndexPublisher.publishMergedIndex(MavenIndexPublisher.java:175)     at org.sonatype.nexus.repository.maven.internal.group.IndexGroupFacet.publishIndex(IndexGroupFacet.java:58)     at org.sonatype.nexus.repository.maven.tasks.PublishMavenIndexTask.execute(PublishMavenIndexTask.java:37)     at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:69)     at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:93)     at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145)     at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:108)     at org.quartz.core.JobRunShell.run(JobRunShell.java:202)     at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40)     at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120)     at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108)     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)     at java.util.concurrent.FutureTask.run(FutureTask.java:266)     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)     at java.lang.Thread.run(Thread.java:745) Caused by: org.sonatype.nexus.repository.storage.MissingBlobException: Blob central@CA71B3A3-8AD8596C-BA4EA65F-2E0B43F9-211B8693:b0a34d2c-bc78-4914-b9cb-655d1921df3f exists in metadata, but is missing from the blobstore     at org.sonatype.nexus.repository.storage.StorageTxImpl.requireBlob(StorageTxImpl.java:891)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:498)     at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53)     at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39)     at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270)     at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53)     at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63)     at com.sun.proxy.$Proxy226.requireBlob(Unknown Source)     at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.get(MavenFacetImpl.java:183)     at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56)     ... 20 common frames omitted 2017-12-01 12:25:27,140+0100 WARN  [quartz-3-thread-10]  *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskJob - Task c5232fea-5363-4153-9fcc-27cad2e6e51f : 'publish test-index' [repository.maven.publish-dotindex] execution failure org.sonatype.goodies.common.MultipleFailures$MultipleFailuresException: Failed to run task 'Publish Maven indexes of test-index'; 1 failure     at org.sonatype.goodies.common.MultipleFailures.maybePropagate(MultipleFailures.java:95)     at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:77)     at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:93)     at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145)     at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:108)     at org.quartz.core.JobRunShell.run(JobRunShell.java:202)     at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40)     at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120)     at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108)     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)     at java.util.concurrent.FutureTask.run(FutureTask.java:266)     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)     at java.lang.Thread.run(Thread.java:745)     Suppressed: org.sonatype.nexus.repository.storage.RetryDeniedException: Reached max retries: 8/8         at org.sonatype.nexus.repository.storage.StorageTxImpl.allowRetry(StorageTxImpl.java:220)         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         at java.lang.reflect.Method.invoke(Method.java:498)         at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53)         at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:69)         at com.sun.proxy.$Proxy226.allowRetry(Unknown Source)         at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:81)         at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54)         at org.sonatype.nexus.repository.maven.internal.MavenIndexPublisher$Maven2WritableResource.read(MavenIndexPublisher.java:446)         at org.apache.maven.index.reader.Utils.loadProperties(Utils.java:87)         at org.apache.maven.index.reader.IndexReader.(IndexReader.java:68)         at org.sonatype.nexus.repository.maven.internal.MavenIndexPublisher.publishMergedIndex(MavenIndexPublisher.java:175)         at org.sonatype.nexus.repository.maven.internal.group.IndexGroupFacet.publishIndex(IndexGroupFacet.java:58)         at org.sonatype.nexus.repository.maven.tasks.PublishMavenIndexTask.execute(PublishMavenIndexTask.java:37)         at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:69)         ... 12 common frames omitted     Caused by: org.sonatype.nexus.repository.storage.MissingBlobException: Blob central@CA71B3A3-8AD8596C-BA4EA65F-2E0B43F9-211B8693:b0a34d2c-bc78-4914-b9cb-655d1921df3f exists in metadata, but is missing from the blobstore         at org.sonatype.nexus.repository.storage.StorageTxImpl.requireBlob(StorageTxImpl.java:891)         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         at java.lang.reflect.Method.invoke(Method.java:498)         at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53)         at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39)         at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270)         at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53)         at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63)         at com.sun.proxy.$Proxy226.requireBlob(Unknown Source)         at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.get(MavenFacetImpl.java:183)         at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56)         ... 20 common frames omitted 2017-12-01 12:25:27,142+0100 INFO  [quartz-3-thread-10]  *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'publish test-index' [repository.maven.publish-dotindex] state change RUNNING -> WAITING (FAILED) {code} The attatched picture shows  that the missing file in the hosted repo is the '.index/nexus-maven-repository-index.properties' from the 'maven-central' proxy-repo which is stored inside the 'central'-blobstore. When I browse the asset inside 'maven-central' then i can download it. When I browse the asset inside 'test-index' then i get a http-404. All other maven artifacts are downloadable.   When I remove 'maven-central' from 'test-index' or store it inside the same blobstore then there are no issues and everything works fine    ",3 +"NEXUS-15105","12/01/2017 22:34:10","No Yum specific search fields defined in Documentation","I noticed that the yum specific search fields are not defined in the documentation (specifically https://help.sonatype.com/display/NXRM3/Searching+for+Components#SearchingforComponents-SearchCriteriaandComponentAttributes). This seems an oversight.",1 +"NEXUS-15131","12/05/2017 20:50:25","Component naming for Yum Proxy does not match RPM header","Yum Proxy does not use the correct naming conventions for components. This is inconsistent and could cause problems in the future. Also, the versioning does not include the release number. *Example* For the package GeoIP-1.5.0-11.el7.x86_64.rpm Component name for proxy = GeoIP-1.5.0-11.el7.x86_64 Expected component name = GeoIP Version field for both = 1.5.0 *Acceptance Criteria* * Yum proxy should use the name from the RPM header (i.e. GeoIP). * Existing Yum Proxy repositories should be upgraded so those already fetched components use the new naming convention. * Yum proxy should include the release number in the version (1.5.0-11.el7). * Existing components in Yum Proxy repositories should be upgraded to use the new versioning.",3 +"NEXUS-15136","12/06/2017 20:44:42","Repository List REST endpoint","Create a new REST endpoint for Repository interaction; initial phase will only support a small number of operations *Acceptance* * User has the ability to retrieve the list of configured repositories in NXRM3 * Returned information should include, at a minimum, the unique repository name, format, and location (URL) ** Consider including additional metadata during implementation as desired * Visibility of repos through this endpoint should match the visibility of repos on the UI - it should abide by the same permission scheme *Notes* * 'Bucket' doesn't have format on it, so unlike the other REST endpoints this will probably be driven by the config db.",3 +"NEXUS-15147","12/07/2017 20:10:31","Multiple edits of user roles fails with: ConcurrentModificationException: User-role mapping","When adding multiple roles to an LDAP user in multiple steps, the second role will fail to save and the UI shows an error like: ""Warning: user-role mapping 'USERID' updated in the meantime""  Steps to reproduce. # Setup LDAP # Search for (via Source: LDAP, and search box) and Select an LDAP user.  # Add a role from the ""Available"" list to the ""Granted"" list. Click Save. # Add a second role from the ""Available"" list to the ""Granted"" list. Click Save. Boom! The warning above is shown, and the change is not saved, nor will retries save the change. Example: After saving first role: !RoleAdd1.png!   Failed save of second role: !RoleAdd2Error.png! Support.zip from reproduce case: [^support-20171207-145031-1.zip] Stack trace: {code:java} 2017-12-07 14:45:07,638-0500 ERROR [qtp2112162151-206] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_User.updateRoleMappings, java-method: org.sonatype.nexus.coreui.UserComponent.updateRoleMappings java.util.ConcurrentModificationException: User-role mapping 'elva.kanter' updated in the meantime at org.sonatype.nexus.internal.security.model.OrientSecurityConfigurationSource$OrientSecurityConfiguration.concurrentlyModified(OrientSecurityConfigurationSource.java:178) at org.sonatype.nexus.internal.security.model.OrientSecurityConfigurationSource$OrientSecurityConfiguration.lambda$18(OrientSecurityConfigurationSource.java:448) at org.sonatype.nexus.orient.transaction.OrientOperations.lambda$2(OrientOperations.java:63) at org.sonatype.nexus.transaction.OperationPoint.lambda$0(OperationPoint.java:53) at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:200) at org.sonatype.nexus.transaction.Operations.run(Operations.java:155) at org.sonatype.nexus.orient.transaction.OrientOperations.run(OrientOperations.java:63) at org.sonatype.nexus.internal.security.model.OrientSecurityConfigurationSource$OrientSecurityConfiguration.updateUserRoleMapping(OrientSecurityConfigurationSource.java:442) at org.sonatype.nexus.security.internal.SecurityConfigurationManagerImpl.updateUserRoleMapping(SecurityConfigurationManagerImpl.java:258) at org.sonatype.nexus.security.internal.UserManagerImpl.setUsersRoles(UserManagerImpl.java:323) at org.sonatype.nexus.security.internal.DefaultSecuritySystem.setUsersRoles(DefaultSecuritySystem.java:311) at org.sonatype.nexus.security.SecuritySystem$setUsersRoles$2.call(Unknown Source) at org.sonatype.nexus.coreui.UserComponent.updateRoleMappings(UserComponent.groovy:209) at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49) at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47) at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:233) at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:617) at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:138) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) 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:125) 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:125) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) 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:383) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:108) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:102) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1751) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) at org.eclipse.jetty.server.Server.handle(Server.java:534) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) at java.lang.Thread.run(Thread.java:748) {code} h4. Short term workaround for affected versions A short term workaround should allow you to make role assignment changes if you can't immediately upgrade: # Make a note of all the currently assigned Roles for the user. Remove all assigned roles, click 'Save'. The user should have no roles at this point. # Add all Roles you want for the user, click 'Save'. There should be no errors. ",2 +"NEXUS-15148","12/07/2017 21:56:15","docker anonymous pull configuration confusing","Users find the docker anonymous pull option confusing. Change: Force basic authentication: [ ] Disable to allow anonymous pull (Note: also requires Docker Bearer Token Realm to be activated) to: Anonymous docker pull: [ ] - Allow anonymous docker pull ( Docker Bearer Token Realm required ) NOTE: This will be an inversion of the current flag in the UI.",2 +"NEXUS-15175","12/11/2017 17:54:53","Nexus 3 service will not start if /tmp is not writable","By default Nexus 3 sets the java.io.tmpdir to a location other than /tmp, but Install4J still attempts to write a file to /tmp and the startup fails if the nexus user cannot write to /tmp, either due to permissions or if a file of the same name it is trying to write, already exists - for example one left over from an unclean shutdown. h4. Workaround A workaround is documented here: https://help.sonatype.com/repomanager3/installation/run-as-a-service#RunasaService-PIDFile h4. Expected Perhaps this should be added to the default configuration? h4. Reproduce To test, set permissions on tmp to only allow the root user to write to it. Attempt to start nexus 3 not as root user. Startup should silently fail.",1 +"NEXUS-15177","12/11/2017 19:29:43","Security -> Realms UI shows incorrect saved realm order for Active realms","Steps to reproduce: # Add a new Realm to the Active list (LDAP in this example), and move the new realm below the existing Nexus Local realms. The screenshot below shows the order just before Saving:  !PreSaveOrder.png! # Click the Save button, and the screen is refreshed and the Active realm order is changed and no longer matches what was saved. In the example below, the LDAP realm is shown first in the list.  !PostSaveOrderWrong.png!   Note: - despite the different displayed order after clicking Save, the database will store the realm order that was displayed before clicking Save - if you move the order around, the ""Save"" button ""disables"" itself when the order is changed to match the last order that was actually saved",2 +"NEXUS-15195","12/13/2017 15:24:41","Logging in from anonymous search causes exception","Steps to reproduce: * Sign out of the UI * Search for a component (e.g. aether) * Click one of the results (e.g. aether-impl) * Sign in After a short delay, an exception pops up and the search feature grays out.",2 +"NEXUS-15202","12/13/2017 20:42:05","No way to download a jar through /rest/beta/search/assets/download if a jar with classifier for same GAV exists","I'm trying to use the /rest/beta/search/assets/download to download a jar file: org/foo/project/1.0.0/project-1.0.0.jar To do this, I used: [http://localhost:8081/nexus/service/siesta/rest/beta/search/assets/downlload?repository=maven-releases&maven.groupId=org.foo&maven.artifactId=project&maven.baseVersion=1.0.0&maven.extension=jar] But this always fails with a 400 response. The logs show that the reason for this is multiple files are found. Using  the/rest/beta/search/assets endpoit I find that the reason is there is also a jar with a classifier: {code:java} { ""items"": [ { ""downloadUrl"": ""http://localhost:8081/nexus/repository/maven-releases/org/foo/project/1.0.0/project-1.0.0-sources.jar"", ""path"": ""org/foo/project/1.0.0/project-1.0.0-sources.jar"", ""id"": ""bWF2ZW4tcmVsZWFzZXM6MTNiMjllNDQ5ZjBlM2I4ZDZjY2FjMTNjZThmMjM0ZjI"", ""repository"": ""maven-releases"", ""format"": ""maven2"", ""checksum"": { ""sha1"": ""8306d184746628c57a5137f3f78835cc3b8b64f8"", ""md5"": ""16d213a2fc0dc663dd1e6b3beaf56f6a"" } }, { ""downloadUrl"": ""http://localhost:8081/nexus/repository/maven-releases/org/foo/project/1.0.0/project-1.0.0.jar"", ""path"": ""org/foo/project/1.0.0/project-1.0.0.jar"", ""id"": ""bWF2ZW4tcmVsZWFzZXM6ZDQ4MTE3NTQxZGNiODllY2Y2YzZjM2VlOGQyM2U3NGU"", ""repository"": ""maven-releases"", ""format"": ""maven2"", ""checksum"": { ""sha1"": ""76bc8bf5b351aa33a5ce16a4b24434f50634dead"", ""md5"": ""b2ec6a8bbe094c2d00e074e04bab60f3"" } } ], ""continuationToken"": null }{code} I can find no way to create a search that does not match the classifier.  So I always get two results, and I cannot download this file directly by REST API. This is either a bug in the API, or a bug in the documentation.  If the latter, the REST API documentation should show how to search for an empty classifier.  ",2 +"NEXUS-15278","12/21/2017 15:56:52","repositories marked not online can prevent tree and html view from displaying all content","If a Nexus 2 or 3 instance is upgraded to 3.7.0, and that original instance contained any repository marked offline or out of service, then the background task which builds the Tree View / HTML view may fail to index existing cached items in ANY other repository. The result is there is no way to Browse those repositories that were not indexed by the background task. The exact repositories affected is indeterminate. Offline means: * Nexus 3.x: The Online checkbox is not selected. * Nexus 2.x: The repository has been ""Put out of service"" This bug does not fail builds which download components or prevent UI search from working, but will hide repository items from the tree view and HTML view for some repositories. {noformat:title=Example nexus.log ERROR message that will be reported in this scenario} 2017-12-21 09:08:16,900-0600 ERROR [quartz-3-thread-5] *SYSTEM org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask - Could not re-create browse nodes for repository: RepositoryImpl$$EnhancerByGuice$$c53e9f01{type=hosted, format=nuget, name='nuget-hosted'} org.sonatype.nexus.scheduling.TaskInterruptedException: Repository nuget-hosted is offline, rebuilding browse nodes was cancelled at org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask.checkContinuation(RebuildBrowseNodesTask.java:144) at org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask.execute(RebuildBrowseNodesTask.java:101) at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:69) at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:93) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:108) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) {noformat} h4. Workaround * if you have repositories marked offline or out of service, do not upgrade to 3.7.0 * if you require access to another bug fix in 3.7.0 before this issue is fixed in a newer release, then contact [support@sonatype.com|mailto:support@sonatype.com] to learn about your options h4. Expected All cached repository content should be viewable in tree view, regardless whether a repository is offline or online. Also, a single offline repo should not fail fast the RebuildBrowseNodesTask at all.",2 +"NEXUS-15282","12/21/2017 20:29:47","NPM allows redeploys despite Deploy Policy","We no longer get any type of HTTP error message when redeploying an NPM package to a hosted repo, with the Deploy Policy set to *Disable Redeploy.* A HTTP 200 is returned..  ",1 +"NEXUS-15363","12/29/2017 16:59:39","Not Found Cache TTL timeout setting of ""-1"" fails upgrade from Nexus 2x to 3x","In Nexus 2.x instance, if the Not Found Cache TTL timeout is set to -1, then this fails the migration. You see the following warning in the logs.  {noformat} 2017-12-27 17:32:38,825+0200 INFO [plan-executor-8-thread-2] admin org.sonatype.nexus.repository.manager.internal.RepositoryManagerImpl - Creating repository: servicemix -> Configuration\{repositoryName='servicemix', recipeName='maven2-proxy', attributes=\{proxy=\{contentMaxAge=-1, metadataMaxAge=1440, remoteUrl=http://svn.apache.org/repos/asf/servicemix/m2-repo/}, negativeCache=\{timeToLive=-1, enabled=true}, maven=\{layoutPolicy=PERMISSIVE, versionPolicy=RELEASE}, storage=\{strictContentTypeValidation=false, blobStoreName=default}, httpclient=\{autoBlock=true, connection=\{enableCircularRedirects=false, enableCookies=false, useTrustStore=false}}}} 2017-12-27 17:32:38,830+0200 WARN [plan-executor-8-thread-2] admin org.sonatype.nexus.repository.config.internal.ConfigurationFacetImpl - Validation failed; 1 constraints violated: 1) must be greater than or equal to 0, type: class org.sonatype.nexus.repository.config.internal.ConfigurationFacetImpl$SectionWrapper, property: attributes[negativeCache].timeToLive, value: -1 2017-12-27 17:32:38,834+0200 DEBUG [plan-executor-8-thread-2] admin com.sonatype.nexus.migration.repository.RepositoryPrepareStep - Transitioning: RUNNING -> FAILED 2017-12-27 17:32:38,834+0200 WARN [plan-executor-8-thread-2] admin com.sonatype.nexus.migration.repository.RepositoryPrepareStep - Prepare repository for upgrade: servicemix failed javax.validation.ConstraintViolationException: null {noformat} Also caused the migration to hang on a group repo containing the above repo.",2 +"NEXUS-15364","12/29/2017 19:38:12","logging from different task threads may log to the same task log if tasks are started within the same second","It was noticed that the log messages from two different distinct task threads processing different repositories may log to the same task specific log. h4. Expected Each scheduled task should log to its own uniquely named task log.  ",2 +"NEXUS-15372","01/02/2018 14:49:38","""Smart Proxy - Publish/Subscribe Configuration"" privileges don't work","The ""Smart Proxy - Publish/Subscribe Configuration"" privileges don't work, event after granting them to a user they will still receive a 403 response when trying to access the ""/service/local/smartproxy/pub-sub"" resource: 127.0.0.1 - deployment [02/Jan/2018:08:36:19 -0600] ""GET /nexus/service/local/smartproxy/pub-sub/amd-core-rm-Snapshots?_dc=1514903779880 HTTP/1.1"" 403 581 3  ",2 +"NEXUS-15418","01/08/2018 16:11:56","include edition and version in logged uptime message","When Nexus is shutdown, the Uptime is logged - example: {noformat} 2018-01-08 02:01:03,228+0800 INFO [Thread-6] *SYSTEM org.sonatype.nexus.extender.NexusContextListener - Uptime: 22 hours, 21 minutes, 28 seconds and 576 milliseconds {noformat} If the shutdown immediately precedes a Nexus upgrade, it is useful to understand what edition and version was shut down immediately preceding the upgrade. h4. Expected - include the last active edition and version that was shutdown, in the uptime message: Example: {{Uptime: 22 hours, 21 minutes, 28 seconds and 576 milliseconds (nexus-pro-edition/3.7.1.02)}} - make sure that if there is a license change during the last run of the server, the reported edition accurately reflects that last change *Note:* The edition version string example suggested here is the same one seen during these messages on startup: {noformat} 2018-01-08 02:13:22,253+0800 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.osgi.BootstrapListener - Initializing 2018-01-08 02:13:22,263+0800 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.osgi.BootstrapListener - Installing: nexus-pro-edition/3.7.1.02 2018-01-08 02:13:23,448+0800 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.osgi.BootstrapListener - Installed: nexus-pro-edition/3.7.1.02 {noformat} Another format of edition version could be acceptable as well, open to suggestions. ",1 +"NEXUS-15422","01/08/2018 18:03:39","NuGet API Key generated by a user authenticated with RUT will get purged by Purge Orphaned API Keys task","h4. Setup - Nexus 3.7.1 - NuGet API Key realm is active - RUT Auth realm is active - RUT Auth Capability is enabled h4. Problem Reproduce # Authenticate to Nexus 3 UI using RUT Auth ( your user account can be ldap, crowd or default realm user account ) # Go to your profile and generate a NuGet API Key by clicking Access Key. ( You will be prompted for authentication due to NEXUS-10692 ). When prompted for password, enter your password. Record the displayed API Key. # Schedule and run a Purge Orphaned API Key task. After the task completes, your Nuget API Key previously displayed will no longer be valid as the task considered it orphaned and removed it. Debug logging while the task is run shows why the task considered it orphaned: {noformat} 2018-01-08 13:34:04,439-0400 DEBUG [quartz-5-thread-5] *SYSTEM org.sonatype.nexus.internal.security.apikey.ApiKeyStoreImpl - Stale user found org.sonatype.nexus.security.user.UserNotFoundException: User not found: adminuser; User-manager not found: rutauth-realm at org.sonatype.nexus.security.UserPrincipalsHelper.getUserStatus(UserPrincipalsHelper.java:66) at org.sonatype.nexus.internal.security.apikey.ApiKeyStoreImpl.lambda$5(ApiKeyStoreImpl.java:183) at org.sonatype.nexus.orient.transaction.OrientOperations.lambda$2(OrientOperations.java:63) at org.sonatype.nexus.transaction.OperationPoint.lambda$0(OperationPoint.java:53) at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:200) at org.sonatype.nexus.transaction.Operations.run(Operations.java:155) at org.sonatype.nexus.orient.transaction.OrientOperations.run(OrientOperations.java:63) at org.sonatype.nexus.internal.security.apikey.ApiKeyStoreImpl.purgeApiKeys(ApiKeyStoreImpl.java:179) at org.sonatype.nexus.internal.security.apikey.ApiKeyStoreImpl$$EnhancerByGuice$$a608dc72.CGLIB$purgeApiKeys$6() at org.sonatype.nexus.internal.security.apikey.ApiKeyStoreImpl$$EnhancerByGuice$$a608dc72$$FastClassByGuice$$1cc8105f.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at org.sonatype.nexus.internal.security.apikey.ApiKeyStoreImpl$$EnhancerByGuice$$a608dc72.purgeApiKeys() at org.sonatype.nexus.internal.security.apikey.PurgeApiKeysTask.execute(PurgeApiKeysTask.java:42) at org.sonatype.nexus.internal.security.apikey.PurgeApiKeysTask.execute(PurgeApiKeysTask.java:1) at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:93) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:108) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) Caused by: org.sonatype.nexus.security.user.NoSuchUserManagerException: User-manager not found: rutauth-realm at org.sonatype.nexus.security.UserPrincipalsHelper.findUserManager(UserPrincipalsHelper.java:102) at org.sonatype.nexus.security.UserPrincipalsHelper.getUserStatus(UserPrincipalsHelper.java:60) ... 33 common frames omitted 2018-01-08 13:34:04,443-0400 INFO [quartz-5-thread-5] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task nexus.1ac98aef-a616-4c66-96a5-1906efb9b2d4 : 'purge-api' [security.purge-api-keys] state change RUNNING -> WAITING (OK) {noformat} h4. Expected When a RUT authed user creates an API key ( for NuGet or any other key realm ) the API key should be associated to the realm that actually stores the user's account for the purposes of authentication as determined by the order of realms in the active realms list ( default, ldap, crowd), instead of {{rutauth-realm}}. In this way, the key will not normally be considered orphaned and not be removed by the the purge task. h4. Regression Nexus 2.x is not known to have this same problem so this issue may affect upgraded configurations from Nexus 2x to 3x.",2 +"NEXUS-15425","01/09/2018 10:45:29","Asset not updated when a npm package is republished","I have a npm hosted repository with a deployment policy = ""Allow redeploy"" in order to simulate snapshot versions. After the second publish, I can't install the dependency anymore because there is a failure when checksums are compared (tested with npm 5.6.0 and yarn 1.3.2).   The problem appears in Nexus 3.7.0. I don't have this problem with Nexus 3.6.2.    Steps to reproduce the problem: * Create a npm hosted repository with a deployment policy = ""Allow redeploy"" * Create a directory with only this package.json: {noformat} { ""name"": ""test-publish"", ""version"": ""1.1.0"" }{noformat} * Publish to the npm hosted repository {noformat} npm publish --registry http://localhost:8081/repository/npm-snapshots{noformat} * Create a file README.md * Publish again to the npm hosted repository * At this step, you can already see there is a problem in the Nexus UI (asset not updated) * Create another directory with only this package.json: {noformat} { ""name"": ""test-install"", ""version"": ""1.1.0"", ""dependencies"": { ""test-publish"": ""1.1.0"" } }{noformat} * Get the dependencies {noformat} npm install{noformat} * It fails {noformat} npm ERR! code EINTEGRITY npm ERR! sha512-oWVq3ClAsE/fuTaUBWUxAmfK8JqilUmFvy/RoZ9iyvy548j1s4xO8mavrQEpip5UY4+xSidmhcn3/f0lLrokSQ== integrity checksum failed when using sha512: wanted sha512-oWVq3ClAsE/fuTaUBWUxAmfK8JqilUmFvy/RoZ9iyvy548j1s4xO8mavrQEpip5UY4+xSidmhcn3/f0lLrokSQ== but got sha512-nrDFsnCoXUSOosfSgsfCnqBx5+MYA5RuSxJwJU7y65jWe8npDvxIhtuthLLq7qH3Ogkm9HegTKar3iuLy/VkjA==. (158 bytes){noformat}",2 +"NEXUS-15461","01/11/2018 01:23:07","ensure scheduled tasks are cancelable (part 2)","From execution of --NEXUS-13208-- there are additional scheduled tasks which, as of 3.7, do not support cancellation. For the same reasons as the aforementioned JIRA these tasks should be allowed to be canceled where possible.    * CompactBlobStoreTask * DockerUploadPurgetask * PurgeApiKeysTask * -RebuildAssetUploadMetadataTask- (completed previously) * -RebuildBrowseNodesTask- (completed previously) * RebuildIndexTask * -YumCreateRepoTask- (not addressing at this time) * -RepairYumProxyComponentsTask- (class no longer exists)",8 +"NEXUS-15467","01/11/2018 22:46:02","Blob store type field is editable... it shouldn't be","The blobstore type field is editable.  If you put in a value that is not in the list and save you get an NPE (see screenshot).  {noformat} 2018-01-11 16:43:34,179-0600 ERROR [qtp1849456833-166] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: coreui_Blobstore.create, java-method: org.sonatype.nexus.coreui.BlobStoreComponent.create java.lang.NullPointerException: null at org.sonatype.nexus.repository.internal.blobstore.BlobStoreManagerImpl.newBlobStore(BlobStoreManagerImpl.java:200) at org.sonatype.nexus.repository.internal.blobstore.BlobStoreManagerImpl.create(BlobStoreManagerImpl.java:150) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.blobstore.api.BlobStoreManager$create$0.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at org.sonatype.nexus.coreui.BlobStoreComponent.create(BlobStoreComponent.groovy:88) at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49) at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47) at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) {noformat}    ",1 +"NEXUS-15470","01/12/2018 15:01:47","Reduce the default frequency of updating asset last access time","*Background* Currently the asset last access time is updated every 1 minute at the most frequent and this is not adjustable. See NEXUS-15469. This can cause excessive updates to the database triggered by asset downloads. *Acceptance* * Make the default 'last accessed time' update rate 12 hours (not 1 minute). * Modify the UI so that it only displays the day (and leaves off hours/minutes/seconds) for this date. * Download count will not be impacted.",2 +"NEXUS-15561","01/16/2018 16:39:20","GET /-/v1/search java.lang.IllegalArgumentException Invalid query WARN message with no context","Customer logs contain verbose WARN messages such as this using 3.7.1: {noformat} 2018-01-16 14:34:58,893+0100 WARN [qtp255616004-64166] *UNKNOWN com.sonatype.nexus.repository.npm.internal.NpmHandlers - Error: GET /-/v1/search: Status{successful=false, code=400, message='null'} - Invalid query java.lang.IllegalArgumentException: Invalid query at org.sonatype.nexus.repository.search.SearchServiceImpl.validateQuery(SearchServiceImpl.java:593) at org.sonatype.nexus.repository.search.SearchServiceImpl.searchInReposWithAggregations(SearchServiceImpl.java:481) at com.sonatype.nexus.repository.npm.internal.search.v1.NpmSearchFacetHosted.searchV1(NpmSearchFacetHosted.java:92) at com.sonatype.nexus.repository.npm.internal.NpmHandlers$8.handle(NpmHandlers.java:268) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at com.sonatype.nexus.repository.npm.internal.NpmHandlers$1.handle(NpmHandlers.java:113) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.Context.start(Context.java:114) at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:63) at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:200) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:162) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:119) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) 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:125) 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:125) 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:125) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) 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:383) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.repository.httpbridge.internal.ExhaustRequestFilter.doFilter(ExhaustRequestFilter.java:71) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:108) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:102) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1751) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) at org.eclipse.jetty.server.Server.handle(Server.java:534) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) at java.lang.Thread.run(Thread.java:812) {noformat} The problem is the large stack trace for a WARN message for a query that at first glance does not appear to be invalid. There is also absolutely no log message information about WHY it is not valid. The log message and spam it creates it not helpful unless more context is added - hiding the context at DEBUG level is NOT helpful. ",2 +"NEXUS-15582","01/18/2018 14:45:54","docker proxy repository does not work for container-registry.oracle.com","I am trying to proxy the oracle container registry, which requires a username/password. It seems there is an error in the callback during auth as it has a space in it. [https://blogs.oracle.com/weblogicserver/the-oracle-container-registry-has-gone-live] i get the following error; {noformat}  deploy org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/java/serverjre/manifests/9.0.1 java.lang.IllegalArgumentException: Illegal character in query at index 57: https://container-registry.oracle.com/auth?service=Oracle Registry&scope=repository:java/serverjre:pull     at java.net.URI.create(URI.java:852)     at org.apache.http.client.methods.HttpGet.(HttpGet.java:69)     at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.retrieveBearerToken(DockerProxyFacetImpl.java:431)     at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.access$3(DockerProxyFacetImpl.java:424)     at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl$2.retrieveBearerToken(DockerProxyFacetImpl.java:782)     at org.sonatype.nexus.repository.docker.internal.auth.DockerAuthHttpClientContext$2.getToken(DockerAuthHttpClientContext.java:76)     at org.sonatype.nexus.repository.docker.internal.auth.BearerScheme.authenticate(BearerScheme.java:104) {noformat} h4. Cause In DockerProxyFacetImpl.retrieveBearerToken we do {code:java} HttpGet request = new HttpGet(realm + ""?service="" + service + ""&scope="" + scope); {code} The URL is not properly encoded. h4. Reproduce # Sign up at https://container-registry.oracle.com # Create a Docker proxy against that (with authentication) # pull something with docker against this repo. ie. {{docker pull localhost:12344/database/enterprise:12.2.0.1}}",1 +"NEXUS-15714","01/24/2018 15:21:40","Continue to serve locally cached proxied npm packages that are unpublished on the remote","It is rare, but technically unpublishing npm packages is possible at a remote npm registry. When Nexus is proxying a remote npm repository, a specific package version may get locally cached. Then the remote may unpublish that same package, thus altering the package metadata which lists the versions of the package at the remote site. The next time Nexus gets the remote metadata for that package, the metadata is replaced, not merged, with its own local metadata. See https://issues.sonatype.org/browse/NEXUS-8624. If metadata age is set as -1, then Nexus will never get new metadata, so will not know about new versions that get published. If it is set to anything greater, then the new metadata from the remote may get downloaded and will not refer to the already locally cached package, it will replace the local metadata and Nexus will not serve the already cached unpublished package to inbound requests. There is a use case for continuing to serve the already cached package, if we have a project depending on that package, we don't want our project to be affected if this module is unpublished at the remote. Nexus should also provide an option to continue serving the cached packages, while at the same time have a method to reconcile packages/metadata which are explicitly deleted from the local cache or remote site.",5 +"NEXUS-15722","01/25/2018 15:40:01","Docker push can fail in HA Environment","Within a HA Environment, a Docker push of an image with several layers can fail due to the upload requests landing on different nodes within the cluster. For example, Node A handles the initial POST and PATCH requests, but the PUT is handled by a different node (Node B) which doesn't appear to be aware of the upload and ends up throwing a ""java.lang.IllegalStateException: Missing upload with uuid:"" and returning a 404: {quote}org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl - Failed to complete upload java.lang.IllegalStateException: Missing upload with uuid: f26e5743-c7c3-4300-ae69-00166e49b9c7 at org.sonatype.nexus.repository.docker.internal.UploadManagerImpl.ensureGetUpload(UploadManagerImpl.java:134) at org.sonatype.nexus.repository.docker.internal.UploadManagerImpl.complete(UploadManagerImpl.java:94) at org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl.completeBlobUpload(DockerHostedFacetImpl.java:574) {quote}",3 +"NEXUS-15727","01/26/2018 10:46:58","Error when maintainers is shortened string","When a npm hosted package.json contains a maintainers attribute that is of a shortened type an exception is thrown:  {code:java} 2018-01-26 10:24:06,701+0000 WARN [qtp1450864092-243] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: PUT /repository/npm-hosted/Test1 java.lang.IllegalStateException: Expected START_ARRAY but found VALUE_STRING at [Source: (InputStreamReader); line: 1, column: 131] at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.requireToken(NpmPublishParser.java:413) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseMaintainers(NpmPublishParser.java:303) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseVersion(NpmPublishParser.java:288) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parseVersions(NpmPublishParser.java:270) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parsePackageRoot(NpmPublishParser.java:120) at com.sonatype.nexus.repository.npm.internal.NpmPublishParser.parse(NpmPublishParser.java:95) at com.sonatype.nexus.repository.npm.internal.NpmRequestParser.parseNpmPublish(NpmRequestParser.java:95) at com.sonatype.nexus.repository.npm.internal.NpmRequestParser.parsePublish(NpmRequestParser.java:74) at com.sonatype.nexus.repository.npm.internal.NpmHostedFacetImpl.putPackage(NpmHostedFacetImpl.java:93) {code}   To replicate the problem for npm-hosted on NX3 follow the same instructions as [here|https://issues.sonatype.org/browse/NEXUS-12347?focusedCommentId=451315&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-451315] but adding a maintainers attribute to the package.json. For example {code:java} { ""name"": ""Test1"", ""version"": ""0.0.1"" ""maintainers"": ""Joe Blogs "" }{code} The above example in my opinion does not match the specification but it has been noted that some packages are using this format (i.e. not an array of maintainers).",1 +"NEXUS-15734","01/29/2018 14:37:59","Proxied yum packages can become undiscoverable","NXRM Proxy repos should continue to serve packages even if they go missing upstream. However, since we proxy the metadata listing from upstream we're vulnerable to effectively propagating upstream deletions. # Create a yum *hosted* repo with two RPMs in it. # Wait for the hosted repository to generate the metadata (this defaults to 60 seconds) # Create a yum *proxy* of the hosted repo. # Fetch the metadata through the *proxy*, specifically repomd.xml which will automatically fetch primary.xml.gz. # Fetch both the RPMs through the *proxy* so that they are cached. # Delete one of the RPMs from the hosted repo and wait for the metadata to be regenerated. The primary.xml.gz file in the hosted repository should now only list one RPM. # Invalidate the cache on the proxy and then fetch the repomd.xml again. # The primary.xml.gz file in the proxy will now only list one RPM but both RPMs will be available in the repository. (Note another way to reproduce this would using a Centos 6 Docker image and a Centos 7 Docker image and then to point a proxy at a centos 6 remote http://mirror.centos.org/centos-6/6.9/os/x86_64/ install some packages, change the remote url to centos 7 install some packages http://mirror.centos.org/centos-7/7/os/x86_64/ the go back and try and install the 6 packages, which will fail) This issue is the Yum version of the NPM-specific NEXUS-15714.",5 +"NEXUS-15745","01/30/2018 15:37:48","Yum proxy is not able to remove absolute URLs for metadata files that aren't at the root of a repository.","When repomd.xml is fetched through a yum proxy then Nexus automatically fetches the primary.xml.gz file so that it can remove any absolute urls, and update the checksum and size attributes that are stored in repomd.xml. This works fine when the metadata is at the root of the repository. (i.e. remote url of http://mirror.centos.org/centos/7/os/x86_64 and a request url of http://localhost:8081/repository/yum-proxy/repodata/repomd.xml). It fails when metadata is not at the root because it uses the path directly from the repomd.xml. # Create a yum proxy repository with remote url http://mirror.centos.org/centos # Fetch repomd.xml via http://localhost:8081/repository/yum-proxy/7/os/x86_64/repodata/repomd.xml # The following message will be logged {quote} 2018-01-30 10:53:43,834-0400 WARN [qtp732641399-75] admin org.sonatype.nexus.repository.yum.internal.proxy.YumProxyFacetImpl - Failed to fetch metadata file for path repodata/b686d3a0f337323e656d9387b9a76ce6808b26255fc3a138b1a87d3b1cb95ed5-primary.xml.gz and repository yum-proxy-97. Received status code 404 {quote} To fix this we need to prepend the /7/os/x86_64 part of the request url onto the url that is extracted from repomd.xml",2 +"NEXUS-15762","01/31/2018 21:03:04","Repository HTTP configuration not available in Safari","In the edit screen for a proxy repository the http configuration sections are not displayed when viewed in Safari. Works fine in Firefox !Screen Shot 2018-01-31 at 17.01.31.png|thumbnail!   This issue isn't just affecting the HTTP Configuration section, all the subheadings on the new Repository form page are now hidden. See screenshot below: !Safari - Broken Proxy Repo Page.png|thumbnail! It also affects other pages with similar elements. e.g. !Safari - Broken HTTP Page.png|thumbnail!  What's more, after the ExtJS upgrade, the style of the subheadings on all browsers is off. They are supposed to be larger than the form fields as shown in the Chrome screenshot below: !Chrome - Proxy Repo Subheading Styles Pre Upgrade.png|thumbnail! But after the upgrade, the structure of the DOM nodes that ExtJS generates was modified and the custom CSS style rule for subheadings is no longer matching. Therefore the subheadings look like all the other text on that page as can be seen on Chrome below: !Chrome - Proxy Repo Subheading Styles Off.png|thumbnail! ",2 +"NEXUS-15765","01/31/2018 23:08:28","Group members appear in seemingly random order","While testing bower, I added 2 proxy repos and a hosted repo (in that order) and went to put them in a group. I noticed the order displayed on the Available list was: proxy, hosted, proxy2. This was not in the creation order or alphabetical order. I can imagine this might be a problem with more than 3 repos. However, workaround SHOULD be filtering, assuming the names arn't too similar and long. I doubt this is regression, tho I haven't checked at this time. I also doubt this is bower specific, tho I also didn't check.",2 +"NEXUS-15768","02/01/2018 12:54:56","Yum hosted should log more information when the metadata is being generated","A message is logged when createrepo starts but not during the generation or when it finishes, making it unclear whether the metadata has been updated.",1 +"NEXUS-15795","02/02/2018 18:09:46","Yum Hosted Recipe should not add the negative cache handler","If the yum hosted metadata is fetched before it is generated then a 404 will be returned. Because the negative cache handler has been incorrectly implemented on hosted the 404 will still be returned after the metadata has been generate. This is true for RPMs as well (fetched before upload and fetched after upload). There is no way to clear the negative cache without waiting for it to expire or restarting the server. The Yum hosted recipe is adding the NegativeCacheHandler (i.e. [https://github.com/sonatype/nexus-internal/blob/30c875f80f2406800b8ec37cc618bee0cfd47897/private/plugins/nexus-repository-yum/src/main/java/org/sonatype/nexus/repository/yum/internal/hosted/YumHostedRecipe.groovy#L90)]    ",1 +"NEXUS-15815","02/07/2018 15:32:55","Yum Proxy implement Condition GET","When requesting from a Yum Proxy we should provided a proper response for a conditional get with the {{If-Modified-Since}} header. *Acceptance Criteria* * Add for the URI patterns in {{YumProxyRecipe}} to add a Conditional Request Handler, affected URL's should return a 304 http status if data was not modified before the date time given in the {{If-Modified-Since}} header.  ** /repomd.xml ** /repodata/* ** *.rpm ** *.xml.asc *Example call* {code:java} curl -v -H ""If-Modified-Since: Fri, 04 Aug 2017 16:45:35 GMT"" http://localhost:8081/repository/yum-proxy/repodata/repomd.xml{code}  ",1 +"NEXUS-15816","02/07/2018 17:04:54","Provide a means to disable paged result sets in LDAP searches","Some LDAP servers have paged result sets disabled for performance reasons (1). These LDAP servers no longer work with Nexus versions 3.6.0 and higher due to the fix for -NEXUS-10565-. We should consider adding a way to to disable paged results sets in our LDAP searches to restore compatibility with these servers. 1) [https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.glpa200/glpa200_Paged_search_considerations.htm]",2 +"NEXUS-15878","02/07/2018 19:17:19","UI poll requests iterates over all privileges.","Every time the UI polls Nexus it iterates over all privileges: [https://github.com/sonatype/nexus-internal/blob/release-3.8.0-02/components/nexus-rapture/src/main/java/org/sonatype/nexus/rapture/internal/security/SecurityComponent.java#L197] This is similar to an issue we fixed in Nexus 2.x (NEXUS-5713). The processing of these privileges looks very expensive:  {noformat} ""qtp1909464898-53236"" #53236 prio=5 os_prio=0 tid=0x00007fc1fd002800 nid=0x7e9b runnable [0x00007fbdc0269000] java.lang.Thread.State: RUNNABLE at java.util.HashMap.hash(HashMap.java:338) at java.util.HashMap.put(HashMap.java:611) at java.util.HashSet.add(HashSet.java:219) at java.util.AbstractCollection.addAll(AbstractCollection.java:344) at org.apache.shiro.realm.AuthorizingRealm.getPermissions(AuthorizingRealm.java:417) at org.apache.shiro.realm.AuthorizingRealm.isPermitted(AuthorizingRealm.java:468) at org.apache.shiro.realm.AuthorizingRealm.isPermitted(AuthorizingRealm.java:499) at org.apache.shiro.realm.AuthorizingRealm.isPermitted(AuthorizingRealm.java:489) at org.sonatype.nexus.security.authz.ExceptionCatchingModularRealmAuthorizer.isPermitted(ExceptionCatchingModularRealmAuthorizer.java:256) at org.apache.shiro.mgt.AuthorizingSecurityManager.isPermitted(AuthorizingSecurityManager.java:125) at org.apache.shiro.subject.support.DelegatingSubject.isPermitted(DelegatingSubject.java:175) at org.sonatype.nexus.rapture.internal.security.SecurityComponent.calculatePermissions(SecurityComponent.java:215) at org.sonatype.nexus.rapture.internal.security.SecurityComponent.getPermissions(SecurityComponent.java:178) at org.sonatype.nexus.rapture.internal.security.SecurityComponent$$EnhancerByGuice$$53f0c4b1.CGLIB$getPermissions$3() at org.sonatype.nexus.rapture.internal.security.SecurityComponent$$EnhancerByGuice$$53f0c4b1$$FastClassByGuice$$e138cccd.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at org.sonatype.nexus.rapture.internal.security.SecurityComponent$$EnhancerByGuice$$53f0c4b1.getPermissions() at org.sonatype.nexus.rapture.internal.security.SecurityComponent.getState(SecurityComponent.java:187) at org.sonatype.nexus.rapture.internal.state.StateComponent.getState(StateComponent.java:83) at org.sonatype.nexus.rapture.internal.state.StateComponent$$EnhancerByGuice$$c680be9.CGLIB$getState$0() at org.sonatype.nexus.rapture.internal.state.StateComponent$$EnhancerByGuice$$c680be9$$FastClassByGuice$$f5589e80.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at org.sonatype.nexus.rapture.internal.state.StateComponent$$EnhancerByGuice$$c680be9.getState() at sun.reflect.GeneratedMethodAccessor226.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:227) at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) at com.softwarementors.extjs.djn.router.processor.poll.PollRequestProcessor.process(PollRequestProcessor.java:145) at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$4.processPollRequest(ExtDirectServlet.java:330) at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:621) at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:580) at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:133) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) {noformat} h4. Mitigation Reducing the frequency the UI makes poll requests will in turn reduce the total processing of these requests by UI users. By default, poll requests are sent every 5 seconds. Go to ""system/capabilities"" in the administration UI, and click on the ""UI: Settings"" capability. In the settings tab, change the ""authenticated user status interval"" to something like 120 seconds. Make sure the standard request timeout value is higher than 120 seconds or whatever you sent the value to. ",5 +"NEXUS-16057","02/09/2018 12:23:50","Add UI upload for Yum","*Acceptance criteria* * A user can select an RPM and upload it to a yum hosted repository. * An RPM can be uploaded to any path in the repository that is at or deeper than the configured repodata depth. ",3 +"NEXUS-16066","02/09/2018 16:52:40","Yum Hosted implement Condition GET for remaining endpoints","When requesting from a Yum Hosted we should provided a proper response for a conditional get with the {{If-Modified-Since}} header. *Acceptance Criteria* * Add for the URI patterns in {{YumHostedRecipe}} to add a Conditional Request Handler, affected URL's should return a 304 http status if data was not modified before the date time given in the {{If-Modified-Since}} header.  ** /repomd.xml ** /repodata/* ** *.rpm ** **.** *Example call* {code:java} curl -v -H ""If-Modified-Since: Fri, 04 Aug 2017 16:45:35 GMT"" http://localhost:8081/repository/yum-hosted/repodata/repomd.xml{code}  ",1 +"NEXUS-16067","02/09/2018 17:14:55","Add privilege that controls access to IQ component details","I've granted every privilege in Nexus 3 that there is to a user, and they still do not have permissions to view IQ component details. It should be possible for a non-admin user to view the IQ component details when looking at a component.  Currently the only way I can get access is to give the user the ""nx-admin"" role. This was tested in both Nexus 3.8.0. A support zip with my test configuration is attached, the test user has credentials ""test:test"".",3 +"NEXUS-16077","02/12/2018 07:22:53","pip search on group requires read privilege on member repositories","On my production installation, I only grant anonymous access to a set of specific repositories/groups. This is the situation for pypi: * a 'pypi' proxy repository pointing to [https://pypi.python.org/|https://pypi.python.org/] which is not browsable/readable for anonymous * a group repository 'pypi-public' containing the above proxy repository. This one is the default the anonymous user must use with browse/read permissions granted Using the 'pypi-public' group to install packages from pip command line is behaving as expected (packages get downloaded and installed) Using the pip command line to search packages against the group fires a login prompt. To enable anonymous search your have to specifically grant the read access on the 'pypi' member repository. This is annoying as the admin must remember to grant read access to new member repository. The read permission on the group should be enough to complete the search.",2 +"NEXUS-16082","02/12/2018 19:49:11","Nexus Pro reverts to Nexus OSS if license is removed","If you remove the Nexus Repo Manager license from the Java preference store Nexus will revert to OSS mode. This is of particular concern to Nexus Firewall users, when running in OSS mode quarantine is not enforced. Also, there is a bug in recent Java 8 versions, a Java update can wipe out the user preference store. We've encountered this on multiple support tickets recently: [https://support.sonatype.com/hc/en-us/articles/360000093547-Java-update-in-Windows-can-remove-Nexus-license] Firewall users who encounter the above issue will find that quarantine is no longer enforced, and will not be until they re-install their license and restart Nexus. h4. Symptom on Upgrading Nexus Repository Manager Where OSS Mode is Enabled Trying to Load formerly PRO database Model {noformat} [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.osgi.BootstrapListener - Loading OSS Edition 2018-04-10 17:23:52,252-0400 ERROR [FelixStartLevel] *SYSTEM org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl - The database model for component is 1.12, but the latest supported by this version of nexus is 1.11 2018-04-10 17:23:52,254-0400 ERROR [FelixStartLevel] *SYSTEM org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl - Failed transition: NEW -> STARTED java.lang.IllegalStateException: Incompatible sonatype-work database model detected. Will result in failure to launch. Shutting down. at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.validate(UpgradeServiceImpl.java:168) at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.doStart(UpgradeServiceImpl.java:81) at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:155) at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:95) at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:189) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) at java.lang.Thread.run(Thread.java:745) 2018-04-10 17:23:52,258-0400 ERROR [FelixStartLevel] *SYSTEM org.sonatype.nexus.extender.NexusContextListener - Failed to start nexus java.lang.IllegalStateException: Incompatible sonatype-work database model detected. Will result in failure to launch. Shutting down. at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.validate(UpgradeServiceImpl.java:168) at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.doStart(UpgradeServiceImpl.java:81) at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:155) at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:95) at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:189) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) at java.lang.Thread.run(Thread.java:745) ERROR: Framework listener delivery error. java.lang.IllegalStateException: Incompatible sonatype-work database model detected. Will result in failure to launch. Shutting down. at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.validate(UpgradeServiceImpl.java:168) at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.doStart(UpgradeServiceImpl.java:81) at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:155) at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:95) at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:189) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) at java.lang.Thread.run(Thread.java:745) {noformat} *Expected* Once an instance has had a Pro license, it should not downgrade to OSS, but should present the 'please supply a license' screen.",3 +"NEXUS-16159","02/15/2018 14:19:17","""Require user tokens for repository authentication"" now enforced properly","When User token is enabled and the Require user tokens for repository authentication is also enabled, docker requests are still allowed to use plain text credentials instead of being forced to use user token credentials. The changes made by NEXUS-11231 seem to only affect Maven and Raw format repositories. h4. Expected When Require user tokens for repository authentication is enabled, all non user-token credentials should be blocked for all repository formats.",0 +"NEXUS-16225","02/16/2018 14:08:41","Swagger UI caching causing load problems on upgrade","URLs to load parts of the swagger-ui via the http://localhost:8081/#admin/system/api link do not include the typical cache busting mechanism employed by other URLS {{?_v=}}. The URLs include a Cache-Control: max-age=2592000 header in the response which causes the generic URL content to be cached for 30 days in the browser. We have had several reports of problems loading the in product swagger-ui because of this caching issue. {noformat:title=Request} GET /swagger-ui/ HTTP/1.1 Host: localhost:8081 Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Referer: http://localhost:8081/ Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.9 Cookie: NXSESSIONID=b1639abe-c8f8-4e43-b1dc-04828c8713f2 {noformat} {noformat:title=Response} HTTP/1.1 200 OK Date: Fri, 16 Feb 2018 13:45:06 GMT Server: Nexus/3.8.0-02 (PRO) X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Content-Type: text/html Last-Modified: Fri, 02 Feb 2018 00:56:55 GMT Cache-Control: max-age=2592000 Content-Length: 4393 {noformat} The broken interface leads to support tickets and users mailing list questions. h4. Expected Include cache buster query param in all UI URLs. UI users should not be forced to clear browser cache and restart their browsers on upgrading Nexus. h4. Workaround Clear browser cache and restart web browsers after upgrading Nexus. Some reports of force refreshing using CTRL-F5 have worked as well. ",2 +"NEXUS-16227","02/16/2018 17:43:21","Assigned privileges are restored when repository is deleted and created again","Assigned privileges are restored when repository is deleted and created again with same repository id. 1) Have an existing proxy ""nuget-test"". 2) Assign ""nx-repository-view-nuget-nuget-test-_"" to a Role._ _3) Delete repo ""nuget-test""._ _4) Check that ""nx-repository-view-nuget-nuget-test-_"" is removed from the Role. 5) Create proxy ""nuget-test"". 6) Check that ""nx-repository-view-nuget-nuget-test-*"" is added back to the Role. Not sure if this is intentional, but does indicate that role privilege are not cleaned up on deletion on a repo",2 +"NEXUS-16249","02/21/2018 10:03:17","Nexus welcome page announces Nexus Repository 2.14.8 is now available when it is not","Right after updating to 2.14.7, Nexus promotes a new Update on its landing page:   Nexus Repository 2.14.8 is now available with support for ... But following the link only leads to the 2.14.7 version. 2.14.8 does not seem to be available.",0.5 +"NEXUS-16303","02/21/2018 23:35:56","PublishMavenIndexTask fails to republish maven Index if hosted Maven repository has write policy of ALLOW_ONCE","On locally hosted repositories, Maven indexes are not published for the second running of the task for those repositories marked as Release. I expected that if the repositories marked as release had not changed, then no update to the index would be attempted and the logs would indicate that. Instead a error occurred stating the following: org.sonatype.nexus.repository.IllegalOperationException: Repository does not allow updating assets: releases was present in the task log, and the task manager showed that the task had failed with an error. ---- The releases repository has a writePolicy of ""ALLOW_ONCE"". That policy is intended to prevent republishing/overwriting the same artifact into the repository. It is not intended to prevent the publish indexes task from running repeatedly and updating.   {noformat} { ""@type"": ""d"", ""@rid"": ""#24:15"", ""@version"": 4, ""@class"": ""repository"", ""recipe_name"": ""maven2-hosted"", ""repository_name"": ""releases"", ""online"": true, ""attributes"": { ""maven"": { ""versionPolicy"": ""RELEASE"", ""layoutPolicy"": ""PERMISSIVE"" }, ""storage"": { ""strictContentTypeValidation"": false, ""writePolicy"": ""ALLOW_ONCE"", ""blobStoreName"": ""default"" } } }{noformat} {noformat} 2018-02-21 01:00:05,807-0800 ERROR [quartz-4-thread-18] *SYSTEM org.sonatype.nexus.repository.maven.tasks.PublishMavenIndexTask - Failed to run task 'Publish Maven indexes of releases' org.sonatype.goodies.common.MultipleFailures$MultipleFailuresException: Failed to run task 'Publish Maven indexes of releases'; 1 failure at org.sonatype.goodies.common.MultipleFailures.maybePropagate(MultipleFailures.java:95) at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:89) at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:93) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:108) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Suppressed: org.sonatype.nexus.repository.IllegalOperationException: Repository does not allow updating assets: releases at org.sonatype.nexus.repository.storage.StorageTxImpl.maybeDeleteBlob(StorageTxImpl.java:790) at org.sonatype.nexus.repository.storage.StorageTxImpl.attachBlob(StorageTxImpl.java:688) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63) at com.sun.proxy.$Proxy199.attachBlob(Unknown Source) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.putAssetPayload(MavenFacetImpl.java:432) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.putFile(MavenFacetImpl.java:419) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.doPutAssetBlob(MavenFacetImpl.java:299) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.doPut(MavenFacetImpl.java:249) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:45) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.put(MavenFacetImpl.java:201) at org.sonatype.nexus.repository.maven.internal.MavenIndexPublisher$Maven2WritableResource.close(MavenIndexPublisher.java:462) at org.apache.maven.index.reader.IndexWriter.writeChunk(IndexWriter.java:161) at org.sonatype.nexus.repository.maven.internal.MavenIndexPublisher.lambda$0(MavenIndexPublisher.java:216) at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:200) at org.sonatype.nexus.transaction.Operations.call(Operations.java:146) at org.sonatype.nexus.repository.maven.internal.MavenIndexPublisher.publishHostedIndex(MavenIndexPublisher.java:211) at org.sonatype.nexus.repository.maven.internal.hosted.MavenHostedIndexFacet.publishIndex(MavenHostedIndexFacet.java:38) at org.sonatype.nexus.repository.maven.tasks.PublishMavenIndexTask.execute(PublishMavenIndexTask.java:37) at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:73) ... 12 common frames omitted Suppressed: org.sonatype.nexus.repository.IllegalOperationException: Repository does not allow updating assets: releases at org.sonatype.nexus.repository.storage.StorageTxImpl.maybeDeleteBlob(StorageTxImpl.java:790) at org.sonatype.nexus.repository.storage.StorageTxImpl.attachBlob(StorageTxImpl.java:688) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63) at com.sun.proxy.$Proxy199.attachBlob(Unknown Source) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.putAssetPayload(MavenFacetImpl.java:432) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.putFile(MavenFacetImpl.java:419) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.doPutAssetBlob(MavenFacetImpl.java:299) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.doPut(MavenFacetImpl.java:249) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:45) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.put(MavenFacetImpl.java:201) at org.sonatype.nexus.repository.maven.internal.MavenIndexPublisher$Maven2WritableResource.close(MavenIndexPublisher.java:462) at org.apache.maven.index.reader.Utils.storeProperties(Utils.java:115) at org.apache.maven.index.reader.IndexWriter.close(IndexWriter.java:177) at org.sonatype.nexus.repository.maven.internal.MavenIndexPublisher.lambda$0(MavenIndexPublisher.java:225) ... 20 common frames omitted {noformat} Also, when the task fails in some circumstances it can leave blob references in the database that are deleted from the blob store. Future runs of the task may throw MissingBlobException - see NEXUS-16560 ",1 +"NEXUS-16312","02/23/2018 13:30:13","Metadata for NPM group considers pre-release version higher than actual version","[https://semver.org/#spec-item-11] it says:  Example: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0.  So, semantic versioning considers anything with “-” a prerelease so 1.0.0-SNAPSHOT is considered prerelease and 1.0.0 is bigger than 1.0.0-SNAPSHOT. 1) Upload a package to hosted npm repo npm-snapshot with version 1.0.0-SNAPSHOT 2) Upload a package to hosted npm repo npm-release with version 1.0.0. For repo npm-snapshot 1.0.0-SNAPSHOT is latest For repo npm-release 1.0.0 is latest 3) Look at the group metadata, you will notice that it sets 1.0.0-SNAPSHOT as the latest {noformat} { ""description"": ""MKS Testing"", ""dist-tags"": { ""latest"": ""1.0.0-SNAPSHOT"" }, ""maintainers"": [ { ""email"": ""mks@example.com"", ""name"": ""admin"" } ], ""name"": ""testdeploy"", ""readme"": ""ERROR: No README data found!"", ""time"": { ""1.0.0"": ""2018-02-22T15:19:01.131Z"", ""1.0.0-SNAPSHOT"": ""2018-02-22T15:17:09.441Z"", ""created"": ""2018-02-22T15:19:01.131Z"", ""modified"": ""2018-02-22T15:19:01.131Z"" }, {noformat}   ""npm install testdeploy""  from group repo will return 1.0.0-SNAPSHOT, as 1.0.0-SNAPSHOT set as latest. Even if look at the deploy times 1.0.0 is deployed later than 1.0.0-SNAPSHOT. So there may be some issue with npm group logic on picking which version should be latest as there is a latest tag on each member npm repos.   A workaround is do a ""{{npm install package@*""}} which will exclude prereleases.",3 +"NEXUS-16317","02/23/2018 15:50:42","NuGet group repository package requests may respond with URLs to member repositories","From: https://groups.google.com/a/glists.sonatype.com/d/msgid/nexus-users/f2f39b37-7d39-45b1-96c1-a9dd5677672f%40glists.sonatype.com?utm_medium=email&utm_source=footer I have multiple repositories: nuget-dotnet-firstparty nuget-dotnet-thirdparty nuget-dotnet-generated etc and a group repository called: nuget-dotnet which brings all of the above together. This is all on the server ""DepServer"". When I try to do a ""nuget restore"" when the client has access to nuget-dotnet (the group repository) only I get the following: WARNING: Error downloading 'MyPackage.1.2.3' from 'https://DepServer:8443/repository/nuget-dotnet-firstparty/MyPackage/1.2.3'. The HTTP request to 'GET https://DepServer:8443/repository/nuget-dotnet-firstparty/MyPackage/1.2.3' has timed out after 100000ms Now, the client has no references to ""nuget-dotnet-firstparty"", and so no security access set up for it. But it shouldn't need it, because it has access to the group. I couldn't work out why it was that it was having this issue, so I went looking through the information on the server via the nuget protocol. What I found was: https://DepServer:8443/repository/nuget-dotnet/ points to https://DepServer:8443/repository/nuget-dotnet/Packages Each entry has a link with a title of V2FeedPackage an an href of ""Packages(Id='MyPackage',Version='1.2.3')"" Following one of those URLs shows that a line with - content type=""application/zip"" and a src of ""https://DepServer:8443/repository/nuget-dotnet-firstparty/MyPackage/1.2.3"" However, as the client has no access to the ""nuget-dotnet-firstparty"" repository, only to the group repository, that's when the error occurs. h4. Expected Responses from group requests should only reference urls to the group repo, not group members. ",3 +"NEXUS-16319","02/23/2018 17:13:24","Publishing maven indexes against large repository has poor performance, gets OrientDB profiler warning","Publishing maven indexes against a large repository can run very slowly. The OrientDb profiler emits a warning when the task is run indicating that the query being run is returning a result set that is too large:   {quote} 2018-02-23 08:20:16,493-0700 INFO [Thread-41067] *SYSTEM com.orientechnologies.common.profiler.OProfilerStub - $ANSI\{green \{db=component}} [TIP] Query 'SELECT last_updated AS lastModified, component.group AS groupId, component.name AS artifactId, component.attributes.maven2.baseVersion AS version, component.attributes.maven2.packaging AS packaging, component.attributes.maven2.pom_name AS pom_name, component.attributes.maven2.pom_description AS pom_description, attributes.maven2.classifier AS classifier, name AS path, attributes.content.last_modified AS contentLastModified, size AS contentSize, attributes.checksum.sha1 AS sha1 FROM asset WHERE bucket = [#129|https://sonatype.zendesk.com/agent/tickets/129]:1 AND attributes.maven2.asset_kind = ""ARTIFACT"" AND component IS NOT NULL' returned a result set with more than 10000 records. Check if you really need all these records, or reduce the resultset by using a LIMIT to improve both performance and used RAM {quote} ",8 +"NEXUS-16387","02/26/2018 22:20:36","Attempting to rebuild browse nodes for deleted repositories results in NullPointerException on startup","When a repository is deleted, it is marked as such by renaming it to an obscure name in the database. This renaming will allow an end user to avoid referential integrity issues should they wish to create a new repository with the same name. When scheduled tasks run against ""All Repositories"", the list may include these obscurely named deleted repos. An example where this was seen in practice is in the following logging in Nexus 3.7.1 at startup: {noformat} 2018-02-26 14:50:58,110-0600 INFO [quartz-5-thread-6] node1 *SYSTEM org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask - Task information: 2018-02-26 14:50:58,119-0600 INFO [quartz-5-thread-6] node1 *SYSTEM org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask - ID: 6ef855ce-ca44-4fd5-a4d2-073243c5a31d 2018-02-26 14:50:58,119-0600 INFO [quartz-5-thread-6] node1 *SYSTEM org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask - Type: create.browse.nodes 2018-02-26 14:50:58,119-0600 INFO [quartz-5-thread-6] node1 *SYSTEM org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask - Name: Rebuild repository browse tree - (nuget-org$bd2642ad-f5ed-4fd6-a393-94171560b19a) 2018-02-26 14:50:58,119-0600 INFO [quartz-5-thread-6] node1 *SYSTEM org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask - Description: Rebuilding browse tree for nuget-org$bd2642ad-f5ed-4fd6-a393-94171560b19a 2018-02-26 14:50:58,125-0600 ERROR [quartz-5-thread-6] node1 *SYSTEM org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask - Failed to run task 'Rebuilding browse tree for nuget-org$bd2642ad-f5ed-4fd6-a393-94171560b19a' java.lang.NullPointerException: null at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:770) at org.sonatype.nexus.repository.RepositoryTaskSupport.findRepositories(RepositoryTaskSupport.java:89) at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:66) at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:93) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:108) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 2018-02-26 14:50:58,125-0600 INFO [quartz-5-thread-6] node1 *SYSTEM org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask - Task complete 2018-02-26 14:50:58,153-0600 INFO [quartz-5-thread-3] node1 *SYSTEM org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask - Task information: 2018-02-26 14:50:58,153-0600 INFO [quartz-5-thread-3] node1 *SYSTEM org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask - ID: 16b41512-b6cc-45cd-9b85-b2b7d743e28b 2018-02-26 14:50:58,154-0600 INFO [quartz-5-thread-3] node1 *SYSTEM org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask - Type: create.browse.nodes 2018-02-26 14:50:58,154-0600 INFO [quartz-5-thread-3] node1 *SYSTEM org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask - Name: Rebuild repository browse tree - (nuget-org) 2018-02-26 14:50:58,154-0600 INFO [quartz-5-thread-3] node1 *SYSTEM org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask - Description: Rebuilding browse tree for nuget-org 2018-02-26 14:51:00,858-0600 INFO [quartz-5-thread-3] node1 *SYSTEM org.sonatype.nexus.repository.storage.BrowseNodeStoreImpl - Deleted 712 browse nodes for repository nuget-org in 2.704 s 2018-02-26 14:51:10,083-0600 INFO [quartz-5-thread-3] node1 *SYSTEM org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask - rebuilding tree for 0 assets took 1 ms of 9177 ms, 7356 / 7356 assets processed 2018-02-26 14:51:10,084-0600 INFO [quartz-5-thread-3] node1 *SYSTEM org.sonatype.nexus.repository.browse.internal.RebuildBrowseNodesTask - Task complete {noformat} h4. Expected Mainly the NullPointerException should not happen. Since deleted repos are effectively ""gone"" - tasks should not be able to retrieve a list of repositories that includes deleted repositories by default. If there is a valid use case for processing deleted repos with a task, the task should explicitly handle asking for a list which may include them ( although I am unaware of such use case at this time ). ",2 +"NEXUS-16392","02/27/2018 15:24:53","Nexus does not interpret + signs at URLs correctly","See https://github.com/NuGet/Home/issues/3858 , I have the same issue. What I observe when calling NCR's Nexus installation: ``` > http://***.com/nexus/service/local/nuget/repo-name/Nuget.Name/1.2.3+09d6b7c 404 Path /Nuget.Name/1.2.3 09d6b7c/Nuget.Name-1.2.3 09d6b7c.nupkg not found in local storage of repository ""Repository"" [id=repo-name] ``` Note the `+` sign missing in the response. Now when I escape manually: ``` > http://***.com/nexus/service/local/nuget/repo-name/Nuget.Name/1.2.3%2B09d6b7c [download offered] ``` According sources for simpletons like me like ( https://stackoverflow.com/a/2678602/577067 ), it seems to me that you should not replace + by space in the path component of URLs. You should present me with the NuGet package for the first query. Until this is fixed, we can't use SemVer 2 with Nexus.",0 +"NEXUS-16393","02/27/2018 16:11:18","NullPointerException when merging group GAV maven-metadata.xml for non-timestamped snapshot","Nexus 3.8.0 gets an NPE when merging GAV level maven-metadata.xml files from non-timestamped snapshot deploys.  Example maven-metadata.xml file: {code:java} org.sonatype project 1.1.5-SNAPSHOT 1 20180227155805 {code} When this file is merged with another repository's maven-metadata.xml file at the group level you get an NPE, and a 500 response: {noformat} 2018-02-27 10:04:10,600-0600 WARN [qtp335821775-167] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: GET /repository/maven-public/org/sonatype/project/1.1.5-SNAPSHOT/maven-metadata.xml java.lang.NullPointerException: null at org.sonatype.nexus.repository.maven.internal.group.RepositoryMetadataMerger.ts(RepositoryMetadataMerger.java:379) at org.sonatype.nexus.repository.maven.internal.group.RepositoryMetadataMerger.mergeVersioning(RepositoryMetadataMerger.java:337) at org.sonatype.nexus.repository.maven.internal.group.RepositoryMetadataMerger.merge(RepositoryMetadataMerger.java:264) at org.sonatype.nexus.repository.maven.internal.group.RepositoryMetadataMerger.merge(RepositoryMetadataMerger.java:191) at org.sonatype.nexus.repository.maven.internal.group.RepositoryMetadataMerger.merge(RepositoryMetadataMerger.java:87) at org.sonatype.nexus.repository.maven.internal.group.MavenGroupFacet.mergeAndCache(MavenGroupFacet.java:125) at org.sonatype.nexus.repository.maven.internal.group.MergingGroupHandler.doGet(MergingGroupHandler.java:98) at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:81) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:44) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.Context.start(Context.java:114) at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:63) at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:211) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:173) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:126) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) {noformat}   *Reproduce Case*:  Create two snapshot repositories, put them in a group repository.  Deploy a normal timestamped snapshot into the first one.  For the second one, put ""false"" in the distributionManagement section in the pom file, and deploy using 2.2.1.   Then attempt to retreive the GAV level maven-metadata.xml file through the group repository.   *Expected #1*: Nexus should be able to handle files like these, there are still commonly used tools  (Ivy) that can't deploy timestamped snapshots. *Expected #2*: In the more general case, if Nexus encounters a maven-metadata.xml file it can't parse during merge it should log a warning, and ignore the bad file.  ",2 +"NEXUS-16401","02/28/2018 14:27:12","PyPi hosted repository packages can only be searched by pep-0503 normalized name","Use twine to upload a python package with a special character in its name, such as ""jyt.python"" into a hosted pypi repository: 1. python setup.py sdist --formats=gztar 2. twine upload FILENAME.tar.gz --repository-url NEXUS_PYPI_URL Then try to use the REST API or UI search to find this package by its name. Searching using ""jyt.python"" will not work, but ""jyt_python"" will work. This appears to be due to the normalization of names applied by Nexus as defined by [https://www.python.org/dev/peps/pep-0503/#normalized-names] . Contrary, when using a PyPi proxy to a python package with ""."" in its name, Nexus stores this name NOT normalized and searching without an underscore will work. h4. Expected - one should be able to find PyPi packages using REST or UI search in a consistent way regardless of name normalization or the repository type containing the package - Updated: a discussion on the implications of this ticket was held on 11/08/18. To fully implement this ticket would require an upgrade step. This was felt unnecessary at the moment, therefore only new uploaded packages will be able to search on both normalized and non-normalized package names.",3 +"NEXUS-16409","03/01/2018 11:34:04","Ability to DELETE from a yum hosted repository","When testing yum repositories it was realized that there is currently no implementation of http DELETE to allow deletion of rpms While there is a way to delete via the REST API ( [see mailing list answer|https://groups.google.com/a/glists.sonatype.com/d/msg/nexus-users/bVLQHtkDYAU/dx4c4g3pDAAJ] ) - a standard HTTP DELETE to the path of the RPM file should be allowed as well, similar to RAW or Maven repos. Nexus 2.x supported this and there are no YUM repository format rules that disallow this. *Acceptance* # RPMs can be deleted by making a http DELETE request. Updating yum metadata asynchronously from this action should be handled as well.( ie. do not block the delete waiting for metadata to update ) # Attempting a DELETE of metadata will return a http 405 (NOT_ALLOWED) as these files will be updated automatically. # Maven files (e.g. pom.xml) and other file types in PERMISSIVE repositories can be deleted by making a http DELETE request.",2 +"NEXUS-16425","03/02/2018 17:47:06","Download Endpoint Returns Checksum Files if Maven Classifier Param is Set","When calling /beta/search/assets or /beta/search/assets/download with both the maven classifier and maven extension parameters, the response returns the checksum files along with the asset specified in the extension. For example calling: [http://localhost:8081/service/rest/beta/search/assets?repository=maven-releases&version=1.0.1&maven.groupId=org.foo&maven.artifactId=bar.project&maven.extension=jar&maven.classifier=blah|http://localhost:8081/service/rest/beta/search/assets?repository=maven-releases&version=1.0.1&maven.groupId=org.foo&maven.artifactId=bar.project&maven.extension=zip&maven.classifier=blah] Will result in the jar asset as well as its checksum files being returned. It is expected that only the jar will be returned. Omitting the classifier parameter results in only the jar being returned as expected.    ",1 +"NEXUS-16430","03/05/2018 12:18:06","Connection reset when uploading large file using Apache Ivy","Not entierly sure if this is bug or not. We had a build job which uploaded a few fairly large (~200Mb) artifacts to artifacts to nexus 2 with apache ivy. After upgrade this build job will not work any more. The reason is that Ivy cannot be set to authenticate preemptively to nexus. So what happens is that ivy immediately sends the request without authentication header to nexus and eventually nexus times out with a ""connection reset"" error. Nexus is trying to read the request to be able to reply back with a WWW-Authenticate response, but instead just resets the connection. If however the same request is made with authentication header, then the nexus will not time out, and everything will work as expected. It seems to me that there are two different timeouts being used here. And no apparent way to configure any of them.   Using Nexus 3.7.1",1 +"NEXUS-16449","03/05/2018 17:06:39","Role to privilege cache gets cleared out at inappropriate times due to use of weak references","  The default security realm in Nexus holds a cache of roles to privileges using a map that has weakly referenced values.  [https://github.com/sonatype/nexus-public/blob/release-2.14.4-03/components/nexus-security-realms/src/main/java/org/sonatype/security/realms/XmlRolePermissionResolver.java#L79] This means that there is the potential for this map to lose all it's values every time Java runs garbage collection.  Rebuilding this map can be expensive on a heavily loaded instance, because the requests threads can experience considerable lock contention as they try to put new values into the map. In Nexus 3.x we changed this map to use soft references. This prevents the values from being reclaimed unless heap memory is actually low.  We should make the same change in Nexus 2.",1 +"NEXUS-16450","03/05/2018 17:48:30","Upgrade to OrientDB 2.2.34 to pick up HA sync and backup fixes","Changes since last release we picked up (2.2.31): https://github.com/orientechnologies/orientdb/wiki/OrientDB-2.2-Release-Notes#2234---april-12-2018 https://github.com/orientechnologies/orientdb/wiki/OrientDB-2.2-Release-Notes#2233---march-5-2018 https://github.com/orientechnologies/orientdb/wiki/OrientDB-2.2-Release-Notes#2232---february-5-2018 Note: 2.2.33 introduced an HA regression around sync'ing of delta changes which was fixed in 2.2.34",1 +"NEXUS-16453","03/05/2018 20:10:11","Search field clearing for /#security-users","If I use the X next to the search button to clear the field, it disappears and I'm not able to clear the field again this way until I refresh my Nexus tab or re-login. Happens in https://oss.sonatype.org/#security-users and with ""All Authorized Users"" in the drop-down. Have not reproduced elsewhere.",1 +"NEXUS-16457","03/05/2018 22:47:15","Help - Issue tracker link currently defunct","In the help menu, if you click on ""Issue Tracker"" the link currently goes to links.sonatype.com/products/nexus/issues which redirects to https://support.sonatype.com/hc/en-us/articles/213466158-Sonatype-Nexus-Issues which is a non-existant page. I suspect the link broke and this affects all versions but I haven't checked back at this time.",1 +"NEXUS-16461","03/06/2018 17:48:00","New ruby gems dependency files are cached in blob storage every time Nexus requests them from a proxy repository remote","After installing bundler using the ""gem"" command, I have these two files in my blobstore: {code:java} $ find . -name \*.properties | xargs grep dep |grep bundle.ruby ./default/content/vol-14/chap-12/2275cf69-8d11-4358-9db3-aeef478ab151.properties:@BlobStore.blob-name=/dependencies/bundle.ruby ./default/content/vol-42/chap-03/22c81bc4-835b-4fdc-9fb4-2e3f3ee36707.properties:@BlobStore.blob-name=/dependencies/bundle.ruby{code} After this, I expired cache in my rubygems.org proxy repository, and then requested this (just once): [http://localhost:8081/repository/rubygems-proxy/api/v1/dependencies?gems=bundle] And now I have: {code:java} $ find . -name \*.properties | xargs grep dep |grep bundle.ruby ./default/content/vol-14/chap-12/2275cf69-8d11-4358-9db3-aeef478ab151.properties:@BlobStore.blob-name=/dependencies/bundle.ruby ./default/content/vol-23/chap-47/c3542d69-4f1c-476c-8ed4-2e4e2dd9f71a.properties:@BlobStore.blob-name=/dependencies/bundle.ruby ./default/content/vol-01/chap-41/8d4ed298-039b-4d9f-bca5-55d9ab09c1fe.properties:@BlobStore.blob-name=/dependencies/bundle.ruby ./default/content/vol-42/chap-03/22c81bc4-835b-4fdc-9fb4-2e3f3ee36707.properties:@BlobStore.blob-name=/dependencies/bundle.ruby{code} Those older blobs are not marked for deletion, running compact blobstore does not remove them. Every time cache expires and the dependency request is made two more dependency files are cached. Over time, these will consume quite a lot of space. h5. Expected:  # Older dependency files should be deleted as new ones are downloaded from the remote.  # Ideally, if the content of the file has not changed, no new file will be stored. # We will need to publish a groovy script that can find the ""orphaned"" dependency blobs created by this bug and delete them.",1 +"NEXUS-16475","03/07/2018 14:23:39","DELETE asset REST endpoint for yum should not delete component","I noticed that when a delete by asset is done on a yum hosted repository that it also deletes the component, this in turn will delete the remaining assets of the component.  *To reproduce:* # Upload two rpms for different architectures, I used bakefile from [http://mirror.centos.org/centos/6/extras/i386/Packages/bakefile-0.2.8-3.el6.centos.i686.rpm] and [http://mirror.centos.org/centos/6/extras/x86_64/Packages/bakefile-0.2.8-3.el6.centos.x86_64.rpm] # Use the rest api to perform a search: [http://localhost:8081/service/rest/beta/search?repository=yum-hosted&format=yum&name=bakefile&version=0.2.8-3.el6.centos] will return something similar to the response shown below, i.e. one component containing two assets. # Use one of the assets id value to issue a delete [http://localhost:8081/service/rest/beta/assets/eXVtLWhvc3RlZDoyZmZmNTA5YTdjMmE5ZWJlMjI1MmIxNTY5OWI3MzdjYg] # Perform the same search as in step 1 # Observe that the component and all rpms have now been deleted.   {code:java} {     ""items"": [         {             ""id"": ""eXVtLWhvc3RlZDpkMDY0ODA0YThlZDVhZDZlNjhmZGU5MWNmM2NiZTgzMw"",             ""repository"": ""yum-hosted"",             ""format"": ""yum"",             ""group"": null,             ""name"": ""bakefile"",             ""version"": ""0.2.8-3.el6.centos"",             ""assets"": [                 {                     ""downloadUrl"": ""http://localhost:8081/repository/yum-hosted/Packages/bakefile-0.2.8-3.el6.centos.i686.rpm"",                     ""path"": ""Packages/bakefile-0.2.8-3.el6.centos.i686.rpm"",                     ""id"": ""eXVtLWhvc3RlZDoyZmZmNTA5YTdjMmE5ZWJlMjI1MmIxNTY5OWI3MzdjYg"",                     ""repository"": ""yum-hosted"",                     ""format"": ""yum"",                     ""checksum"": {                         ""sha1"": ""998b85a31cf312a606d60f8bdd39ba4e0a8a6c48"",                         ""sha512"": ""1d46970a27058884860da581cd569a75c7266e31c7512f9eced9613e663bd9796ea0b117eea442fe69950d37cc6d2b4c6ed07dfd14ef1e847a719b4fd1817c78"",                         ""sha256"": ""4dbabf0c42761b478cd64379d46ed903567e655ca1d345f16e17c5ffb122563b"",                         ""md5"": ""0b59132945f9d60ec000e21c480d864a""                     }                 },                 {                     ""downloadUrl"": ""http://localhost:8081/repository/yum-hosted/Packages/bakefile-0.2.8-3.el6.centos.x86_64.rpm"",                     ""path"": ""Packages/bakefile-0.2.8-3.el6.centos.x86_64.rpm"",                     ""id"": ""eXVtLWhvc3RlZDoyNGMxZmUzMzVkMjY2NTJmODdmYTdhNzQ5ZWI0YTUwYQ"",                     ""repository"": ""yum-hosted"",                     ""format"": ""yum"",                     ""checksum"": {                         ""sha1"": ""24ec6ddf8bbcdf0eefaed3daeac705747f025eb9"",                         ""sha512"": ""6d2f131fac7fb69073c88bfbe7f689b54b0e1d943292483e8a455d80764fd8183f2cbdbf05cb4c9071a36ca3897bd61c4fabbf204c276b73df0f7cac195c32b3"",                         ""sha256"": ""261f2006a15aae21008181b687878d8b81081b52a1df74f82e8cc326c40c78c3"",                         ""md5"": ""71c01c1f9a0f155650e517609ecc065a""                     }                 }             ],             ""tags"": []         }     ],     ""continuationToken"": null } {code} *Acceptance Criteria* # delete by asset should not delete the component when other assets are associated with the component. # delete by component should delete itself and all associated assets.",3 +"NEXUS-16476","03/07/2018 14:46:39","API key changes when the regular account password changes","NuGet API keys should be tied to identity ( username + realm identity), and identity should not include profile attributes such as regular password, user first name, last name, or email. Nexus 3.x: Change the regular password of a repository manager user account. This will change the NuGet API key as well. This should not happen. Nexus 2.x does not change the NuGet API key when password or any other account profile data changes. Related mailing list exchange: https://groups.google.com/a/glists.sonatype.com/d/msgid/nexus-users/19330e21-3372-418f-9cd3-0b4c8fa89f69%40glists.sonatype.com?utm_medium=email&utm_source=footer ",2 +"NEXUS-16510","03/12/2018 16:35:17","Remove Releases from Repository task may fail with IllegalArgumentException Comparison method violates its general contract!","Deploy into a hosted Maven releases repository ( id: releases ) versions of the same GA that have a mixture of versions such as: {noformat} bfa95965e5c07119dfd2de9027b951cb3f00c3b1 b757439047fdd45630984e5c563ed5f64ba586cc 7223da04d05b82e3262bfe3d1daa7650d79db3d0 1.1.2 1.1.1 {noformat} See attached versions.txt for the complete list of versions used in the reproduce case. Then run a Remove Releases from Repository scheduled task that tries to remove released versions against this repo. When the task is run with these settings: Repository: Releases Number to Keep: 500 Repository Target: All (Maven 2) *Use Index: True ( checked )* It fails like this: {noformat} jvm 1 | 2018-03-12 13:13:43,603-0300 WARN [pxpool-1-thread-1] admin org.sonatype.nexus.maven.tasks.ReleaseRemoverTask - Scheduled task (remove-releaes) failed :: Removing old releases from repository Releases (started 2018-03-12T13:13:43-03:00, runtime 0:00:00.116) jvm 1 | java.lang.IllegalArgumentException: Comparison method violates its general contract! jvm 1 | at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:866) ~[na:1.8.0_152] jvm 1 | at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:483) ~[na:1.8.0_152] jvm 1 | at java.util.ComparableTimSort.mergeCollapse(ComparableTimSort.java:404) ~[na:1.8.0_152] jvm 1 | at java.util.ComparableTimSort.sort(ComparableTimSort.java:213) ~[na:1.8.0_152] jvm 1 | at java.util.Arrays.sort(Arrays.java:1312) ~[na:1.8.0_152] jvm 1 | at java.util.Arrays.sort(Arrays.java:1506) ~[na:1.8.0_152] jvm 1 | at java.util.ArrayList.sort(ArrayList.java:1462) ~[na:1.8.0_152] jvm 1 | at java.util.Collections.sort(Collections.java:141) ~[na:1.8.0_152] jvm 1 | at org.sonatype.nexus.index.releaseremover.IndexReleaseRemoverBackend.removeReleases(IndexReleaseRemoverBackend.java:145) ~[na:na] jvm 1 | at org.sonatype.nexus.maven.tasks.DefaultReleaseRemover.process(DefaultReleaseRemover.java:137) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.DefaultReleaseRemover.removeReleases(DefaultReleaseRemover.java:86) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.ReleaseRemoverTask.doRun(ReleaseRemoverTask.java:51) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.ReleaseRemoverTask.doRun(ReleaseRemoverTask.java:26) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:163) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) [nexus-scheduler-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.3.2.jar:1.3.2] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.3.2.jar:1.3.2] jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_152] jvm 1 | at java.lang.Thread.run(Thread.java:748) [na:1.8.0_152] jvm 1 | 2018-03-12 13:13:43,610-0300 WARN [pxpool-1-thread-1] admin org.sonatype.scheduling.DefaultScheduledTask - Exception in call method of scheduled task remove-releaes jvm 1 | java.lang.IllegalArgumentException: Comparison method violates its general contract! jvm 1 | at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:866) ~[na:1.8.0_152] jvm 1 | at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:483) ~[na:1.8.0_152] jvm 1 | at java.util.ComparableTimSort.mergeCollapse(ComparableTimSort.java:404) ~[na:1.8.0_152] jvm 1 | at java.util.ComparableTimSort.sort(ComparableTimSort.java:213) ~[na:1.8.0_152] jvm 1 | at java.util.Arrays.sort(Arrays.java:1312) ~[na:1.8.0_152] jvm 1 | at java.util.Arrays.sort(Arrays.java:1506) ~[na:1.8.0_152] jvm 1 | at java.util.ArrayList.sort(ArrayList.java:1462) ~[na:1.8.0_152] jvm 1 | at java.util.Collections.sort(Collections.java:141) ~[na:1.8.0_152] jvm 1 | at org.sonatype.nexus.index.releaseremover.IndexReleaseRemoverBackend.removeReleases(IndexReleaseRemoverBackend.java:145) ~[na:na] jvm 1 | at org.sonatype.nexus.maven.tasks.DefaultReleaseRemover.process(DefaultReleaseRemover.java:137) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.DefaultReleaseRemover.removeReleases(DefaultReleaseRemover.java:86) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.ReleaseRemoverTask.doRun(ReleaseRemoverTask.java:51) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.ReleaseRemoverTask.doRun(ReleaseRemoverTask.java:26) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:163) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) ~[nexus-scheduler-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.3.2.jar:1.3.2] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.3.2.jar:1.3.2] jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_152] jvm 1 | at java.lang.Thread.run(Thread.java:748) [na:1.8.0_152] {noformat} When the task is run with *Use index: False ( unchecked )* the task also fails with a slightly different stack: {noformat} jvm 1 | 2018-03-12 13:19:53,374-0300 WARN [pxpool-1-thread-1] admin org.sonatype.nexus.proxy.walker.DefaultWalker - Aborted walking on repository ""Releases"" [id=releases] from path ""/"", cause: Comparison method violates its general contract! jvm 1 | java.lang.IllegalArgumentException: Comparison method violates its general contract! jvm 1 | at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:866) ~[na:1.8.0_152] jvm 1 | at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:483) ~[na:1.8.0_152] jvm 1 | at java.util.ComparableTimSort.mergeCollapse(ComparableTimSort.java:404) ~[na:1.8.0_152] jvm 1 | at java.util.ComparableTimSort.sort(ComparableTimSort.java:213) ~[na:1.8.0_152] jvm 1 | at java.util.Arrays.sort(Arrays.java:1312) ~[na:1.8.0_152] jvm 1 | at java.util.Arrays.sort(Arrays.java:1506) ~[na:1.8.0_152] jvm 1 | at java.util.ArrayList.sort(ArrayList.java:1462) ~[na:1.8.0_152] jvm 1 | at java.util.Collections.sort(Collections.java:141) ~[na:1.8.0_152] jvm 1 | at org.sonatype.nexus.maven.tasks.WalkerReleaseRemoverBackend$ReleaseRemovalWalkerProcessor.afterWalk(WalkerReleaseRemoverBackend.java:270) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.afterWalk(DefaultWalker.java:342) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:102) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.WalkerReleaseRemoverBackend.removeReleases(WalkerReleaseRemoverBackend.java:103) [nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.DefaultReleaseRemover.process(DefaultReleaseRemover.java:137) [nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.DefaultReleaseRemover.removeReleases(DefaultReleaseRemover.java:86) [nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.ReleaseRemoverTask.doRun(ReleaseRemoverTask.java:51) [nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.ReleaseRemoverTask.doRun(ReleaseRemoverTask.java:26) [nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:163) [nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) [nexus-scheduler-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.3.2.jar:1.3.2] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.3.2.jar:1.3.2] jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_152] jvm 1 | at java.lang.Thread.run(Thread.java:748) [na:1.8.0_152] jvm 1 | 2018-03-12 13:19:53,375-0300 WARN [pxpool-1-thread-1] admin org.sonatype.nexus.maven.tasks.ReleaseRemoverTask - Scheduled task (remove-releaes) failed :: Removing old releases from repository Releases (started 2018-03-12T13:19:49-03:00, runtime 0:00:03.490) jvm 1 | org.sonatype.nexus.proxy.walker.WalkerException: Aborted walking on repository ID='releases' from path='/'. jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.reportWalkEnd(DefaultWalker.java:153) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:118) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.WalkerReleaseRemoverBackend.removeReleases(WalkerReleaseRemoverBackend.java:103) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.DefaultReleaseRemover.process(DefaultReleaseRemover.java:137) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.DefaultReleaseRemover.removeReleases(DefaultReleaseRemover.java:86) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.ReleaseRemoverTask.doRun(ReleaseRemoverTask.java:51) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.ReleaseRemoverTask.doRun(ReleaseRemoverTask.java:26) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:163) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) [nexus-scheduler-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.3.2.jar:1.3.2] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.3.2.jar:1.3.2] jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_152] jvm 1 | at java.lang.Thread.run(Thread.java:748) [na:1.8.0_152] jvm 1 | Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract! jvm 1 | at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:866) ~[na:1.8.0_152] jvm 1 | at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:483) ~[na:1.8.0_152] jvm 1 | at java.util.ComparableTimSort.mergeCollapse(ComparableTimSort.java:404) ~[na:1.8.0_152] jvm 1 | at java.util.ComparableTimSort.sort(ComparableTimSort.java:213) ~[na:1.8.0_152] jvm 1 | at java.util.Arrays.sort(Arrays.java:1312) ~[na:1.8.0_152] jvm 1 | at java.util.Arrays.sort(Arrays.java:1506) ~[na:1.8.0_152] jvm 1 | at java.util.ArrayList.sort(ArrayList.java:1462) ~[na:1.8.0_152] jvm 1 | at java.util.Collections.sort(Collections.java:141) ~[na:1.8.0_152] jvm 1 | at org.sonatype.nexus.maven.tasks.WalkerReleaseRemoverBackend$ReleaseRemovalWalkerProcessor.afterWalk(WalkerReleaseRemoverBackend.java:270) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.afterWalk(DefaultWalker.java:342) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:102) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | ... 16 common frames omitted jvm 1 | 2018-03-12 13:19:53,381-0300 WARN [pxpool-1-thread-1] admin org.sonatype.scheduling.DefaultScheduledTask - Exception in call method of scheduled task remove-releaes jvm 1 | org.sonatype.nexus.proxy.walker.WalkerException: Aborted walking on repository ID='releases' from path='/'. jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.reportWalkEnd(DefaultWalker.java:153) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:118) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.WalkerReleaseRemoverBackend.removeReleases(WalkerReleaseRemoverBackend.java:103) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.DefaultReleaseRemover.process(DefaultReleaseRemover.java:137) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.DefaultReleaseRemover.removeReleases(DefaultReleaseRemover.java:86) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.ReleaseRemoverTask.doRun(ReleaseRemoverTask.java:51) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.maven.tasks.ReleaseRemoverTask.doRun(ReleaseRemoverTask.java:26) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.scheduling.AbstractNexusTask.call(AbstractNexusTask.java:163) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.scheduling.DefaultScheduledTask.call(DefaultScheduledTask.java:418) ~[nexus-scheduler-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.3.2.jar:1.3.2] jvm 1 | at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.3.2.jar:1.3.2] jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_152] jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_152] jvm 1 | at java.lang.Thread.run(Thread.java:748) [na:1.8.0_152] jvm 1 | Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract! jvm 1 | at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:866) ~[na:1.8.0_152] jvm 1 | at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:483) ~[na:1.8.0_152] jvm 1 | at java.util.ComparableTimSort.mergeCollapse(ComparableTimSort.java:404) ~[na:1.8.0_152] jvm 1 | at java.util.ComparableTimSort.sort(ComparableTimSort.java:213) ~[na:1.8.0_152] jvm 1 | at java.util.Arrays.sort(Arrays.java:1312) ~[na:1.8.0_152] jvm 1 | at java.util.Arrays.sort(Arrays.java:1506) ~[na:1.8.0_152] jvm 1 | at java.util.ArrayList.sort(ArrayList.java:1462) ~[na:1.8.0_152] jvm 1 | at java.util.Collections.sort(Collections.java:141) ~[na:1.8.0_152] jvm 1 | at org.sonatype.nexus.maven.tasks.WalkerReleaseRemoverBackend$ReleaseRemovalWalkerProcessor.afterWalk(WalkerReleaseRemoverBackend.java:270) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.afterWalk(DefaultWalker.java:342) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | at org.sonatype.nexus.proxy.walker.DefaultWalker.walk(DefaultWalker.java:102) ~[nexus-core-2.14.3-02.jar:2.14.3-02] jvm 1 | ... 16 common frames omitted {noformat} h4. Explanation The Maven repository format does not strictly enforce non-semantic type versions: https://maven.apache.org/guides/mini/guide-naming-conventions.html However, in order for the task to decide which 500 release versions to keep, it must sort them in order of highest to lowest. Since it is impossible to accurately determine if a hash style version number is sorted before or after a semantic style version, using the Remove Releases from Repository task against such a set of mixed versions is not reliable. h4. Expected The task should not fail since there is no explicit Maven repository format rule that does not allow mixing both types of version numbers. However since the task is trying to determine which versions to keep after sorting them, and it can't reliably do this in this case, the task should skip problem GAs with mixed versions it encounters and log all the found versions for the GA it found with the problem at WARN level in the log. Cleaning up such mixed versions releases is left as an exercise to the Nexus Administrator. ",2 +"NEXUS-16527","03/13/2018 15:33:27","NotSerializableException com.orientechnologies.orient.core.sql.OSoftQueryResultList","In an 3.9.0 HA-C cluster the following log message was noticed: {noformat} 2018-03-09 00:35:56,942-0500 WARN [Timer-1] NODE1 *SYSTEM ROOT - [ABB5DFF5-FF22F31E-D384292F-154DF16E-40BBF496]->[3B69FDF5-660FB22E-4643D6B7-10D3FEE7-D2DC369C] Server '3B69FDF5-660FB22E-4643D6B7-10D3FEE7-D2DC369C' did not respond to the gossip message (db=audit, timeout=10000ms), but cannot be set OFFLINE by configuration 2018-03-09 00:37:15,305-0500 WARN [Timer-1] NODE1 *SYSTEM ROOT - [ABB5DFF5-FF22F31E-D384292F-154DF16E-40BBF496]->[3B69FDF5-660FB22E-4643D6B7-10D3FEE7-D2DC369C] Server '3B69FDF5-660FB22E-4643D6B7-10D3FEE7-D2DC369C' did not respond to the gossip message (db=config, timeout=10000ms), but cannot be set OFFLINE by configuration 2018-03-09 00:38:32,830-0500 WARN [OrientDB DistributedWorker node=ABB5DFF5-FF22F31E-D384292F-154DF16E-40BBF496 db=accesslog id=0] NODE1 *SYSTEM ROOT - [ABB5DFF5-FF22F31E-D384292F-154DF16E-40BBF496]->[3B69FDF5-660FB22E-4643D6B7-10D3FEE7-D2DC369C] Error on sending message to distributed node (java.io.NotSerializableException: com.orientechnologies.orient.core.sql.OSoftQueryResultList) retrying (1/3) 2018-03-09 00:38:32,886-0500 WARN [OrientDB DistributedWorker node=ABB5DFF5-FF22F31E-D384292F-154DF16E-40BBF496 db=accesslog id=0] NODE1 *SYSTEM ROOT - [ABB5DFF5-FF22F31E-D384292F-154DF16E-40BBF496]->[3B69FDF5-660FB22E-4643D6B7-10D3FEE7-D2DC369C] Error on sending message to distributed node (java.io.NotSerializableException: com.orientechnologies.orient.core.sql.OSoftQueryResultList) retrying (2/3) 2018-03-09 00:38:33,332-0500 WARN [OrientDB DistributedWorker node=ABB5DFF5-FF22F31E-D384292F-154DF16E-40BBF496 db=accesslog id=0] NODE1 *SYSTEM ROOT - [ABB5DFF5-FF22F31E-D384292F-154DF16E-40BBF496]->[3B69FDF5-660FB22E-4643D6B7-10D3FEE7-D2DC369C] Error on sending message to distributed node (java.io.NotSerializableException: com.orientechnologies.orient.core.sql.OSoftQueryResultList) retrying (3/3) 2018-03-09 00:38:33,667-0500 WARN [Timer-1] NODE1 *SYSTEM ROOT - [ABB5DFF5-FF22F31E-D384292F-154DF16E-40BBF496]->[3B69FDF5-660FB22E-4643D6B7-10D3FEE7-D2DC369C] Server '3B69FDF5-660FB22E-4643D6B7-10D3FEE7-D2DC369C' did not respond to the gossip message (db=accesslog, timeout=10000ms), but cannot be set OFFLINE by configuration 2018-03-09 00:38:33,955-0500 ERROR [OrientDB DistributedWorker node=ABB5DFF5-FF22F31E-D384292F-154DF16E-40BBF496 db=accesslog id=0] NODE1 *SYSTEM ROOT - [ABB5DFF5-FF22F31E-D384292F-154DF16E-40BBF496]->[3B69FDF5-660FB22E-4643D6B7-10D3FEE7-D2DC369C] Error on sending response 'com.orientechnologies.orient.core.sql.query.OBasicResultSet@1' back (reqId=5.385271 err=com.orientechnologies.orient.server.distributed.ODistributedException: Cannot send response back to the sender node '3B69FDF5-660FB22E-4643D6B7-10D3FEE7-D2DC369C') com.orientechnologies.orient.server.distributed.ODistributedException: Cannot send response back to the sender node '3B69FDF5-660FB22E-4643D6B7-10D3FEE7-D2DC369C' at com.orientechnologies.orient.server.distributed.ORemoteServerChannel.networkOperation(ORemoteServerChannel.java:215) at com.orientechnologies.orient.server.distributed.ORemoteServerChannel.sendResponse(ORemoteServerChannel.java:103) at com.orientechnologies.orient.server.distributed.ORemoteServerController.sendResponse(ORemoteServerController.java:73) at com.orientechnologies.orient.server.distributed.impl.ODistributedWorker.sendResponseBack(ODistributedWorker.java:439) at com.orientechnologies.orient.server.distributed.impl.ODistributedWorker.sendResponseBack(ODistributedWorker.java:413) at com.orientechnologies.orient.server.distributed.impl.ODistributedWorker.onMessage(ODistributedWorker.java:399) at com.orientechnologies.orient.server.distributed.impl.ODistributedWorker.run(ODistributedWorker.java:127) Caused by: java.io.NotSerializableException: com.orientechnologies.orient.core.sql.OSoftQueryResultList at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:441) at java.util.Collections$SynchronizedCollection.writeObject(Collections.java:2081) at sun.reflect.GeneratedMethodAccessor132.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1128) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) at com.orientechnologies.orient.core.sql.query.OBasicResultSet.writeExternal(OBasicResultSet.java:227) at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) at com.orientechnologies.orient.core.serialization.OStreamableHelper.toStream(OStreamableHelper.java:80) at com.orientechnologies.orient.server.distributed.ODistributedResponse.toStream(ODistributedResponse.java:92) at com.orientechnologies.orient.server.distributed.ORemoteServerChannel$2.execute(ORemoteServerChannel.java:106) at com.orientechnologies.orient.server.distributed.ORemoteServerChannel.networkOperation(ORemoteServerChannel.java:166) ... 6 common frames omitted {noformat} h4. Cause This is a problem in the OrientDB database version used by Nexus reported upstream as https://www.prjhub.com/#/issues/9975. ",1 +"NEXUS-16539","03/14/2018 14:11:12","Nexus 3 does not auto-block on 401 responses from https://maven.oracle.com","Nexus 3 does not auto-block on receiving 401 responses from the remote of a proxy repository.  Instead, it keeps checking the remote for every inbound request. ��This is not consistent with Nexus 2.x, which does auto-block for 401 responses.  See NEXUS-6515. Failure to auto-block on receiving 401 can cause major performance problems, and also has the disadvantage that a user is not alerted to the fact that a proxy repository is not working.  It is true that there are cases where you would not want to auto-block on 401, but those are rare, and can be handled by disabling auto-block in the repository's configuration.   {noformat} 2018-03-14 13:18:36,026-0500 WARN [qtp49922574-216] admin org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyFacet - Exception org.sonatype.nexus.repository.proxy.ProxyServiceException: HTTP/1.1 401 Unauthorized checking remote for update, proxy repo ooo failed to fetch foo/bar/maven-metadata.xml with status line HTTP/1.1 401 Unauthorized, content not in cache. 2018-03-14 13:18:41,765-0500 WARN [qtp49922574-63] admin org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyFacet - Exception org.sonatype.nexus.repository.proxy.ProxyServiceException: HTTP/1.1 401 Unauthorized checking remote for update, proxy repo ooo failed to fetch foo/bar/maven-metadata.xml with status line HTTP/1.1 401 Unauthorized, content not in cache. 2018-03-14 13:18:49,982-0500 WARN [qtp49922574-61] admin org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyFacet - Exception org.sonatype.nexus.repository.proxy.ProxyServiceException: HTTP/1.1 401 Unauthorized checking remote for update, proxy repo ooo failed to fetch foo/bar/maven-metadata.xml with status line HTTP/1.1 401 Unauthorized, content not in cache. 2018-03-14 13:19:06,078-0500 WARN [qtp49922574-63] admin org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyFacet - Exception org.sonatype.nexus.repository.proxy.ProxyServiceException: HTTP/1.1 401 Unauthorized checking remote for update, proxy repo ooo failed to fetch foo/bar/maven-metadata.xml with status line HTTP/1.1 401 Unauthorized, content not in cache. {noformat} Note: The reproduce case for the above is to create a proxy of https://maven.oracle.com and enter invalid credentials into the authentication settings for it.",2 +"NEXUS-16545","03/14/2018 22:54:31","NXRM 3 Yum Metadata Generation takes forever","We recently migrated completely from nexus2 to nexus3, now that it has full yum support (hosted). Recently, we noticed that when we were doing our rpm builds/uploads, that when we would deploy new instances, we were not seeing the expected artifacts on the machines. I dug into this a bit and observed the following: {code} [root@pkgsvcs-cdb3ca log]# grep 'event-10-thread-499' nexus.log 2018-03-13 00:11:53,744+0000 INFO [event-10-thread-499] jenkins org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl - Rebuilding yum metadata for repository snapshot-rpms 2018-03-13 00:11:53,744+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioning: OPEN -> ACTIVE 2018-03-13 00:11:53,744+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioned: ACTIVE 2018-03-13 00:11:53,745+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.AssetEntityAdapter - Counting assets with query: select count(*) from asset where (attributes.yum.asset_kind = :p0) and (bucket=[#11|https://support.sonatype.com/hc/requests/11]:56), parameters: \{p0=RPM} 2018-03-13 00:26:49,108+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.AssetEntityAdapter - Finding assets with query: select from asset where (attributes.yum.asset_kind = :p0) and (bucket=[#11|https://support.sonatype.com/hc/requests/11]:56), parameters: \{p0=COMPS} 2018-03-13 00:26:49,149+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.AssetEntityAdapter - Finding assets with query: select from asset where (attributes.yum.asset_kind = :p0) and (bucket=[#11|https://support.sonatype.com/hc/requests/11]:56), parameters: \{p0=REPODATA} 2018-03-13 00:26:49,161+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support detects repodata/b5b377a566e923835e71bde8e8c2a3c9dc39279bb4d49f2d1b5bbec48350a760-filelists.xml.gz as [application/gzip, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip, application/x-gzip-compressed, gzip/document] 2018-03-13 00:26:49,161+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support assumes repodata/b5b377a566e923835e71bde8e8c2a3c9dc39279bb4d49f2d1b5bbec48350a760-filelists.xml.gz as [application/x-gzip, application/gzip, application/x-tgz, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip-compressed, gzip/document] 2018-03-13 00:26:49,161+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - content/name types intersection [application/gzip, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip, application/x-gzip-compressed, gzip/document] 2018-03-13 00:26:49,161+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Content repodata/b5b377a566e923835e71bde8e8c2a3c9dc39279bb4d49f2d1b5bbec48350a760-filelists.xml.gz declared as application/x-gzip, determined as application/x-gzip 2018-03-13 00:26:49,165+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support detects repodata/f6a3101a65ee327d76cfcd4a34a6343e7d9c7ff144a089f27b5b89b1b8dee5b5-primary.xml.gz as [application/gzip, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip, application/x-gzip-compressed, gzip/document] 2018-03-13 00:26:49,165+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support assumes repodata/f6a3101a65ee327d76cfcd4a34a6343e7d9c7ff144a089f27b5b89b1b8dee5b5-primary.xml.gz as [application/x-gzip, application/gzip, application/x-tgz, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip-compressed, gzip/document] 2018-03-13 00:26:49,165+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - content/name types intersection [application/gzip, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip, application/x-gzip-compressed, gzip/document] 2018-03-13 00:26:49,165+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Content repodata/f6a3101a65ee327d76cfcd4a34a6343e7d9c7ff144a089f27b5b89b1b8dee5b5-primary.xml.gz declared as application/x-gzip, determined as application/x-gzip 2018-03-13 00:26:49,179+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support detects repodata/002e077e897e65b99b47e6705e1144b0b8e086dc4034308343b3b3fbc7f9eabd-other.xml.gz as [application/gzip, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip, application/x-gzip-compressed, gzip/document] 2018-03-13 00:26:49,179+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support assumes repodata/002e077e897e65b99b47e6705e1144b0b8e086dc4034308343b3b3fbc7f9eabd-other.xml.gz as [application/x-gzip, application/gzip, application/x-tgz, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip-compressed, gzip/document] 2018-03-13 00:26:49,179+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - content/name types intersection [application/gzip, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip, application/x-gzip-compressed, gzip/document] 2018-03-13 00:26:49,179+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Content repodata/002e077e897e65b99b47e6705e1144b0b8e086dc4034308343b3b3fbc7f9eabd-other.xml.gz declared as application/x-gzip, determined as application/x-gzip 2018-03-13 00:26:49,196+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support detects repodata/repomd.xml as [application/xml, application/x-xml, text/xml] 2018-03-13 00:26:49,196+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support assumes repodata/repomd.xml as [application/xml, text/xml, application/x-xml] 2018-03-13 00:26:49,196+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - content/name types intersection [application/xml, application/x-xml, text/xml] 2018-03-13 00:26:49,196+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Content repodata/repomd.xml declared as application/xml, determined as application/xml 2018-03-13 00:26:49,198+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioning: ACTIVE -> OPEN 2018-03-13 00:26:49,236+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioned: OPEN 2018-03-13 00:26:49,236+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioning: OPEN -> CLOSED 2018-03-13 00:26:49,236+0000 DEBUG [event-10-thread-499] jenkins org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioned: CLOSED {code} ========== {code} [root@pkgsvcs-cdb3ca log]# grep 'event-10-thread-533' nexus.log 2018-03-13 01:21:44,924+0000 INFO [event-10-thread-533] jenkins org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl - Rebuilding yum metadata for repository snapshot-rpms 2018-03-13 01:21:44,924+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioning: OPEN -> ACTIVE 2018-03-13 01:21:44,924+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioned: ACTIVE 2018-03-13 01:21:44,925+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.AssetEntityAdapter - Counting assets with query: select count(*) from asset where (attributes.yum.asset_kind = :p0) and (bucket=[#11|https://support.sonatype.com/hc/requests/11]:56), parameters: \{p0=RPM} 2018-03-13 01:36:44,021+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.AssetEntityAdapter - Finding assets with query: select from asset where (attributes.yum.asset_kind = :p0) and (bucket=[#11|https://support.sonatype.com/hc/requests/11]:56), parameters: \{p0=COMPS} 2018-03-13 01:36:44,046+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.AssetEntityAdapter - Finding assets with query: select from asset where (attributes.yum.asset_kind = :p0) and (bucket=[#11|https://support.sonatype.com/hc/requests/11]:56), parameters: \{p0=REPODATA} 2018-03-13 01:36:44,051+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support detects repodata/e31c8020129321350fd322fb4c3d6ad0f6beca0bc540fb98921421483028170f-filelists.xml.gz as [application/gzip, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip, application/x-gzip-compressed, gzip/document] 2018-03-13 01:36:44,051+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support assumes repodata/e31c8020129321350fd322fb4c3d6ad0f6beca0bc540fb98921421483028170f-filelists.xml.gz as [application/x-gzip, application/gzip, application/x-tgz, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip-compressed, gzip/document] 2018-03-13 01:36:44,051+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - content/name types intersection [application/gzip, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip, application/x-gzip-compressed, gzip/document] 2018-03-13 01:36:44,051+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Content repodata/e31c8020129321350fd322fb4c3d6ad0f6beca0bc540fb98921421483028170f-filelists.xml.gz declared as application/x-gzip, determined as application/x-gzip 2018-03-13 01:36:44,060+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support detects repodata/158a6f7ebfee803454689bca7aa05786ab92ef9843e5dae79e4d4e8d2b60c99e-primary.xml.gz as [application/gzip, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip, application/x-gzip-compressed, gzip/document] 2018-03-13 01:36:44,060+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support assumes repodata/158a6f7ebfee803454689bca7aa05786ab92ef9843e5dae79e4d4e8d2b60c99e-primary.xml.gz as [application/x-gzip, application/gzip, application/x-tgz, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip-compressed, gzip/document] 2018-03-13 01:36:44,060+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - content/name types intersection [application/gzip, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip, application/x-gzip-compressed, gzip/document] 2018-03-13 01:36:44,060+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Content repodata/158a6f7ebfee803454689bca7aa05786ab92ef9843e5dae79e4d4e8d2b60c99e-primary.xml.gz declared as application/x-gzip, determined as application/x-gzip 2018-03-13 01:36:44,065+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support detects repodata/3de6dcd91fa36eed84cae64422afb99996ecda0f6c97dcd0c612d97d26f15b3e-other.xml.gz as [application/gzip, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip, application/x-gzip-compressed, gzip/document] 2018-03-13 01:36:44,065+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support assumes repodata/3de6dcd91fa36eed84cae64422afb99996ecda0f6c97dcd0c612d97d26f15b3e-other.xml.gz as [application/x-gzip, application/gzip, application/x-tgz, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip-compressed, gzip/document] 2018-03-13 01:36:44,065+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - content/name types intersection [application/gzip, application/gzip-compressed, application/gzipped, application/x-gunzip, application/x-gzip, application/x-gzip-compressed, gzip/document] 2018-03-13 01:36:44,065+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Content repodata/3de6dcd91fa36eed84cae64422afb99996ecda0f6c97dcd0c612d97d26f15b3e-other.xml.gz declared as application/x-gzip, determined as application/x-gzip 2018-03-13 01:36:44,069+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support detects repodata/repomd.xml as [application/xml, application/x-xml, text/xml] 2018-03-13 01:36:44,069+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Mime support assumes repodata/repomd.xml as [application/xml, text/xml, application/x-xml] 2018-03-13 01:36:44,069+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - content/name types intersection [application/xml, application/x-xml, text/xml] 2018-03-13 01:36:44,069+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.DefaultContentValidator - Content repodata/repomd.xml declared as application/xml, determined as application/xml 2018-03-13 01:36:44,074+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioning: ACTIVE -> OPEN 2018-03-13 01:36:44,100+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioned: OPEN 2018-03-13 01:36:44,100+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioning: OPEN -> CLOSED 2018-03-13 01:36:44,100+0000 DEBUG [event-10-thread-533] jenkins org.sonatype.nexus.repository.storage.StorageTxImpl - Transitioned: CLOSED {code} ========= In both of these cases, regenerating the metadata is taking 15 minutes.  That is a major detriment and will cause inefficiencies for developers, slowing down a company's ability to handle CI/CD",8 +"NEXUS-16559","03/16/2018 16:30:15","DeadBlobFinder does not find bad blob refs for Maven indexer files","Due to NEXUS-16303, The publish Maven indexes task may fail - and under certain circumstances can leave bad blob refs in the component database. {noformat} 2018-03-16 12:15:45,839-0300 ERROR [quartz-5-thread-2] *SYSTEM org.sonatype.nexus.repository.maven.tasks.PublishMavenIndexTask - Failed to run task 'Publish Maven indexes of *' on repository 'cris-maven-group' org.sonatype.nexus.repository.storage.RetryDeniedException: Reached max retries: 8/8 at org.sonatype.nexus.repository.storage.StorageTxImpl.allowRetry(StorageTxImpl.java:224) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:69) at com.sun.proxy.$Proxy206.allowRetry(Unknown Source) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:81) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) at org.sonatype.nexus.repository.maven.internal.MavenIndexPublisher$Maven2WritableResource.read(MavenIndexPublisher.java:446) at org.apache.maven.index.reader.Utils.loadProperties(Utils.java:87) at org.apache.maven.index.reader.IndexReader.(IndexReader.java:68) at org.sonatype.nexus.repository.maven.internal.MavenIndexPublisher.publishMergedIndex(MavenIndexPublisher.java:175) at org.sonatype.nexus.repository.maven.internal.group.IndexGroupFacet.publishIndex(IndexGroupFacet.java:58) at org.sonatype.nexus.repository.maven.tasks.PublishMavenIndexTask.execute(PublishMavenIndexTask.java:37) at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:73) at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:93) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:108) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) Caused by: org.sonatype.nexus.repository.storage.MissingBlobException: Blob maven2-cris-snapshots@4F4F21E0-97AFAD74-1D65581A-9EBB696D-90C3FFEB:67cc342d-991f-4953-9f4a-d69073aa8012 exists in metadata, but is missing from the blobstore at org.sonatype.nexus.repository.storage.StorageTxImpl.requireBlob(StorageTxImpl.java:918) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63) at com.sun.proxy.$Proxy206.requireBlob(Unknown Source) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.get(MavenFacetImpl.java:183) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) ... 20 common frames omitted {noformat} When the following script is run, the DeadBlobFinder does not find the bad blob refs: {noformat} import org.sonatype.nexus.common.app.ApplicationDirectories import org.sonatype.nexus.repository.tools.DeadBlobFinder import org.sonatype.nexus.repository.tools.DeadBlobResult import groovy.json.JsonOutput import java.text.SimpleDateFormat def deadBlobFinder = container.lookup(DeadBlobFinder.class.name) def applicationDirectories = container.lookup(ApplicationDirectories.class.name) def results = [] repository.repositoryManager.browse().each { repo -> results << deadBlobFinder.find(repo,false) } def map = results.flatten().groupBy { it.repositoryName }.collectEntries { k, v -> [(k): v.collect { DeadBlobResult result -> result.asset.blobRef().toString() }] } new File(applicationDirectories.temporaryDirectory, ""deadBlobResult-${new SimpleDateFormat(""yyyyMMdd-HHmmss"").format(new Date())}.json"").withWriter { Writer writer -> writer << JsonOutput.prettyPrint(JsonOutput.toJson(map)) } {noformat} Yet the bad blob ref exists: {noformat} orientdb {db=component}> select from asset where blob_ref = 'default@73108758-244CE9AA-60CD5592-602F1528-C5A865FE:479b303c-cac1-42d5-8df4-fbbd6c8f93ee' 0 item(s) found. Query executed in 0.012 sec(s). orientdb {db=component}> select from asset where blob_ref = 'maven2-cris-snapshots@4F4F21E0-97AFAD74-1D65581A-9EBB696D-90C3FFEB:67cc342d-991f-4953-9f4a-d69073aa8012' +----+-----+------+----+------+------+---------+---------+---------+---------+---------+---------+---------+---------+---------------+---------------------------+------------------------------------------------------+ |# |@RID |@CLASS|size|bucket|format|component|created_b|created_b|last_upda|last_down|blob_crea|blob_upda|content_t|name |blob_ref |attributes | +----+-----+------+----+------+------+---------+---------+---------+---------+---------+---------+---------+---------+---------------+---------------------------+------------------------------------------------------+ |0 |#52:0|asset |187 |#39:1 |maven2| |system |system |2018-0...|2018-0...|2018-0...|2018-0...|text/x...|.index/nexus...|maven2-cris-snapshots@4F...|{provenance={hashes_not_verified=false}, checksum={...| +----+-----+------+----+------+------+---------+---------+---------+---------+---------+---------+---------+---------+---------------+---------------------------+------------------------------------------------------+ 1 item(s) found. Query executed in 0.004 sec(s). {noformat} h4. Expected DeadBlobFinder should find ALL dead blobs.",2 +"NEXUS-16560","03/16/2018 16:35:16","PublishMavenIndexTask failures may leave bad blob refs in the component database causing MissingBlobException","Due to NEXUS-16303, The publish Maven indexes task may fail - and under certain circumstances can leave bad blob refs in the component database. {noformat} 2018-03-16 12:15:45,839-0300 ERROR [quartz-5-thread-2] *SYSTEM org.sonatype.nexus.repository.maven.tasks.PublishMavenIndexTask - Failed to run task 'Publish Maven indexes of *' on repository 'cris-maven-group' org.sonatype.nexus.repository.storage.RetryDeniedException: Reached max retries: 8/8 at org.sonatype.nexus.repository.storage.StorageTxImpl.allowRetry(StorageTxImpl.java:224) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:69) at com.sun.proxy.$Proxy206.allowRetry(Unknown Source) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:81) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) at org.sonatype.nexus.repository.maven.internal.MavenIndexPublisher$Maven2WritableResource.read(MavenIndexPublisher.java:446) at org.apache.maven.index.reader.Utils.loadProperties(Utils.java:87) at org.apache.maven.index.reader.IndexReader.(IndexReader.java:68) at org.sonatype.nexus.repository.maven.internal.MavenIndexPublisher.publishMergedIndex(MavenIndexPublisher.java:175) at org.sonatype.nexus.repository.maven.internal.group.IndexGroupFacet.publishIndex(IndexGroupFacet.java:58) at org.sonatype.nexus.repository.maven.tasks.PublishMavenIndexTask.execute(PublishMavenIndexTask.java:37) at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:73) at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:93) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:108) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) Caused by: org.sonatype.nexus.repository.storage.MissingBlobException: Blob maven2-cris-snapshots@4F4F21E0-97AFAD74-1D65581A-9EBB696D-90C3FFEB:67cc342d-991f-4953-9f4a-d69073aa8012 exists in metadata, but is missing from the blobstore at org.sonatype.nexus.repository.storage.StorageTxImpl.requireBlob(StorageTxImpl.java:918) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63) at com.sun.proxy.$Proxy206.requireBlob(Unknown Source) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.get(MavenFacetImpl.java:183) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) ... 20 common frames omitted {noformat} The bad blob ref gets left behind: {noformat} orientdb {db=component}> select from asset where blob_ref = 'default@73108758-244CE9AA-60CD5592-602F1528-C5A865FE:479b303c-cac1-42d5-8df4-fbbd6c8f93ee' 0 item(s) found. Query executed in 0.012 sec(s). orientdb {db=component}> select from asset where blob_ref = 'maven2-cris-snapshots@4F4F21E0-97AFAD74-1D65581A-9EBB696D-90C3FFEB:67cc342d-991f-4953-9f4a-d69073aa8012' +----+-----+------+----+------+------+---------+---------+---------+---------+---------+---------+---------+---------+---------------+---------------------------+------------------------------------------------------+ |# |@RID |@CLASS|size|bucket|format|component|created_b|created_b|last_upda|last_down|blob_crea|blob_upda|content_t|name |blob_ref |attributes | +----+-----+------+----+------+------+---------+---------+---------+---------+---------+---------+---------+---------+---------------+---------------------------+------------------------------------------------------+ |0 |#52:0|asset |187 |#39:1 |maven2| |system |system |2018-0...|2018-0...|2018-0...|2018-0...|text/x...|.index/nexus...|maven2-cris-snapshots@4F...|{provenance={hashes_not_verified=false}, checksum={...| +----+-----+------+----+------+------+---------+---------+---------+---------+---------+---------+---------+---------+---------------+---------------------------+------------------------------------------------------+ 1 item(s) found. Query executed in 0.004 sec(s). {noformat} h4. Expected The PublishMavenIndexTask should never leave bad blob refs in the component DB on any error.",0 +"NEXUS-16565","03/16/2018 21:42:57","IllegalStateException Insufficient configured threads from a docker repository connector configuration","h4. Summary On saving a Docker repository configuration that has defined a port number, the nexus.log may contain a message such as this: {code:java} WARN [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.ConnectorManager - Could not start connector: DockerConnectorConfiguration\{repositoryName=xxx-xxxx-docker, scheme=http, port=10059} java.lang.IllegalStateException: Insufficient configured threads: required=203 < max=200 for QueuedThreadPool@qtp915926290\{STARTED,8<=15<= {code} This indicates that the pool of threads that Eclipse Jetty draws from to preallocate threads for the new connector is too small to meet the required total. The default pool size is 200 threads. When this error happens on saving Docker repository configuration, no other changes can be made to the Docker repository configuration. This error can also happen on Nexus startup, where each Docker repository connector is started. Nexus version 3.8.0+ is more likely to trigger this issue because in that version Eclipse Jetty was upgraded to 9.4.8 from 9.3.20, and the thread allocation strategy has changed slightly in that version. [Nexus Repository Manager 3.8.0 Release Notes|https://help.sonatype.com/repomanager3/release-notes/2018-release-notes#id-2018ReleaseNotes-RepositoryManager3.8.0] [Eclipse Jetty 9.4.8 thread allocation|https://support.sonatype.com/hc/en-us/articles/360000744687] h4. Short Term Workaround You may be able to avoid the error by increasing the Jetty thread pool. Edit the configuration file ({{/etc/jetty/jetty.xml}}) and add a new maxThreads setter: {code:java} 400 {code} Caution: We suggest being conservative increasing the thread pool maxThreads - each new thread in the pool has the potential to increase workload inside of Nexus for concurrent request threads. Restart Nexus to pick up changes to the file. Startup will fail if this file contains invalid XML. h4. Long Term Workaround Consider using a strategy where a reverse proxy in front of Nexus dynamically maps docker requests to Nexus Docker repositories. In this scenario, you will not need to specify port numbers and therefore new connectors, on your docker repos. Increasing the Jetty thread pool should not be required in this case: https://support.sonatype.com/hc/en-us/articles/360000761828 ",3 +"NEXUS-16573","03/19/2018 19:48:22","Content validation still blocks some items even when permissive","I noticed if I had a yum hosted repository with a permissive deploy policy if I curled in a nuget package, then I still got blocked by invalid content type detection as shown below. My understanding from the setting and documentation is that permissive means you can add anything. I believe this is how it works for other formats with validation. e.g. {code} curl --user admin:admin123 ""http://localhost:8081/repository/yum-hosted/Packages/SONATYPE.TEST.1.0.nupkg"" --upload-file SONATYPE.TEST.1.0.nupkg --request PUT -v ... < HTTP/1.1 400 Detected content type [application/x-tika-ooxml], but expected [application/zip, application/octet-stream]: Packages/SONATYPE.TEST.1.0.nupkg {code}",1 +"NEXUS-16577","03/20/2018 22:03:33","Hazelcast XSD warning logged at startup.","When you start up Nexus 3 in clustered mode you'll see a Hazelcast log warning message: {noformat} 2018-03-20 16:46:40,901-0500 WARN [FelixStartLevel] *SYSTEM com.hazelcast.config.AbstractXmlConfigHelper - Name of the hazelcast schema location incorrect using default {noformat} This is occurring because the XSD we're shipping with in our default configuration files does not match the version of Hazelcast we're shipping with: {code} {code} https://github.com/hazelcast/hazelcast/blob/v3.7.8/hazelcast/src/main/java/com/hazelcast/config/AbstractXmlConfigHelper.java#L158 We should update our XMLS references to use the correct XSD version.  ",1 +"NEXUS-16648","03/22/2018 20:07:46","hazelcast-network.xml is not included in support zip","As of changes since 3.7.0 per -NEXUS-14377-, Nexus uses [the following logic to load hazelcast config files|https://github.com/sonatype/nexus-internal/blob/f8d90379daff553edf6bcb8e8f983a794ccde6f6/private/plugins/nexus-hazelcast-plugin/src/main/java/com/sonatype/nexus/hazelcast/internal/HazelcastInstanceProvider.java#L128]: - if {{$karaf.data/etc/fabric/hazelcast-network.xml}} does not exist, copy {{$karaf.base/etc/fabric/hazelcast-network-default.xml}} to {{$karaf.data/etc/fabric/hazelcast-network.xml}} - if {{$karaf.base/etc/fabric/hazelcast.xml}} exists, load it - if {{$karaf.base/etc/fabric/hazelcast.xml}} does not exist, log a WARN and load default values from internal configuration The problem is the support zip generator does not include {{$karaf.data/etc/fabric/hazelcast-network.xml}} and therefore by default it is impossible to learn what the user has configured hazelcast to do. [https://github.com/sonatype/nexus-internal/blob/f8d90379daff553edf6bcb8e8f983a794ccde6f6/private/plugins/nexus-hazelcast-plugin/src/main/java/com/sonatype/nexus/hazelcast/internal/HazelcastInstanceProvider.java#L128] The other ""fabric"" install dir files [are included|https://github.com/sonatype/nexus-internal/blob/d36a15cb656e48a290256155cf701b0f3da3742d/components/nexus-core/src/main/java/org/sonatype/nexus/internal/atlas/customizers/InstallConfigurationCustomizer.groovy#L90] and [sanitized|https://github.com/sonatype/nexus-internal/blob/d36a15cb656e48a290256155cf701b0f3da3742d/components/nexus-core/src/main/java/org/sonatype/nexus/internal/atlas/customizers/InstallConfigurationCustomizer.groovy#L60]. h4. Expected - bundle {{$karaf.data/etc/fabric/hazelcast-network.xml}} into the support zip at path {{work/etc/fabric/hazelcast-network.xml}} - *obfuscate any potential passwords* that may be in that file",1 +"NEXUS-16673","03/26/2018 21:51:45","Staging: YUM move/delete","Support move/delete for components in yum hosted repositories.",5 +"NEXUS-16674","03/26/2018 21:52:45","Staging: NuGet move/delete","Support move/delete for components in nuget hosted repositories.",5 +"NEXUS-16703","03/30/2018 00:02:27","Content selectors based on negative regular expressions do not handle leading slashes in a consistent manner","  Trying to create a regular expression that disallows access to paths starting with ""/com/foo/bar/"". This doesn't work: {code:java} path =~ ""(?!^/com/foo/bar/.*).*"" {code} And this does: {code:java} path =~ ""(?!^com/foo/bar/.*).*"" {code} However, for positive regular expressions... This doesn't work: {code:java} path =~ ""^/com/foo/bar/.*"" {code} But this does work: {code:java} path =~ ""^com/foo/bar/.*""{code} So that's at least consistent, but doesn't line up with [our documentation|https://help.sonatype.com/repomanager3/configuration/repository-management#RepositoryManagement-ContentSelectors] at all, which states that: {quote}When writing a content selector, remember that the asset’s path will always begin with a leading slash when the selector is evaluated. This is true even though the leading slash is not displayed when searching or browsing assets. {quote}  The above is the way it was supposed to work based on fixes done in ---NEXUS-11632--- and ---NEXUS-15545---. For positive regular expressions things are also quite odd, but in a slightly different way. This works: {code:java} path =~ ""/com/foo/bar/.*"" {code} As does this: {code:java} path =~ ""com/foo/bar/.*"" {code} This doesn't work: {code:java} path =~ ""^/com/foo/bar/.*"" {code} But this does work: {code:java} path =~ ""^com/foo/bar/.*""{code} h3. Expected Content selectors that use regular expressions should require that paths start with ""/"". And using a leading ""^"" should be optional. That is the way Nexus 2.x works, so this is required for compatibility when upgrading. h4. Update 4/2/18 For upload this is needed: {code:java} path =~ ""/com/foo/bar/.*""{code} So to make both upload and download work you need: {code:java} path =~ ""/?com/foo/bar/.*""{code}  ",3 +"NEXUS-16717","04/02/2018 20:57:04","uploading npm component where package.json bugs key is string fails","+*steps to reproduce:*+ * download the file [http://registry.npmjs.org/crc/-/crc-3.0.0.tgz] * use the Components API - Upload file with npm ([https://help.sonatype.com/repomanager3/rest-and-integration-api/components-api#ComponentsAPI-NPM)] The request will fail with a 500 Internal Server Error and the message _child 'bugs' not a Map_ this error is caused by the fact that in the original package.json file bugs property is a string not an object. based on [http://json.schemastore.org/package] the bugs property could be an object or a plain string [original package.json|https://github.com/alexgorbatchev/node-crc/blob/v3.0.0/package.json#L28] [npm registry package.json|http://registry.npmjs.org/crc/3.0.0] _uploading (using npm publish) the raw *tgz* file works but the shasum changes and breaks the package_",2 +"NEXUS-16718","04/02/2018 22:04:54","""scope"" authentication errors when connecting to registry.connect.redhat.com","Steps to reproduce: # Create Docker proxy repository # Remote storage: [https://registry.connect.redhat.com|https://registry.connect.redhat.com/] # HTTP Authentication: RH Credentials |0| # Connect to registry via Docker client or via HTTPs \{registry}/v2/sonatype/nexus-repository-manager/manifests/latest Error: Logs show error due to Could not retrieve token due to missing parameter: scope {code:java} 2018-04-02 20:18:35,925+0000 WARN [qtp1573000070-263] *UNKNOWN org.apache.http.impl.auth.HttpAuthenticator - BEARER [complete=true] authentication error: Could not retrieve token due to missing parameter: scope 2018-04-02 20:18:35,961+0000 WARN [qtp1573000070-263] *UNKNOWN org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/sonatype/nexus-repository-manager/manifests/latest: 401 - org.sonatype.nexus.repository.docker.internal.V2Exception: access to the requested resource is not authorized 2018-04-02 20:18:37,085+0000 WARN [qtp1573000070-263] *UNKNOWN org.sonatype.nexus.repository.docker.internal.auth.BearerScheme - Failed to retrieve docker bearer token org.apache.http.auth.AuthenticationException: Could not retrieve token due to missing parameter: scope at org.sonatype.nexus.repository.docker.internal.auth.BearerScheme.requireParameter(BearerScheme.java:120) at org.sonatype.nexus.repository.docker.internal.auth.BearerScheme.authenticate(BearerScheme.java:103) at org.apache.http.impl.auth.HttpAuthenticator.doAuth(HttpAuthenticator.java:239) at org.apache.http.impl.auth.HttpAuthenticator.generateAuthResponse(HttpAuthenticator.java:202){code}",3 +"NEXUS-16729","04/04/2018 15:17:13","FileBlobStore Attempt to access non-existent blob path$health-check WARN log spam","When healthcheck is first enabled for a repository, warning messages are written to the log for missing files: {quote}2018-02-17 11:55:13,683-0600 WARN [quartz-5-thread-3] NexusHDQ-One *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob path$health-check/Jcenter.bintray-proxy/details/jquery-ui-1.8.17.custom.css (/opt/NexusSharedStorage/default/content/directpath/health-check/Jcenter.bintray-proxy/details/jquery-ui-1.8.17.custom.css.properties) {quote} {quote}2018-02-17 11:55:13,731-0600 WARN [quartz-5-thread-3] NexusHDQ-One *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob path$health-check/Jcenter.bintray-proxy/details/jquery.ui.selectmenu.min.js (/opt/NexusSharedStorage/default/content/directpath/health-check/Jcenter.bintray-proxy/details/jquery.ui.selectmenu.min.js.properties) {quote} {quote}2018-02-17 11:55:13,781-0600 WARN [quartz-5-thread-3] NexusHDQ-One *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob path$health-check/Jcenter.bintray-proxy/details/ui-bg_flat_75_ffffff_40x100.png (/opt/NexusSharedStorage/default/content/directpath/health-check/Jcenter.bintray-proxy/details/ui-bg_flat_75_ffffff_40x100.png.properties) {quote} {quote}2018-02-17 11:55:13,831-0600 WARN [quartz-5-thread-3] NexusHDQ-One *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob path$health-check/Jcenter.bintray-proxy/details/bg-selectmenu.png (/opt/NexusSharedStorage/default/content/directpath/health-check/Jcenter.bintray-proxy/details/bg-selectmenu.png.properties) {quote} {quote}2018-02-17 11:55:13,880-0600 WARN [quartz-5-thread-3] NexusHDQ-One *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob path$health-check/Jcenter.bintray-proxy/details/ui-icons_888888_256x240.png (/opt/NexusSharedStorage/default/content/directpath/health-check/Jcenter.bintray-proxy/details/ui-icons_888888_256x240.png.properties) {quote} {quote}2018-02-17 11:55:13,929-0600 WARN [quartz-5-thread-3] NexusHDQ-One *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob path$health-check/Jcenter.bintray-proxy/details/jquery.ui.selectmenu.css (/opt/NexusSharedStorage/default/content/directpath/health-check/Jcenter.bintray-proxy/details/jquery.ui.selectmenu.css.properties) {quote} {quote}2018-02-17 11:55:13,980-0600 WARN [quartz-5-thread-3] NexusHDQ-One *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob path$health-check/Jcenter.bintray-proxy/details/licenses.json (/opt/NexusSharedStorage/default/content/directpath/health-check/Jcenter.bintray-proxy/details/licenses.json.properties) {quote} {quote}2018-02-17 11:55:14,034-0600 WARN [quartz-5-thread-3] NexusHDQ-One *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob path$health-check/Jcenter.bintray-proxy/details/security.json (/opt/NexusSharedStorage/default/content/directpath/health-check/Jcenter.bintray-proxy/details/security.json.properties) {quote} {quote}2018-02-17 11:55:14,084-0600 WARN [quartz-5-thread-3] NexusHDQ-One *SYSTEM org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access non-existent blob path$health-check/Jcenter.bintray-proxy/details/details.html (/opt/NexusSharedStorage/default/content/directpath/health-check/Jcenter.bintray-proxy/details/details.html.properties) {quote} These files appear to be created on the fly if missing and do not impact the healthcheck task itself, but the warnings can spam the log and suggest there is an issue. *Expected:* These warning should be suppressed in respect to health check files, in the situation when it first enabled on a repository (and files are created if missing).  ",1 +"NEXUS-16753","04/09/2018 18:03:14","Connection pool leak when docker hub proxy repository receives 401 responses from auth.docker.io","Configure a proxy repository against docker hub, and configure credentials under ""http/authentication"" section of the proxy's settings.  Use login credentials that _will not work_ on docker hub. Now fire 21 requests for content to the proxy, as in: {code:java} curl [http://localhost:8081/repository/docker-proxy/v2/maprtech/pacc/manifests/6.0.0_4.0.0_centos7] {code} The first 20 will fail unauthorized JSON responses, as expected.  But the 21st will fail with a connection pool timeout as Nexus attempts to retrieve the bearer token. It is necessary to restart Nexus to clear this connection pool leak. {noformat} 2018-04-09 11:54:53,709-0500 WARN [qtp335821775-61] *UNKNOWN org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/maprtech/pacc/manifests/6.0.0_4.0.0_centos7: 401 - org.sonatype.nexus.repository.docker.internal.V2Exception: authentication required 2018-04-09 11:55:26,954-0500 WARN [qtp335821775-246] *UNKNOWN org.sonatype.nexus.repository.docker.internal.auth.BearerScheme - Failed to retrieve docker bearer token org.apache.http.auth.AuthenticationException: Could not retrieve bearer token from https://auth.docker.io/token at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.retrieveBearerToken(DockerProxyFacetImpl.java:457) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.access$3(DockerProxyFacetImpl.java:424) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl$2.retrieveBearerToken(DockerProxyFacetImpl.java:782) at org.sonatype.nexus.repository.docker.internal.auth.DockerAuthHttpClientContext$2.getToken(DockerAuthHttpClientContext.java:76) at org.sonatype.nexus.repository.docker.internal.auth.BearerScheme.authenticate(BearerScheme.java:104) at org.apache.http.impl.auth.HttpAuthenticator.doAuth(HttpAuthenticator.java:239) at org.apache.http.impl.auth.HttpAuthenticator.generateAuthResponse(HttpAuthenticator.java:202) at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:262) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.lambda$1(FilteredHttpClientSupport.java:80) at org.sonatype.nexus.repository.httpclient.internal.BlockingHttpClient.filter(BlockingHttpClient.java:112) at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.execute(FilteredHttpClientSupport.java:80) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.execute(DockerProxyFacetImpl.java:307) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:376) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:346) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.doGet(ProxyFacetSupport.java:220) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.doGet(DockerProxyFacetImpl.java:800) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.lambda$1(ProxyFacetSupport.java:209) at org.sonatype.nexus.repository.proxy.Cooperation$CooperatingFuture.download(Cooperation.java:262) at org.sonatype.nexus.repository.proxy.Cooperation.download(Cooperation.java:194) at org.sonatype.nexus.repository.proxy.Cooperation.cooperate(Cooperation.java:93) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:201) at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:49) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure16.doCall(V2Handlers.groovy:269) at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022) at groovy.lang.Closure.call(Closure.java:414) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy188.handle(Unknown Source) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure18.doCall(V2Handlers.groovy:294) at sun.reflect.GeneratedMethodAccessor146.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022) at groovy.lang.Closure.call(Closure.java:414) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy188.handle(Unknown Source) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.docker.internal.DockerNotFoundHandler.handle(DockerNotFoundHandler.java:42) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure18.doCall(V2Handlers.groovy:294) at sun.reflect.GeneratedMethodAccessor146.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022) at groovy.lang.Closure.call(Closure.java:414) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy188.handle(Unknown Source) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure1.doCall(V2Handlers.groovy:88) at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022) at groovy.lang.Closure.call(Closure.java:414) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy188.handle(Unknown Source) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure17.doCall(V2Handlers.groovy:285) at sun.reflect.GeneratedMethodAccessor154.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1087) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022) at groovy.lang.Closure.call(Closure.java:414) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy188.handle(Unknown Source) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure20.doCall(V2Handlers.groovy:475) at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022) at groovy.lang.Closure.call(Closure.java:414) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy188.handle(Unknown Source) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.Context.start(Context.java:114) at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:64) at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:211) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:173) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:126) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) 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:125) 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:125) 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:125) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) 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:383) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.repository.httpbridge.internal.ExhaustRequestFilter.doFilter(ExhaustRequestFilter.java:71) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:108) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:102) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1629) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:530) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:347) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:256) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:382) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:708) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.leaseConnection(PoolingHttpClientConnectionManager.java:286) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$1.get(PoolingHttpClientConnectionManager.java:263) at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:190) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.lambda$0(FilteredHttpClientSupport.java:72) at org.sonatype.nexus.repository.httpclient.internal.BlockingHttpClient.filter(BlockingHttpClient.java:99) at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.execute(FilteredHttpClientSupport.java:72) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.executeOK(DockerProxyFacetImpl.java:473) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.retrieveBearerToken(DockerProxyFacetImpl.java:441) ... 215 common frames omitted {noformat}  ",1 +"NEXUS-16757","04/10/2018 14:16:46","Delete incomplete uploads DockerUploadPurgeTask task fails in 3.10.0","We have a task, that runs daily, to delete incomplete docker uploads (Docker - Delete incomplete uploads). This has been functioning normally, until our upgrade to 3.10.0-04 yesterday. Task schedule details: * Age in hours: 24 * Task frequency: Daily * Start date: 02/07/2016 * Time to run this task: 00:00 Run Summary, after manually clicking ""Run"": * Status: Waiting * Next Run: Wed Apr 11 2017 00:00:00 GMT-0500 * Last result: Error[0s] It has been failing since then, with the following error in the logs: {code:java} WARN  [quartz-5-thread-8] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskJob - Task nexus.59d41341-1b80-4af2-8c1f-bcedd3710b01 instantiation failure com.google.inject.ProvisionException: Unable to provision, see the following errors: 1) null returned by binding at org.eclipse.sisu.wire.LocatorWiring  but the 1st parameter of org.sonatype.nexus.repository.docker.tasks.DockerUploadPurgeTask.(DockerUploadPurgeTask.java:36) is not @Nullable   while locating org.sonatype.nexus.repository.docker.UploadManager     for the 1st parameter of org.sonatype.nexus.repository.docker.tasks.DockerUploadPurgeTask.(DockerUploadPurgeTask.java:36)   while locating org.sonatype.nexus.repository.docker.tasks.DockerUploadPurgeTask 1 error         at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1028)         at org.sonatype.nexus.scheduling.internal.TaskFactoryImpl.newInstance(TaskFactoryImpl.java:164)         at org.sonatype.nexus.scheduling.internal.TaskFactoryImpl.create(TaskFactoryImpl.java:193)         at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:136)         at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:108)         at org.quartz.core.JobRunShell.run(JobRunShell.java:202)         at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40)         at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120)         at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108)         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)         at java.util.concurrent.FutureTask.run(FutureTask.java:266)         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)         at java.lang.Thread.run(Thread.java:748) INFO  [quartz-5-thread-8] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Purge incomplete docker uploads' [repository.docker.upload-purge] state change RUNNING -> WAITING (FAILED) {code}",2 +"NEXUS-16777","04/11/2018 15:27:53","upgrade from Nexus 2.x to Nexus 3.x is allowed when nexus.clustered=true","Apparently you can start the upgrade process of 2.x into 3.x when 3.x is in HA-C clustered mode. This type of upgrade is not tested or intended to be supported, therefore we should prevent a user from migrating in this mode or at the very least document that this is not supported.",1 +"NEXUS-16778","04/11/2018 15:30:29","Regression: UI allows creation of roles with spaces in their ID's. These can't be seen in the roles list, and can't be deleted","Not sure what happened here, but at some point we lost the fix for NEXUS-2904. It is now (once again) possible to create roles with spaces in their ID's.  As before, the resulting role cannot be deleted via the UI.",3 +"NEXUS-16853","04/13/2018 19:40:07","Enhance content validation for maven-metadata.xml files","The current file content validation for maven-metadata.xml files does very little. Caching bad metadata.xml files from servers can lead to build failures.  Furthermore, it can often be difficult to clean up bad maven-metadata.xml files from a proxy's cache, and even if you do, they may just get downloaded again. Content validation for maven-metadata.xml files can be improved by parsing the files and making sure that: # The GAV coordinates metadata.xml file are present in the file # The GAV coordinates match the path the file is stored in Files which do not meet the above criteria should be rejected.",3 +"NEXUS-16881","04/17/2018 21:27:38","Disable OrientDB live query support","We don't use the https://orientdb.com/docs/2.2.x/Live-Query.html feature and disabling it completely (ie. removing it totally as a DB hook) will give a small performance boost. It will also guarantee to remove future log-spam issues caused by {{OLiveQueryHook}}'s erroneous assumption that there will be a valid DB thread-local when it's called - which isn't always the case depending on the scenario. This has led in the past to a number of log-spam reports, mostly on HA but also on a couple of non-HA systems under stress. The previous reports should have been fixed now by upstream changes, but disabling the live-query feature would protect us from similar issues in the future.",1 +"NEXUS-16903","04/18/2018 20:09:39","include HTTP request Content-Length header value in request.log","Sometimes problem diagnosis in Nexus Repository Manager may benefit from knowing the inbound http request anticipated content size. For a large majority of requests to add content into Nexus, HTTP PUT is used. In those cases, the request content size information is usually available from the [HTTP request Content-Length header value.|https://tools.ietf.org/html/rfc7230#section-3.3.2]. ( there are some exceptions, in particular ""When a message does not have a Transfer-Encoding header field, a Content-Length header field can provide the anticipated size, as a decimal number of octets, for a potential payload body."" ) h4. Expected The default request.log log pattern for Nexus should be adjusted to include the value if any of the Content-Length header of the request. Current pattern as of nexus 3.10.0 {noformat} %clientHost %l %user [%date] ""%requestURL"" %statusCode %bytesSent %elapsedTime ""%header{User-Agent}"" {noformat} Proposed new format: {noformat} %clientHost %l %user [%date] ""%requestURL"" %statusCode %header{Content-Length} %bytesSent %elapsedTime ""%header{User-Agent}"" {noformat} This change should be announced in release notes in case users have configured external request log parsers which may need adjustment or prefer to not have this value printed. ",1 +"NEXUS-16915","04/19/2018 22:33:59","certificate errors using LDAP over SSL in HA","In a cluster configuration, if you configure a connection to an LDAP server that utilizes LDAP over SSL (an ""ldaps:"" connection) and attempt to store the certificate in the Nexus Truststore, only the node where the connection is created will be able to connect to the LDAP server.  If you attempt to click the 'Verify connection' button in the user interface of any other node, you will receive an error in the user interface and an error similar to the following in the nexus.log file: {code} 2018-04-19 15:59:48,225-0500 ERROR [qtp1461859206-341] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: ldap_LdapServer.verifyUserMapping, java-method: org.sonatype.nexus.ldap.internal.ui.LdapServerComponent.verifyUserMapping java.lang.Exception: Failed to connect to LDAP Server: internal_hostname:636 [Caused by javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty] [Caused by java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty] [Caused by java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) {code} You may also see the following errors in the nexus.log when an authentication attempt is made: {code} 2018-04-19 15:58:40,867-0500 DEBUG [pool-24-thread-16] admin org.sonatype.nexus.ldap.internal.realms.DefaultLdapContextFactory - Initializing LDAP context using URL [ldaps://internal_hostname:636/dc=foo,dc=bar,dc=local] and username [cn=testuser1,cn=users,dc=foo,dc=bar,dc=local] with pooling [enabled] and environment {java.naming.referral=follow, java.naming.ldap.factory.socket=org.sonatype.nexus.ldap.internal.ssl.ThreadLocalSocketFactory, com.sun.jndi.ldap.connect.timeout=30000, java.naming.security.principal=cn=testuser1,cn=users,dc=foo,dc=bar,dc=local, java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, com.sun.jndi.ldap.connect.pool=true, java.naming.provider.url=ldaps://internal_hostname:636/dc=foo,dc=bar,dc=local, java.naming.security.credentials=***, java.naming.security.authentication=simple} 2018-04-19 15:58:41,050-0500 WARN [pool-24-thread-16] admin org.sonatype.nexus.ldap.internal.connector.FailoverLdapConnector - Problem connecting to LDAP server: org.sonatype.nexus.ldap.internal.connector.dao.LdapDAOException: Failed to retrieve ldap information for users. at org.sonatype.nexus.ldap.internal.connector.DefaultLdapConnector.searchUsers(DefaultLdapConnector.java:197) at org.sonatype.nexus.ldap.internal.connector.FailoverLdapConnector.searchUsers(FailoverLdapConnector.java:208) {code} ",3 +"NEXUS-16930","04/23/2018 17:28:04","no reason logged at default levels why QuartzTaskFuture healthcheck task is canceled","Example log messages that might be visible when a task is Cancelled: {noformat} 2018-04-23 03:30:53,835+0200 INFO [quartz-5-thread-14] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'System - Repository Health Check: hibernate-spatial-mb' [healthcheck] state change WAITING -> RUNNING 2018-04-23 03:30:53,863+0200 INFO [quartz-5-thread-14] *SYSTEM org.sonatype.nexus.scheduling.internal.TaskSchedulerImpl - Task 'System - Repository Health Check: hibernate-spatial-mb' [healthcheck] scheduled: hourly 2018-04-23 03:30:53,863+0200 INFO [quartz-5-thread-14] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskFuture - Task canceled 'System - Repository Health Check: hibernate-spatial-mb' [healthcheck] 2018-04-23 03:30:53,866+0200 INFO [quartz-5-thread-14] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'System - Repository Health Check: hibernate-spatial-mb' [healthcheck] state change RUNNING -> WAITING (CANCELED) {noformat} The healthcheck task has no task logs by design in this case, and no other log messages indicate why the healthcheck task was immediately cancelled. h4. Expected There should be a log message at INFO explaining the root cause of task cancellation ( server shutting down, user manually cancelled the task, specific programatic condition not met to proceed, etc.? ) every time any task is cancelled.",1 +"NEXUS-16935","04/23/2018 18:58:19","upgrade to a newer version of Quartz scheduler","Heres the list of commits that went in between Quartz-scheduler 2.2.2 (our version) and latest as of this ticket (2.3.0): https://github.com/quartz-scheduler/quartz/compare/7733bc97c7c8ca6cd927049d7d36ae25261a1a0c...quartz-scheduler:0bd9adeace3e5dc238e84397573c3e9c6be265a6 Looks like JobStore interface has a couple of new methods which our JobStoreImpl would need to implement... https://github.com/quartz-scheduler/quartz/milestone/1?closed=1 shows the issues which went into 2.3.0",5 +"NEXUS-16944","04/24/2018 19:40:41","Uncaught TypeError Cannot read property 'loading' of null editing task schedules","When editing a scheduled task with a schedule, and trying to change that schedule, users may notice the UI report the following message: *Uncaught TypeError Cannot read property 'loading' of null* This has been noticed on various task types when trying to change the schedule from hourly to daily or weekly to monthly and then clicking the Save button. After the error occurs, the UI may not refresh the task settings correctly and the Discard button may not appear to function properly. Another side effect is the dialog to confirm discarding changes may not render in the correct position or not be visible entirely. Despite the UI errors, the original changes that were attempted to be saved appear to be persisted correctly. h4. Workaround There is no option to prevent the UI error. However recovery is relatively simple. Use the browser refresh button to refresh the entire Nexus UI. After that the current state of the task settings should render correctly. ",2 +"NEXUS-16950","04/25/2018 20:09:26","org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getRepositoriesMap permission bottleneck for large numbers of repositories in nested group repos","org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getRepositoriesMap is a synchronized method allowing only one thread access at a time. There are several triggers to get a repositories map per HTTP request into Nexus. Example thread stacks which confluence around this method are: {noformat:title=/service/local/data_index} qtp162721995-13491 id=13491 state=BLOCKED - waiting to lock <0x0e70f442> (a org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry) owned by qtp162721995-5951 id=5951 at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getRepositoriesMap(DefaultRepositoryRegistry.java:207) at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getRepository(DefaultRepositoryRegistry.java:118) at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.getMemberRepositories(AbstractGroupRepository.java:390) at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getGroupsOfRepository(DefaultRepositoryRegistry.java:175) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePathCascade(DefaultNexusItemAuthorizer.java:69) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePath(DefaultNexusItemAuthorizer.java:63) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePathCascade(DefaultNexusItemAuthorizer.java:71) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePath(DefaultNexusItemAuthorizer.java:63) at org.sonatype.nexus.index.DefaultIndexArtifactFilter.filterArtifactInfo(DefaultIndexArtifactFilter.java:85) at org.sonatype.nexus.index.DefaultIndexerManager$18.accepts(DefaultIndexerManager.java:1854) at org.apache.maven.index.AndMultiArtifactInfoFilter.accepts(AndMultiArtifactInfoFilter.java:46) at org.apache.maven.index.AbstractMultiArtifactInfoFilter.accepts(AbstractMultiArtifactInfoFilter.java:80) at org.apache.maven.index.DefaultIteratorResultSet.createNextAi(DefaultIteratorResultSet.java:245) at org.apache.maven.index.DefaultIteratorResultSet.next(DefaultIteratorResultSet.java:153) at org.apache.maven.index.DefaultIteratorResultSet.next(DefaultIteratorResultSet.java:51) at org.sonatype.nexus.rest.index.AbstractIndexerNexusPlexusResource.ai2NaColl(AbstractIndexerNexusPlexusResource.java:67) at org.sonatype.nexus.rest.index.AbstractIndexPlexusResource.get(AbstractIndexPlexusResource.java:165) at org.sonatype.nexus.rest.index.DefaultIndexPlexusResource.get(DefaultIndexPlexusResource.java:86) at org.sonatype.plexus.rest.resource.RestletResource.represent(RestletResource.java:233) {noformat} {noformat:title=/service/local/lucene/search} qtp162721995-414 id=414 state=BLOCKED - waiting to lock <0x0e70f442> (a org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry) owned by qtp162721995-5951 id=5951 at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getRepositoriesMap(DefaultRepositoryRegistry.java:207) at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getRepository(DefaultRepositoryRegistry.java:118) at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.getMemberRepositories(AbstractGroupRepository.java:390) at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getGroupsOfRepository(DefaultRepositoryRegistry.java:175) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePathCascade(DefaultNexusItemAuthorizer.java:69) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePath(DefaultNexusItemAuthorizer.java:63) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePathCascade(DefaultNexusItemAuthorizer.java:71) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePath(DefaultNexusItemAuthorizer.java:63) at org.sonatype.nexus.index.DefaultIndexArtifactFilter.filterArtifactInfo(DefaultIndexArtifactFilter.java:85) at org.sonatype.nexus.index.DefaultIndexerManager$18.accepts(DefaultIndexerManager.java:1854) at org.apache.maven.index.AndMultiArtifactInfoFilter.accepts(AndMultiArtifactInfoFilter.java:46) at org.apache.maven.index.AbstractMultiArtifactInfoFilter.accepts(AbstractMultiArtifactInfoFilter.java:80) at org.apache.maven.index.DefaultIteratorResultSet.createNextAi(DefaultIteratorResultSet.java:245) at org.apache.maven.index.DefaultIteratorResultSet.next(DefaultIteratorResultSet.java:153) at org.apache.maven.index.DefaultIteratorResultSet.next(DefaultIteratorResultSet.java:51) at org.sonatype.nexus.index.LockingIteratorResultSet.next(LockingIteratorResultSet.java:46) at org.sonatype.nexus.index.LockingIteratorResultSet.next(LockingIteratorResultSet.java:25) at org.sonatype.nexus.rest.indexng.SearchNGIndexPlexusResource.packSearchNGResponse(SearchNGIndexPlexusResource.java:338) at org.sonatype.nexus.rest.indexng.SearchNGIndexPlexusResource.get(SearchNGIndexPlexusResource.java:256) at org.sonatype.nexus.rest.indexng.SearchNGIndexPlexusResource.get(SearchNGIndexPlexusResource.java:66) at org.sonatype.plexus.rest.resource.RestletResource.represent(RestletResource.java:233) at org.sonatype.nexus.rest.NexusRestletResource.represent(NexusRestletResource.java:39) {noformat} {noformat:title=NexusTargetMappingAuthorizationFilter} qtp162721995-408 id=408 state=BLOCKED - waiting to lock <0x0e70f442> (a org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry) owned by qtp162721995-5951 id=5951 at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getRepositoriesMap(DefaultRepositoryRegistry.java:207) at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getRepository(DefaultRepositoryRegistry.java:118) at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.getMemberRepositories(AbstractGroupRepository.java:390) at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getGroupsOfRepository(DefaultRepositoryRegistry.java:175) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePathCascade(DefaultNexusItemAuthorizer.java:69) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePath(DefaultNexusItemAuthorizer.java:63) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePathCascade(DefaultNexusItemAuthorizer.java:71) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePath(DefaultNexusItemAuthorizer.java:63) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePathCascade(DefaultNexusItemAuthorizer.java:71) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePath(DefaultNexusItemAuthorizer.java:63) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePathCascade(DefaultNexusItemAuthorizer.java:71) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePath(DefaultNexusItemAuthorizer.java:63) at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.authorizePath(DefaultRepositoryRouter.java:619) at org.sonatype.nexus.security.filter.authz.NexusTargetMappingAuthorizationFilter.isAccessAllowed(NexusTargetMappingAuthorizationFilter.java:160) at org.apache.shiro.web.filter.AccessControlFilter.onPreHandle(AccessControlFilter.java:162) at org.apache.shiro.web.filter.PathMatchingFilter.isFilterChainContinued(PathMatchingFilter.java:203) at org.apache.shiro.web.filter.PathMatchingFilter.preHandle(PathMatchingFilter.java:178) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:131) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) 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:125) 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:125) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.sonatype.nexus.web.internal.SecurityFilter.executeChain(SecurityFilter.java:90) {noformat} {noformat:title=ContentServlet authorization} qtp162721995-1056 id=1056 state=BLOCKED - waiting to lock <0x0e70f442> (a org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry) owned by qtp162721995-5951 id=5951 at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getRepositoriesMap(DefaultRepositoryRegistry.java:207) at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getRepository(DefaultRepositoryRegistry.java:118) at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.getMemberRepositories(AbstractGroupRepository.java:390) at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getGroupsOfRepository(DefaultRepositoryRegistry.java:175) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePathCascade(DefaultNexusItemAuthorizer.java:69) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePath(DefaultNexusItemAuthorizer.java:63) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePathCascade(DefaultNexusItemAuthorizer.java:71) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePath(DefaultNexusItemAuthorizer.java:63) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePathCascade(DefaultNexusItemAuthorizer.java:71) at org.sonatype.nexus.proxy.access.DefaultNexusItemAuthorizer.authorizePath(DefaultNexusItemAuthorizer.java:63) at org.sonatype.nexus.proxy.access.DefaultAccessManager.decide(DefaultAccessManager.java:46) at org.sonatype.nexus.proxy.repository.AbstractRepository.checkConditions(AbstractRepository.java:1194) at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:590) at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:155) at org.sonatype.nexus.content.internal.ContentServlet.doGet(ContentServlet.java:386) {noformat} {noformat:title=Smart Proxy event publishing} qtp162721995-1015 id=1015 state=BLOCKED - waiting to lock <0x0e70f442> (a org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry) owned by qtp162721995-5951 id=5951 at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getRepositoriesMap(DefaultRepositoryRegistry.java:207) at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getRepository(DefaultRepositoryRegistry.java:118) at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.getMemberRepositories(AbstractGroupRepository.java:390) at org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry.getGroupsOfRepository(DefaultRepositoryRegistry.java:175) at com.sonatype.nexus.plugins.smartproxy.event.internal.PublishEventInspector.includeRecipients(PublishEventInspector.java:268) at com.sonatype.nexus.plugins.smartproxy.event.internal.PublishEventInspector.includeRecipients(PublishEventInspector.java:271) at com.sonatype.nexus.plugins.smartproxy.event.internal.PublishEventInspector.includeRecipients(PublishEventInspector.java:271) at com.sonatype.nexus.plugins.smartproxy.event.internal.PublishEventInspector.includeRecipients(PublishEventInspector.java:271) at com.sonatype.nexus.plugins.smartproxy.event.internal.PublishEventInspector.recipients(PublishEventInspector.java:253) at com.sonatype.nexus.plugins.smartproxy.event.internal.PublishEventInspector.maybeFireItemUpdated(PublishEventInspector.java:354) at com.sonatype.nexus.plugins.smartproxy.event.internal.PublishEventInspector.on(PublishEventInspector.java:182) at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.sonatype.sisu.goodies.eventbus.internal.guava.EventHandler.handleEvent(EventHandler.java:80) at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.dispatch(EventBus.java:329) at org.sonatype.sisu.goodies.eventbus.internal.DefaultGuavaEventBus.dispatch(DefaultGuavaEventBus.java:34) at org.sonatype.sisu.goodies.eventbus.internal.ReentrantGuavaEventBus.dispatchQueuedEvents(ReentrantGuavaEventBus.java:57) at org.sonatype.sisu.goodies.eventbus.internal.guava.EventBus.post(EventBus.java:281) at org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus.post(DefaultEventBus.java:78) at org.sonatype.nexus.proxy.repository.AbstractRepository.storeItem(AbstractRepository.java:1032) at org.sonatype.nexus.proxy.maven.AbstractMavenRepository.storeItem(AbstractMavenRepository.java:466) at org.sonatype.nexus.proxy.repository.AbstractRepository.storeItem(AbstractRepository.java:661) at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.storeItem(DefaultRepositoryRouter.java:179) at org.sonatype.nexus.content.internal.ContentServlet.doPut(ContentServlet.java:602) at org.sonatype.nexus.content.internal.ContentServlet.service(ContentServlet.java:357) {noformat} Since the method is synchronized and this method copies the entire list of repository members which may be large, in a heavily loaded system receiving combinations of the mentioned code paths, threads may backup to the point where Nexus may appear non-responsive due to a high number of blocked threads on the subject method. This performance problem is most likely to surface under two primary conditions: 1) nested group repo hierarchy 2) group repos containing thousands of repositories ",1 +"NEXUS-16985","05/02/2018 22:40:41","Nexus 2 to 3 migration fails if there are staging build promotion repositories.","An upgrade from Nexus 2.x to 3.x will fail if Nexus 2.x has staging build promotion repositories.   The repositories migration list will not even load.  The logs show this error:   {quote}2018-05-02 14:11:03,506-0600 ERROR [pool-21-thread-3] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: migration_Repository.read, java-method: com.sonatype.nexus.migration.ui.RepositoryComponent.read java.lang.NullPointerException: Cannot get property 'memberNames' on null object at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:60) at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:174) at org.codehaus.groovy.runtime.DefaultGroovyMethods.getAt(DefaultGroovyMethods.java:257) at org.codehaus.groovy.runtime.dgm$241.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:251) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:71) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:35) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:58) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at com.sonatype.nexus.migration.ui.RepositoryComponent$_closure3.doCall(RepositoryComponent.groovy:144) {quote} *Expected* There isn't currently an upgrade path from Nexus 2.x staging to Nexus 3.x staging, so it is expected that the the build promotion repositories should show up in the migration repository list as disabled.",3 +"NEXUS-16994","05/04/2018 15:56:16","Task scheduling can give UI errors","Example repro steps: Enable a Repository Health Check on a maven, nuget, or npm repo. Attempt to edit the settings for the resulting task, e.g. System - Repository Health Check: maven-central (Check for new report availability) Change the 'Task frequency', from ""Hourly"" to ""Daily"" and save the changes.  The UI shows errors like the one below, and the page will need to be reloaded at the browser level to function: !UIErrorRHCTaskSchdule.png!",2 +"NEXUS-17001","05/06/2018 06:09:09","NullPointerException when accessing the HTML view of a repository as anonymous user (when anonymous access is disabled)","I've received this error under these circumstances: * Nexus OSS 3.11.0-01 * anonymous access disabled * used browser to access: [https://nexus/service/rest/repository/browse/maven-group/] ** result: ERROR: (ID e58724ee-f009-47f8-9c17-2be6ee10e8e7) java.lang.NullPointerException * if I log in to Nexus, the browsing succeeds I am happy an anonymous user cannot browse the repository (as intended), but they should probably just get an Unauthorized message rather than a NullPointerException.",1 +"NEXUS-17008","05/09/2018 18:48:14","Task Does Not Run (Again) if it Overruns into Next Run Time","If a scheduled task overruns into its 'Next Run' time, the 'Next Run' time is not updated and the task does not run again. *To reproduce:* 1. Configure an 'Execute Script' task with the attached script. It is coded to run for ~5minutes. 2. Configure a cron expression for the task frequency so that it runs every 2 minutes i.e. 0 0/2 * 1/1 * ? * As the task runs for 5 minutes, it goes past its next run time which does not get updated and the task does not run after its first run.",3 +"NEXUS-17097","05/16/2018 17:34:53","Error communicating with IQ server persists indefinitely in repository manager if IQ server connection fails while displaying the repository list","*Historical:* This issue moved from https://issues.sonatype.org/browse/NEXUS-16977 Start a new NXRM 3.10.0-04. Start a new IQ server 1.46 install. Click Analyze button in NXRM repo list for maven-central, choose Yes to All to enable healthcheck for all repos. ( by default this means maven-central and nuget.org-proxy ) Click away from repo list. Click back to repo list. Eventually the Healthcheck column states ""insufficient trend data"" for nuget.org-proxy and maven-central. The IQ Policy Violation column shows a circle with a line through it icon. Configure IQ server connection to the running IQ server. Verify it is working. Add a IQ: Audit and Quarantine capability for maven-central. Click back to repositories list several times. Eventually the IQ Policy Violations column will show ""No Violations"" and a link to the report. Make a request for an artifact in maven-central. curl -v -u admin:admin123 http://localhost:8081/repository/maven-central/abbot/abbot/0.13.0/abbot-0.13.0.jar -o /dev/null Click away and back to the repo list. IQ Policy Violations still shows No Violations. Login to IQ server and verify that maven-central is registered correctly. In NXRM click the maven-central report link. The report should show 1 component identified. Stop IQ server Request a different component from maven-central repo. This one takes 15 seconds to fail because Nexus can't reach IQ server. Click away and then back to the repo list in NXRM. IQ Policy Violation column shows Error communicating with IQ Server Connection refused. Start IQ Server. Click away from then back into the repositories list. The IQ policy Violations column now shows No Violations + link again as it is able to detect that IQ server is available. Stop IQ Server. Click away and then back to the repo list in NXRM. IQ Policy Violation column shows Error communicating with IQ Server. Start IQ Server. Click away and then back to the repo list in NXRM. IQ Policy Violation column still shows Error communicating with IQ Server. **{color:red}From this point on there is no non-destructive way to clear the Error Communicating with IQ server message except to restart NXRM{color}** Other non-destructive things tried that do not work: 1) request a component through maven-central while IQ server is offline 2) signin and signout of NXRM UI 3) Click Verify Connection again successfully in NXRM IQ Server configuration screen h4. Workaround To reset the UI connection state: First wait until or at least verify the IQ server has become available again - you can test this with the Verify Connection button in the IQ Server configuration screen. Even though the verification of connection succeeds, this will not make the UI error message go away. Make a request for a jar artifact that exists at the remote but is not yet cached in the proxy repository local cache OR has never been requested while IQ server was disconnected. This should trigger a new evaluation for that artifact. If you do not know of an artifact that is at the remote that is not yet cached, use the Nexus UI to find jar asset, delete it, then make a request for it again through your proxy repository. This re-requesting of a non-cached asset that needs auditing will reset the audit task error state, if the IQ server can be reached. Then click away from and click back to the repositories list view. The IQ Policy Evaluation column should then remove the error state. h4. Expected Brief interruptions to IQ server communication ( like restarts) should not persist indefinitely. If they do persist, there should be a well travelled trivial method to reset the connection state. The stated workaround is not adequate: - it is confusing and a manual process - it should be automatic - it may be impossible to know the path of an artifact that exists at the remote that has never been requested through the proxy repository - the manual process may need repeating for 10s to 100s of repos - the log messages in the application log are not informative to solve or diagnose the problem - Verify Connection on the IQ Server configuration verifies that the connection works, yet the UI state never resolves itself despite this ",2 +"NEXUS-17101","05/17/2018 01:55:51","PartialFetchHandler produces invalid HTTP responses","Any URL that has PartialFetchHandler involved produces invalid HTTP responses. This was reported against the Nexus APT community plugin here: https://github.com/sonatype-nexus-community/nexus-repository-apt/issues/47 I looked into this, and it looks like {{PartialFetchHandler}} sends an invalid {{Content-Range}} header here: [https://github.com/sonatype/nexus-public/blob/82d58ec7e1464cf25efca423bbe5f8cbd6eb4f55/components/nexus-repository/src/main/java/org/sonatype/nexus/repository/http/PartialFetchHandler.java#L119] According to the RFC ([https://tools.ietf.org/html/rfc7233#section-4.2]) the {{Content-Range}} header needs a unit specifier of ""bytes"" in it. Also, it seems like the base code doesn't correctly handle the {{If-Range}} header. I have a PR that fixes both issues if you want to merge to the base code: [mpoindexter/nexus-public#1|https://github.com/mpoindexter/nexus-public/pull/1]",1 +"NEXUS-17156","05/21/2018 20:37:47","Staging REST endpoint returns 401 when a user is authenticated but lacks needed privileges","The new staging REST API returns a 401 response when a user has been successfully authenticated, but does not have the needed privileges to perform the operation.  This is incorrect, and very confusing.  It should return a 403 error when a user has been authenticated, but is not permitted.   {code:java} $ curl -i -u test:test -X POST http://localhost:8081/service/rest/beta/staging/move/uat?tag=stagingTestTag HTTP/1.1 401 Unauthorized Date: Mon, 21 May 2018 19:32:10 GMT Server: Nexus/3.11.0-01 (PRO) X-Content-Type-Options: nosniff Content-Type: application/json Content-Length: 115 { ""status"" : 401, ""message"" : ""Move from repository not permitted"", ""data"" : { ""repository"" : ""dev"" } } {code}      ",1 +"NEXUS-17199","05/22/2018 22:01:01","Apply content selector permissions to staging operations","*Acceptance* * Allow staging operations on the basis of content selector permissions * e.g. admins can allow staging operations to and from portions of repositories, rather than at the whole-repo level as specified in --NEXUS-15153-- * In situations where users don't have privileges to complete the operation*, the entire operation should return an error code. e.g. components ABC are in Repo 1 (R1). # A user can see ABC in R1 # User initiates move ABC to R2 # System checks permissions, finds user can't delete A from R1, and can't write C to R2.",5 +"NEXUS-17202","05/23/2018 18:01:34","""out of range"" error when installing some npm packages via proxy","I use nexus 2.14.8 as a npm proxy, when I run npm install rc-select --registry=[http://nexus.example.com/content/repositories/npm-proxy/] I get a lot of 500 error from the server.  nexus log: {code} 2018-05-23 16:24:48,597+0300 WARN  [qtp1036637497-52] anonymous org.sonatype.nexus.content.internal.ContentServlet - org.sonatype.nexus.proxy.LocalStorageExcepti on: Metadata service error, caused by: com.fasterxml.jackson.core.JsonParseException: Numeric value (1457685770155) out of range of int  jvm 1    |  at [Source: (org.apache.http.client.entity.LazyDecompressingInputStream); line: 1, column: 126354] [client=192.168.199.152,ua=npm/6.0.1 node/v8.11.2 linux x64,r eq=GET [http://nexus.example.com/content/repositories/npm-proxy/rc-select]]  jvm 1    | 2018-05-23 16:24:48,599+0300 ERROR [qtp1036637497-52]  org.sonatype.nexus.web.internal.ErrorPageFilter - Internal error  jvm 1    | org.sonatype.nexus.proxy.LocalStorageException: Metadata service error  jvm 1    |      at com.bolyuba.nexus.plugin.npm.proxy.DefaultNpmProxyRepository.doRetrieveLocalItem(DefaultNpmProxyRepository.java:253)  jvm 1    |      at org.sonatype.nexus.proxy.repository.AbstractRepository.doRetrieveItem(AbstractRepository.java:1248)  jvm 1    |      at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem(AbstractProxyRepository.java:996)  jvm 1    |      at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:760)  jvm 1    |      at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:592)  jvm 1    |      at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:155)  jvm 1    |      at org.sonatype.nexus.content.internal.ContentServlet.doGet(ContentServlet.java:386)  jvm 1    |      at org.sonatype.nexus.content.internal.ContentServlet.service(ContentServlet.java:352)  jvm 1    |      at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)  jvm 1    |      at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:297)  jvm 1    |      at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:281)  jvm 1    |      at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:186)  jvm 1    |      at com.google.inject.servlet.AbstractServletPipeline.service(AbstractServletPipeline.java:65)  jvm 1    |      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112)  jvm 1    |      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100)  jvm 1    |      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82)  jvm 1    |      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100)  jvm 1    |      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82)  jvm 1    |      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100)  jvm 1    |      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82)  jvm 1    |      at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)  jvm 1    |      at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)  jvm 1    |      at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)  jvm 1    |      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)  jvm 1    |      at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)  jvm 1    |      at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)  jvm 1    |      at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)  jvm 1    |      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)  jvm 1    |      at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)  jvm 1    |      at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)  jvm 1    |      at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)  jvm 1    |      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)  jvm 1    |      at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)  jvm 1    |      at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)  jvm 1    |      at org.sonatype.nexus.web.internal.SecurityFilter.executeChain(SecurityFilter.java:90)  jvm 1    |      at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)  jvm 1    |      at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)  jvm 1    |      at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)  jvm 1    |      at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)  jvm 1    |      at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)  jvm 1    |      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)  jvm 1    |      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100)  jvm 1    |      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82)  jvm 1    |      at com.yammer.metrics.web.WebappMetricsFilter.doFilter(WebappMetricsFilter.java:76)  jvm 1    |      at org.sonatype.nexus.web.internal.CommonHeadersFilter.doFilter(CommonHeadersFilter.java:69)  jvm 1    |      at org.sonatype.nexus.web.internal.ErrorPageFilter.doFilter(ErrorPageFilter.java:71)  jvm 1    |      at org.sonatype.nexus.web.internal.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:66)  jvm 1    |      at org.sonatype.nexus.web.internal.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:96)  jvm 1    |      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100)  jvm 1    |      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82)  jvm 1    |      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterPipeline.dispatch(NexusGuiceFilter.java:56)  jvm 1    |      at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133)  jvm 1    |      at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130)  jvm 1    |      at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203)  jvm 1    |      at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130)  jvm 1    |      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)  jvm 1    |      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)  jvm 1    |      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)  jvm 1    |      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)  jvm 1    |      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)  jvm 1    |      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)  jvm 1    |      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)  jvm 1    |      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)  jvm 1    |      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)  jvm 1    |      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)  jvm 1    |      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)  jvm 1    |      at com.yammer.metrics.jetty.InstrumentedHandler.handle(InstrumentedHandler.java:200)  jvm 1    |      at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)  jvm 1    |      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)  jvm 1    |      at org.eclipse.jetty.server.Server.handle(Server.java:370)  jvm 1    |      at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)  jvm 1    |      at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)  jvm 1    |      at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)  jvm 1    |      at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)  jvm 1    |      at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)  jvm 1    |      at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)  jvm 1    |      at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)  jvm 1    |      at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)  jvm 1    |      at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)  jvm 1    |      at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)  jvm 1    |      at java.lang.Thread.run(Thread.java:748)  jvm 1    | Caused by: com.fasterxml.jackson.core.JsonParseException: Numeric value (1457685770155) out of range of int  jvm 1    |  at [Source: (org.apache.http.client.entity.LazyDecompressingInputStream); line: 1, column: 126354]  jvm 1    |      at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1798)  jvm 1    |      at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:663)  jvm 1    |      at com.fasterxml.jackson.core.base.ParserBase.convertNumberToInt(ParserBase.java:867)  jvm 1    |      at com.fasterxml.jackson.core.base.ParserBase._parseIntValue(ParserBase.java:799)  jvm 1    |      at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.getValueAsInt(UTF8StreamJsonParser.java:348)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parseValue(MetadataParser.java:246)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parseVersion(MetadataParser.java:313)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parseVersions(MetadataParser.java:290)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parsePackageRoot(MetadataParser.java:185)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parsePackageRoot(MetadataParser.java:126)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.proxy.HttpProxyMetadataTransport.fetchPackageRoot(HttpProxyMetadataTransport.java:218)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl.mayUpdatePackageRoot(ProxyMetadataServiceImpl.java:247)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl.doGeneratePackageRoot(ProxyMetadataServiceImpl.java:207)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.generatePackageRoot(GeneratorSupport.java:113)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.producePackageRoot(GeneratorSupport.java:82)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.proxy.DefaultNpmProxyRepository.doRetrieveLocalItem(DefaultNpmProxyRepository.java:198)  jvm 1    |      ... 80 common frames omitted  jvm 1    | 2018-05-23 16:25:48,945+0300 WARN  [qtp1036637497-50] anonymous org.sonatype.nexus.content.internal.ContentServlet - org.sonatype.nexus.proxy.LocalStorageExcepti on: Metadata service error, caused by: com.fasterxml.jackson.core.JsonParseException: Numeric value (1457685770155) out of range of int  jvm 1    |  at [Source: (org.apache.http.client.entity.LazyDecompressingInputStream); line: 1, column: 126354] [client=192.168.199.152,ua=npm/6.0.1 node/v8.11.2 linux x64,r eq=GET [http://nexus.example.com/content/repositories/npm-proxy/rc-select]]  jvm 1    | 2018-05-23 16:25:48,946+0300 ERROR [qtp1036637497-50]  org.sonatype.nexus.web.internal.ErrorPageFilter - Internal error  jvm 1    | org.sonatype.nexus.proxy.LocalStorageException: Metadata service error  jvm 1    |      at com.bolyuba.nexus.plugin.npm.proxy.DefaultNpmProxyRepository.doRetrieveLocalItem(DefaultNpmProxyRepository.java:253)  jvm 1    |      at org.sonatype.nexus.proxy.repository.AbstractRepository.doRetrieveItem(AbstractRepository.java:1248)  jvm 1    |      at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.doRetrieveItem(AbstractProxyRepository.java:996)  jvm 1    |      at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:760)  jvm 1    |      at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:592)  jvm 1    |      at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:155)  jvm 1    |      at org.sonatype.nexus.content.internal.ContentServlet.doGet(ContentServlet.java:386)  jvm 1    |      at org.sonatype.nexus.content.internal.ContentServlet.service(ContentServlet.java:352)  jvm 1    |      at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)  jvm 1    |      at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:297)  jvm 1    |      at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:281)  jvm 1    |      at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:186)  jvm 1    |      at com.google.inject.servlet.AbstractServletPipeline.service(AbstractServletPipeline.java:65)  jvm 1    |      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112)  jvm 1    |      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100)  jvm 1    |      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82)  jvm 1    |      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100)  jvm 1    |      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82)  jvm 1    |      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100)  jvm 1    |      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82)  jvm 1    |      at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)  jvm 1    |      at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)  jvm 1    |      at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)  jvm 1    |      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)  jvm 1    |      at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)  jvm 1    |      at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)  jvm 1    |      at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)  jvm 1    |      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)  jvm 1    |      at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)  jvm 1    |      at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)  jvm 1    |      at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)  jvm 1    |      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)  jvm 1    |      at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)  jvm 1    |      at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)  jvm 1    |      at org.sonatype.nexus.web.internal.SecurityFilter.executeChain(SecurityFilter.java:90)  jvm 1    |      at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)  jvm 1    |      at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)  jvm 1    |      at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)  jvm 1    |      at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)  jvm 1    |      at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)  jvm 1    |      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)  jvm 1    |      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100)  jvm 1    |      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82)  jvm 1    |      at com.yammer.metrics.web.WebappMetricsFilter.doFilter(WebappMetricsFilter.java:76)  jvm 1    |      at org.sonatype.nexus.web.internal.CommonHeadersFilter.doFilter(CommonHeadersFilter.java:69)  jvm 1    |      at org.sonatype.nexus.web.internal.ErrorPageFilter.doFilter(ErrorPageFilter.java:71)  jvm 1    |      at org.sonatype.nexus.web.internal.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:66)  jvm 1    |      at org.sonatype.nexus.web.internal.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:96)  jvm 1    |      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100)  jvm 1    |      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82)  jvm 1    |      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterPipeline.dispatch(NexusGuiceFilter.java:56)  jvm 1    |      at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133)  jvm 1    |      at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130)  jvm 1    |      at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203)  jvm 1    |      at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130)  jvm 1    |      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)  jvm 1    |      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)  jvm 1    |      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)  jvm 1    |      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)  jvm 1    |      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)  jvm 1    |      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)  jvm 1    |      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)  jvm 1    |      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)  jvm 1    |      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)  jvm 1    |      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)  jvm 1    |      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)  jvm 1    |      at com.yammer.metrics.jetty.InstrumentedHandler.handle(InstrumentedHandler.java:200)  jvm 1    |      at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)  jvm 1    |      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)  jvm 1    |      at org.eclipse.jetty.server.Server.handle(Server.java:370)  jvm 1    |      at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)  jvm 1    |      at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)  jvm 1    |      at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)  jvm 1    |      at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)  jvm 1    |      at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)  jvm 1    |      at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)  jvm 1    |      at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)  jvm 1    |      at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)  jvm 1    |      at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)  jvm 1    |      at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)  jvm 1    |      at java.lang.Thread.run(Thread.java:748)  jvm 1    | Caused by: com.fasterxml.jackson.core.JsonParseException: Numeric value (1457685770155) out of range of int  jvm 1    |  at [Source: (org.apache.http.client.entity.LazyDecompressingInputStream); line: 1, column: 126354]  jvm 1    |      at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1798)  jvm 1    |      at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:663)  jvm 1    |      at com.fasterxml.jackson.core.base.ParserBase.convertNumberToInt(ParserBase.java:867)  jvm 1    |      at com.fasterxml.jackson.core.base.ParserBase._parseIntValue(ParserBase.java:799)  jvm 1    |      at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.getValueAsInt(UTF8StreamJsonParser.java:348)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parseValue(MetadataParser.java:246)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parseVersion(MetadataParser.java:313)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parseVersions(MetadataParser.java:290)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parsePackageRoot(MetadataParser.java:185)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.MetadataParser.parsePackageRoot(MetadataParser.java:126)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.proxy.HttpProxyMetadataTransport.fetchPackageRoot(HttpProxyMetadataTransport.java:218)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl.mayUpdatePackageRoot(ProxyMetadataServiceImpl.java:247)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl.doGeneratePackageRoot(ProxyMetadataServiceImpl.java:207)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.generatePackageRoot(GeneratorSupport.java:113)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.producePackageRoot(GeneratorSupport.java:82)  jvm 1    |      at com.bolyuba.nexus.plugin.npm.proxy.DefaultNpmProxyRepository.doRetrieveLocalItem(DefaultNpmProxyRepository.java:198)  jvm 1    |      ... 80 common frames omitted {code}",0.5 +"NEXUS-17218","05/24/2018 23:30:18","Soft deleted blob in health check prevents viewing of component information","After upgrading from 3.10.0 to 3.12.0 a soft deleted blob prevented viewing of component information in an IQ integrated Nexus Repo instance.  The UI shows an NPE: {quote}ERROR: (ID 4ceb7d0e-0bd4-49a1-9d71-1b72515fc38a) java.lang.NullPointerException {quote} The nexus.log shows:   {code:java} 2018-05-24 15:42:56,360-0400 WARN [qtp23186807-52] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$health-check/maven-central/index.html (/srv/nexus/sonatype-work/nexus3/blobs/default/content/directpath/health-check/maven-central/index.html.properties), reason: extracting new repository-health-check bundle at 2018-05-08T13:34:32.154-04:00 2018-05-24 15:42:56,361-0400 WARN [qtp23186807-52] admin org.sonatype.nexus.siesta.internal.UnexpectedExceptionMapper - (ID 85e225a8-636c-4384-9bfd-303787d0cb4d) Unexpected exception: java.lang.NullPointerException java.lang.NullPointerException: null at com.sonatype.nexus.plugins.healthcheck.service.impl.WebServerServiceImpl.getContentItem(WebServerServiceImpl.java:141) at com.sonatype.nexus.plugins.healthcheck.pro.internal.HealthCheckResourceService.getResource(HealthCheckResourceService.java:76) at com.sonatype.nexus.plugins.healthcheck.pro.rest.HealthCheckFileDetailResource.getContent(HealthCheckFileDetailResource.java:163) at com.sonatype.nexus.plugins.healthcheck.pro.rest.HealthCheckFileDetailResource.doGet(HealthCheckFileDetailResource.java:151) at com.sonatype.nexus.plugins.healthcheck.pro.rest.HealthCheckFileDetailResource.getComponentDetails(HealthCheckFileDetailResource.java:132) at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) at sun.reflect.GeneratedMethodAccessor447.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) {code}  ",1 +"NEXUS-17222","05/25/2018 14:20:57","rebuild maven metadata task may fail against permissive layout coordinates missing a base version","The following repository was defined in Nexus 3.6.0: {noformat} { ""@type"": ""d"", ""@rid"": ""#42:10"", ""@version"": 4, ""@class"": ""repository"", ""recipe_name"": ""maven2-hosted"", ""repository_name"": ""maven-unknown-snapshot"", ""online"": true, ""attributes"": { ""maven"": { ""versionPolicy"": ""SNAPSHOT"", ""layoutPolicy"": ""PERMISSIVE"" }, ""storage"": { ""strictContentTypeValidation"": false, ""writePolicy"": ""ALLOW"", ""blobStoreName"": ""default"" } } }, {noformat} When the rebuild Maven metadata task processes this repository, the following exception can be triggered and the task will fail: {noformat} 2018-05-25 08:40:44,447-0400 ERROR [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RebuildMaven2MetadataTask - Failed to run task 'Rebuilding Maven Metadata of maven-unknown-snapshot' on repository 'maven-unknown-snapshot' java.lang.IllegalStateException: null at com.google.common.base.Preconditions.checkState(Preconditions.java:429) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataBuilder.addArtifactVersion(MetadataBuilder.java:261) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker.lambda$2(MetadataRebuilder.java:333) at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:200) at org.sonatype.nexus.transaction.Operations.call(Operations.java:146) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker.rebuildMetadataInner(MetadataRebuilder.java:314) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker.rebuildMetadata(MetadataRebuilder.java:282) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder.rebuild(MetadataRebuilder.java:101) at org.sonatype.nexus.repository.maven.internal.hosted.MavenHostedFacetImpl.rebuildMetadata(MavenHostedFacetImpl.java:109) at org.sonatype.nexus.repository.maven.tasks.RebuildMaven2MetadataTask.execute(RebuildMaven2MetadataTask.java:58) at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:55) at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:94) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:108) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) {noformat} There are no seemingly no obvious log messages that can be enabled to identify the problem coordinates. h4. Expected. First priority is that the task should not fail. The repo policy was permissive and possibly could have been mixed or releases at some point. We allowed files to be stored in the repository that cause the task to fail. The task should proceed to fix the metadata as best as it can. Second priority is to improve logging. The [next log line|https://github.com/sonatype/nexus-internal/blob/de1c5692c0ce54b20ea5c8eeab9c6b7a4a459320/plugins/nexus-repository-maven/src/main/java/org/sonatype/nexus/repository/maven/internal/hosted/metadata/MetadataBuilder.java#L263] below [where the exception is thrown|https://github.com/sonatype/nexus-internal/blob/de1c5692c0ce54b20ea5c8eeab9c6b7a4a459320/plugins/nexus-repository-maven/src/main/java/org/sonatype/nexus/repository/maven/internal/hosted/metadata/MetadataBuilder.java#L261] is exactly what we could use to find the offending path and possibly delete the data from the repository to work around the problem. {code:java} checkNotNull(mavenPath); if (mavenPath.isSubordinate() || mavenPath.getCoordinates() == null) { return; } checkState(Objects.equals(groupId, mavenPath.getCoordinates().getGroupId())); checkState(Objects.equals(artifactId, mavenPath.getCoordinates().getArtifactId())); checkState(Objects.equals(baseVersion, mavenPath.getCoordinates().getBaseVersion())); // EXCEPTION HERE log.debug(""Discovered {}:{}:{}:{}:{}"", mavenPath.getCoordinates().getGroupId(), mavenPath.getCoordinates().getArtifactId(), mavenPath.getCoordinates().getVersion(), mavenPath.getCoordinates().getClassifier(), mavenPath.getCoordinates().getExtension()); {code} Putting logging statements printing method arguments after method arguments are validated is an anti-pattern that should be avoided.",2 +"NEXUS-17225","05/27/2018 00:59:40","Nexus Repository 3.12.0 render error -- removeAll","After installation and login I receive the following error randomly when browsing. Remove IP address. ---------------- Unable to get property 'removeAll' of undefined or null reference (http://X.X.X.X:8081/static/rapture/nexus-rapture-prod.js?_v=3.12.0-01:1) ",5 +"NEXUS-17231","05/29/2018 05:22:49","user role mappings do not match user ids case insensitively","[User ids are intentionally matched case insensitively|https://issues.sonatype.org/browse/NEXUS-4115]. This issue demonstrates a case where they are not. Setup Nexus to connect to an LDAP realm which contains a user record which has a userid of lowercase *testuser1*. Verify that you can authenticate as that user id. Create a new role in nexus called *custom_role*. Create a script to map roles to users like this and put in an Execute Script task: {noformat} import org.sonatype.nexus.security.role.RoleIdentifier import org.sonatype.nexus.security.user.User def userid = `TESTUSER1` try { User user = security.securitySystem.getUser(userid, 'LDAP') if (user != null) { RoleIdentifier newRole = new RoleIdentifier('default', 'custom_role'); user.addRole(newRole) security.securitySystem.setUsersRoles(userid, 'LDAP', user.getRoles()) log.info(""Role of $newRole role has been added to $userId"") } else { log.warn(""$userId not found."") } } catch (Exception e) { log.error(e.toString()) } {noformat} Execute the script. The script creates a record in the Nexus security database similar to this: {noformat} { ""@type"": ""d"", ""@rid"": ""#38:7"", ""@version"": 1, ""@class"": ""user_role_mapping"", ""userId"": ""TESTUSER1"", ""source"": ""LDAP"", ""roles"": [ ""custom_role"" ], ""@fieldTypes"": ""roles=e"" }, {noformat} One can authenticate the userid as testuser1 or TESTUSER1. However when the user record is found in the Users list in nexus, there will be no roles shown in the Active role list and after signin, the user will not have the permissions granted by the custom_role either. Conversely if the user mapping is created using the Nexus UI, the userid is stored in Nexus with the lettercase matching that as stored in the LDAP server. In that case, when the custom_role is mapped to the user, there is no problem reading back its active roles. h4. Expected Since userids are to be authenticated case insensitively, a users roles should also be looked up by userid from the Nexus database case insensitively. Since it is also possible that NXRM has allowed multiple user role mappings to the same userid ( but with different lettercase ), there should be a way for an admin to reconcile these duplicate userids either by way of running a script or from an upgrade step. ",2 +"NEXUS-17233","05/29/2018 10:08:16","Restarting while backup is in progress leaves NXRM as read-only","If you restart a node while it's taking a backup then the node will preserve the read-only state, despite the backup task having been aborted. The following log entry during restart is where it restores the frozen state: {code} 2018-05-28 02:17:08,146+0100 INFO [FelixStartLevel] 127.0.0.1 *SYSTEM org.sonatype.nexus.orient.internal.freeze.DatabaseFreezeServiceImpl - Restoring database frozen state on startup {code} The first thing to determine is whether this is acceptable behaviour - while it leaves NXRM in a degraded state (only returning previously cached content, disallowing write operations) it could be considered the safe option given NXRM was shutdown during backup. It is also not difficult to return NXRM to a writable state, using the UI or REST. If we decide this is ""working-as-designed"" then this ticket will verify that manual intervention can quickly return NXRM to normal service. We should also verify that the behaviour is the same whether NXRM is clustered or non-clustered. However, if it's determined that this is not acceptable behaviour then this ticket will look at how to avoid leaving the freeze state if the backup task was aborted during shutdown. This may involve making sure we update the freeze state regardless of how the backup task ends. Note if the process is forcibly killed (eg. power-cut) then we won't get any chance to update it, but in that case it might be best to start as read-only as there may be data integrity issues. Another option would be to try and detect when backup was aborted and ignore restoring the freeze state - but that sounds more fragile. Other suggestions are welcome :) While recreating these scenarios (restarting while non-clustered backup is in progress and restarting while clustered backup is in progress) also consider whether extra logging would be useful. Summary: * Confirm restarting while non-clustered backup is in progress leaves NXRM as read-only * Confirm restarting while clustered backup is in progress leaves NXRM as read-only * Get input from team / PO about desired behaviour * Implement any change in behaviour (if necessary) * Consider additional logging / recording reason for freeze",5 +"NEXUS-17257","05/31/2018 20:06:48","Spurious warnings logged when pushing docker images","Run the following commands: {code} docker pull hello-world docker tag hello-world localhost:8444/hello-world docker push localhost:8444/hellowworld {code} The upload succeeds, but 21 warnings are logged. They don't appear to hurt anything, the push succeeds. But it is causing a lot of log noise. {noformat}  2018-05-31 14:01:46,333-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/3dba1fae-ee15-4e3a-ad36-bed29afe4647/1527793200849 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/3dba1fae-ee15-4e3a-ad36-bed29afe4647/1527793200849.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,333-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/3dba1fae-ee15-4e3a-ad36-bed29afe4647/0 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/3dba1fae-ee15-4e3a-ad36-bed29afe4647/0.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,333-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/3dba1fae-ee15-4e3a-ad36-bed29afe4647/1527793200875 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/3dba1fae-ee15-4e3a-ad36-bed29afe4647/1527793200875.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,334-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/91300319-c51d-4e64-a6e6-1d21a3817a6b/1527793200992 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/91300319-c51d-4e64-a6e6-1d21a3817a6b/1527793200992.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,334-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/91300319-c51d-4e64-a6e6-1d21a3817a6b/0 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/91300319-c51d-4e64-a6e6-1d21a3817a6b/0.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,334-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/91300319-c51d-4e64-a6e6-1d21a3817a6b/1527793201009 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/91300319-c51d-4e64-a6e6-1d21a3817a6b/1527793201009.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,334-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/d5035516-7616-4f3d-8f6d-37384e031117/1527793214799 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/d5035516-7616-4f3d-8f6d-37384e031117/1527793214799.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,335-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/d5035516-7616-4f3d-8f6d-37384e031117/0 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/d5035516-7616-4f3d-8f6d-37384e031117/0.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,335-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/d5035516-7616-4f3d-8f6d-37384e031117/1527793214815 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/d5035516-7616-4f3d-8f6d-37384e031117/1527793214815.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,470-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/3dba1fae-ee15-4e3a-ad36-bed29afe4647/1527793200849 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/3dba1fae-ee15-4e3a-ad36-bed29afe4647/1527793200849.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,470-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/3dba1fae-ee15-4e3a-ad36-bed29afe4647/0 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/3dba1fae-ee15-4e3a-ad36-bed29afe4647/0.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,470-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/3dba1fae-ee15-4e3a-ad36-bed29afe4647/1527793200875 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/3dba1fae-ee15-4e3a-ad36-bed29afe4647/1527793200875.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,471-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/91300319-c51d-4e64-a6e6-1d21a3817a6b/1527793200992 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/91300319-c51d-4e64-a6e6-1d21a3817a6b/1527793200992.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,471-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/91300319-c51d-4e64-a6e6-1d21a3817a6b/0 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/91300319-c51d-4e64-a6e6-1d21a3817a6b/0.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,471-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/91300319-c51d-4e64-a6e6-1d21a3817a6b/1527793201009 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/91300319-c51d-4e64-a6e6-1d21a3817a6b/1527793201009.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,471-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/8ca5c627-78e9-4e6d-b4c6-aae765d6cac1/1527793306412 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/8ca5c627-78e9-4e6d-b4c6-aae765d6cac1/1527793306412.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,471-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/8ca5c627-78e9-4e6d-b4c6-aae765d6cac1/0 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/8ca5c627-78e9-4e6d-b4c6-aae765d6cac1/0.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,472-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/8ca5c627-78e9-4e6d-b4c6-aae765d6cac1/1527793306397 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/8ca5c627-78e9-4e6d-b4c6-aae765d6cac1/1527793306397.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,472-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/d5035516-7616-4f3d-8f6d-37384e031117/1527793214799 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/d5035516-7616-4f3d-8f6d-37384e031117/1527793214799.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,472-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/d5035516-7616-4f3d-8f6d-37384e031117/0 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/d5035516-7616-4f3d-8f6d-37384e031117/0.properties), reason: Docker upload cleaned up. 2018-05-31 14:01:46,472-0500 WARN [qtp627296646-177] admin org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/d5035516-7616-4f3d-8f6d-37384e031117/1527793214815 (/Users/rseddon/temp/foo/sonatype-work/nexus3/blobs/default/content/directpath/nexus-repository-docker/d5035516-7616-4f3d-8f6d-37384e031117/1527793214815.properties), reason: Docker upload cleaned up. {noformat}",1 +"NEXUS-17262","06/01/2018 17:29:16","Removing repository does not remove tasks specific to the removed repository","Removing repository does not remove tasks specific to the removed repository. This cause the task to fail with a NullPointerException. {noformat} 2018-06-01 16:38:21,064+0100 WARN [quartz-5-thread-8] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskJob - Task 63617932-5bd9-4d90-9c39-3bd04539cd07 : 'rebuild search rubygems-org' [repository.rebuild-index] execution failure java.lang.NullPointerException: null at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:882) at org.sonatype.nexus.repository.RepositoryTaskSupport.findRepositories(RepositoryTaskSupport.java:96) at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:67) {noformat} *Steps to Reproduce* * Create a rebuild index task on existing repo. * Remove that repository * Run the rebuild index task *Expected Behaviour* Either remove the task linked to the removed repository or provide an error when task is run that explains the repository has been deleted (instead of the NullPointerException) .  ",1 +"NEXUS-17277","06/04/2018 22:57:59","LDAP ""Verify login"" validates for credentials before closing","I noticed that on LDAP config, if you click ""Verify login"" and then immediately cancel, it prompts for username validation before closing the window resulting in the need for an additional click to cancel.",0.5 +"NEXUS-17285","06/05/2018 19:42:35","Yum component properties update does not reflect in UI summary pane","As part of ""update"" test (so redeploy was on/allowed), I pushed the below item: {code:java} curl --user admin:admin123 ""http://localhost:8081/repository/yum-hosted/Packages/fuse-sshfs-2.5-8.el7.x86_64.rpm"" --upload-file fuse-sshfs-2.5-1.el7.x86_64.rpm --request PUT -v {code} Then I realized I had the wrong package pushing so before metadata rebuild, I pushed again: {code:java} curl --user admin:admin123 ""http://localhost:8081/repository/yum-hosted/Packages/fuse-sshfs-2.5-8.el7.x86_64.rpm"" --upload-file ElectricFence-2.2.2-39.el7.i686.rpm --request PUT -v {code} On review of the component/asset properties via the UI summary pane, it shows the fuse-sshfs property not the electricfence property. The rpm downloaded is electricfence however and the xml shows the right one as well (electricfence). Also not really surprisingly considering that, the blob updated attribute shows a different date than created. If you do the reverse of this (eletricfence then fuse-sshfs) it does the reverse as well so it's not just something with electricfence. I then tried waiting til after the metadata rebuild and seeing if that helped. It didn't. It seems only the first package being pushed not the update is updating the properties in the UI even though the package is updated. I tried clearing browser cache and restarting my browser in between as well, no dice.",0.5 +"NEXUS-17296","06/06/2018 19:17:10","legacy URLs do not work with nexus.view.exhaustForAgents property","In 3.10.0, set these in etc/nexus.properties: {noformat} org.sonatype.nexus.repository.httpbridge.internal.HttpBridgeModule.legacy=true nexus.view.exhaustForAgents=Apache-Maven.*|Apache Ivy.*|maven-artifact.* {noformat} This request will be exhausted by the ExhaustRequestFilter filter: {{curl -v -X PUT [http://localhost:8081/repository/maven-releases/foo] -H ""user-agent: maven-artifact"" -o /dev/null}} This request will not and fail as per scenarios described in https://issues.sonatype.org/browse/NEXUS-10234 : {{curl -v -X PUT [http://localhost:8081/content/repositories/maven-releases/foo] -H ""user-agent: maven-artifact"" -o /dev/null}} Debugging shows that the filter still has the default agent pattern of *Apache-Maven.** for legacy URLs instead of the one set by the property. h4. Expected Legacy URLs should be perform identically to the regular URLs in the described case.    ",1 +"NEXUS-17441","06/20/2018 16:09:03","IllegalStateException: ""Clustering is not enabled"" when refreshing nodes view in PRO when not clustered","Unpack a fresh PRO instance and start it without clustering. Log in as admin and navigate to the nodes view: http://127.0.0.1:8081/#admin/system/nodes Click the refresh symbol in the top-right of the UI and you'll get the following warning in the UI: {code} Unable to provision, see the following errors: 1) Error in custom provider, java.lang.IllegalStateException: Clustering is not enabled while locating com.sonatype.nexus.hazelcast.internal.HazelcastInstanceProvider at / (via modules: org.sonatype.nexus.extender.modules.NexusBundleModule -> org.eclipse.sisu.space.SpaceModule) while locating com.hazelcast.core.HazelcastInstance annotated with @com.google.inject.name.Named(value=nexus) at org.eclipse.sisu.wire.LocatorWiring while locating com.hazelcast.core.HazelcastInstance 1 error {code} The issue appears to be that refreshing the nodes view using the ""refresh"" icon triggers reloading of the {{NX.coreui.store.Node}} store which then calls {{NX.direct.proui_Node.read}}. Note this store is not loaded when you navigate to the nodes view, only when you subsequently refresh the view using the ""refresh"" icon (and the warning only appears when not clustered). One fix would be to avoid reloading the store when non-clustered, even when the ""refresh"" icon is clicked. The other option would be to make the PRO {{NodeComponent}} more robust and only use the {{hazelcastProvider}} when clustered - the other methods in that class have similar checks, it's only the ""read"" method that attempts to use the {{hazelcastProvider}} without checking if clustering is enabled or not. (We should pass back an empty result if clustering is not enabled.)",1 +"NEXUS-17450","06/20/2018 21:22:55","Uncaught TypeError: Cannot read property 'length' of null trying to save a role which cannot be found","Configure LDAP server and LDAP realm. Try to map an LDAP role that does not exist. Click Save to save the role. Saving the role will fail because Nexus tries to find the role in LDAP and can't. The UI should show a message that the role could could not be found. The javascript console contains this error: nexus-coreui-plugin-prod.js?_v=3.12.1-01:1 Uncaught TypeError: Cannot read property 'length' of null at j.load (nexus-coreui-plugin-prod.js?_v=3.12.1-01:1) at A.fire (baseapp-prod.js?_v=3.12.1-01:1) at j.continueFireEvent (baseapp-prod.js?_v=3.12.1-01:1) at j.fireEventArgs (baseapp-prod.js?_v=3.12.1-01:1) at j.a.fireEventArgs (baseapp-prod.js?_v=3.12.1-01:1) at j.fireEvent (baseapp-prod.js?_v=3.12.1-01:1) at j.onProxyLoad (baseapp-prod.js?_v=3.12.1-01:1) at A.processResponse (baseapp-prod.js?_v=3.12.1-01:1) at A. (baseapp-prod.js?_v=3.12.1-01:1) at baseapp-prod.js?_v=3.12.1-01:1   !image-2018-06-20-17-23-16-072.png! h4. Expected - there should be no javascript errors in this case.",2 +"NEXUS-17455","06/21/2018 14:07:15","Last-Modified not returned in header for migrated RAW artifacts.","Nexus 3.x does not return a Last-Modified header for migrated artifacts (migrated from Nexus 2.x) {quote}$ curl --head localhost:8081/repository/jenkins-tools/jdk/jdk1.8.0_171.tar.gz  HTTP/1.1 200 OK  Date: Thu, 21 Jun 2018 11:22:30 GMT  Server: Nexus/3.12.0-01 (PRO)  X-Content-Type-Options: nosniff  Content-Security-Policy: sandbox allow-forms allow-modals allow-popups allow-presentation allow-scripts allow-top-navigation  Content-Type: application/x-gzip  Content-Length: 190882219 {quote} If you upload an artifact to that Nexus 3.x instance, then the Last-Modified is returned. {quote}$ curl --head localhost:8081/repository/jenkins-tools-test/jdk/jdk1.8.0_171.tar.gz  HTTP/1.1 200 OK  Date: Thu, 21 Jun 2018 11:22:24 GMT  Server: Nexus/3.12.0-01 (PRO)  X-Content-Type-Options: nosniff  Content-Security-Policy: sandbox allow-forms allow-modals allow-popups allow-presentation allow-scripts allow-top-navigation  Last-Modified: Thu, 21 Jun 2018 11:17:29 GMT  Content-Type: application/x-gzip  Content-Length: 190882219 {quote} Reproduced this with Raw repo. Works fine with Maven2",2 +"NEXUS-17460","06/21/2018 20:16:13","Nexus 2 to 3 upgrade fails with concurrency error in NuGet","The exception below was observed in the migration logs of someone who was upgrading from Nexus 2 to Nexus 3. This looks like a concurrency bug to me: {code:java} 2018-06-21 13:07:27,514-0400 ERROR [change-processing-12-thread-3] admin com.google.common.eventbus.EventBus.nexus - Could not dispatch event ComponentCreatedEvent{metadata=AttachedEntityMetadata{schema=component, document=component#31:839{tags:[0],bucket:#27:20,format:nuget,last_updated:Thu Jun 21 13:07:24 EDT 2018,attributes:[1],group:null,name:Gaig.Annuity.Service.Customer,version:1.40.0-d,ci_name:gaig.annuity.service.customer} v1}, remoteNodeId=null} to subscriber com.sonatype.nexus.repository.nuget.internal.NugetHostedGalleryFacet$$EnhancerByGuice$$b6d631ae@2d995307 method [public void com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.on(org.sonatype.nexus.repository.storage.ComponentCreatedEvent)] org.sonatype.nexus.repository.storage.RetryDeniedException: Reached max retries: 8/8 at org.sonatype.nexus.repository.storage.StorageTxImpl.allowRetry(StorageTxImpl.java:224) at sun.reflect.GeneratedMethodAccessor567.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:69) at com.sun.proxy.$Proxy212.allowRetry(Unknown Source) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:81) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.maintainAggregateInfo(NugetLocalGalleryFacetSupport.java:579) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.on(NugetLocalGalleryFacetSupport.java:565) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at sun.reflect.GeneratedMethodAccessor505.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:87) at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:72) at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:398) at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:67) at com.google.common.eventbus.Dispatcher$ImmediateDispatcher.dispatch(Dispatcher.java:186) at com.google.common.eventbus.EventBus.post(EventBus.java:212) at org.sonatype.nexus.internal.event.EventManagerImpl.post(EventManagerImpl.java:127) at org.sonatype.nexus.orient.entity.EntityHook.postEvents(EntityHook.java:272) at org.sonatype.nexus.orient.entity.EntityHook.flushEvents(EntityHook.java:248) at org.sonatype.nexus.orient.entity.EntityHook.onAfterTxCommit(EntityHook.java:169) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2949) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2870) at org.sonatype.nexus.repository.storage.StorageTxImpl.commit(StorageTxImpl.java:181) at sun.reflect.GeneratedMethodAccessor418.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:66) at com.sun.proxy.$Proxy212.commit(Unknown Source) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:67) at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:200) at org.sonatype.nexus.transaction.Operations.call(Operations.java:146) at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.inStorageTx(RepositoryMigratorSupport.java:249) at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.recordMetadata(RepositoryMigratorSupport.java:193) at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.createOrUpdate(RepositoryMigratorSupport.java:166) at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.processChange(RepositoryMigratorSupport.java:146) at com.sonatype.nexus.migration.repository.RepositoryMigrator$processChange$1.call(Unknown Source) at com.sonatype.nexus.migration.repository.ProcessChangesStep$_submit_closure2.doCall(ProcessChangesStep.groovy:333) at com.sonatype.nexus.migration.repository.ProcessChangesStep$_submit_closure2.doCall(ProcessChangesStep.groovy) at sun.reflect.GeneratedMethodAccessor522.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022) at groovy.lang.Closure.call(Closure.java:414) at groovy.lang.Closure.call(Closure.java:408) at groovy.lang.Closure.run(Closure.java:495) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: com.orientechnologies.orient.core.exception.OConcurrentModificationException: Cannot UPDATE the record #33:2473 because the version is not the latest. Probably you are updating an old record or it has been modified by another user (db=v3 your=v2) DB name=""component"" at com.orientechnologies.orient.core.conflict.OVersionRecordConflictStrategy.checkVersions(OVersionRecordConflictStrategy.java:56) at com.orientechnologies.orient.core.conflict.OVersionRecordConflictStrategy.onUpdate(OVersionRecordConflictStrategy.java:43) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.checkAndIncrementVersion(OAbstractPaginatedStorage.java:4544) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doUpdateRecord(OAbstractPaginatedStorage.java:4021) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commitEntry(OAbstractPaginatedStorage.java:4606) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1857) at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:541) at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:99) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2908) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2870) at org.sonatype.nexus.repository.storage.StorageTxImpl.commit(StorageTxImpl.java:181) at sun.reflect.GeneratedMethodAccessor418.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:66) at com.sun.proxy.$Proxy212.commit(Unknown Source) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:67) ... 56 common frames omitted {code}",3 +"NEXUS-17470","06/26/2018 20:34:04","RemoteBlockedIOException WARN logged for every content request to manual or auto blocked repository should be TRACE","# In Nexus 3.12.1, create a proxy repository. # Set ""block outbound connections on the repository"" to true. # Fire a request to the repository. You will see a warning like this in the log: {quote}2018-06-26 14:30:18,863-0500 WARN [qtp335821775-220] admin org.sonatype.nexus.repository.maven.internal.proxy.MavenProxyFacet - Exception org.sonatype.nexus.repository.httpclient.RemoteBlockedIOException: Remote Manually Blocked checking remote for update, proxy repo maven-central failed to fetch foo/bar/maven-metadata.xml, content not in cache. {quote} This will be repeated for every single request received by the proxy, filling the logs with useless messages. *Expected:* -This should be logged at DEBUG, if at all.- Upon closer review moving the level to TRACE seems better since the blocked status of a repository can be easily determined from other INFO level log messages and the repository status is also visible when viewing the repositories list in the UI.",1 +"NEXUS-17477","06/27/2018 15:42:27","Unable to install hosted gem which has multiple version requirements","h1. Bug description If a ruby gem is hosted on Sonatype Nexus 3 Rubygems repository and that ruby gem contains multiple version requirements for a dependency in its gemspec and the project which uses the ruby gem does not have a Gemfile.lock Then bundler will fail to install the project gems with the following message: {code:java} jp440p:testproject $ bundle install --path .bundle Fetching gem metadata from http://localhost:8081/repository/gems-test/... Fetching gem metadata from https://rubygems.org/.............. Fetching gem metadata from http://localhost:8081/repository/gems-test/.. Resolving dependencies... Fetching concurrent-ruby 1.0.5 Fetching minitest 5.11.3 Fetching thread_safe 0.3.6 Installing minitest 5.11.3 Installing concurrent-ruby 1.0.5 Installing thread_safe 0.3.6 Using bundler 1.16.2 Fetching tzinfo 1.2.5 Fetching i18n 1.0.1 Installing tzinfo 1.2.5 Installing i18n 1.0.1 Fetching activesupport 5.2.0 Installing activesupport 5.2.0 Fetching test-gem-requirement-bug 0.1.0 Downloading test-gem-requirement-bug-0.1.0 revealed dependencies not in the API or the lockfile (activesupport (< 5.2, >= 5.0)). Either installing with `--full-index` or running `bundle update test-gem-requirement-bug` should fix the problem. In Gemfile:   test-gem-requirement-bug {code} h1.   We noticed this bug on our production ruby gem repositories (hosted on Sonatype Nexus3 v3.6.2) then I reproduced with the latest version of SNRM : v3.12.1   This issue has been reported on bundler github (see [https://github.com/bundler/bundler/issues/6048] ). The original bug report mentions Sonatype Nexus but was closed without having been properly investigated.   h1. Reproducing the bug   h2. Nexus Setup   I installed an instance of Sonatype Nexus3 using docker like this: {code:java} docker run --name nexus3 -d -v /data/nexus-data:/nexus-data -p 8081:8081 -e INSTALL4J_ADD_VM_PARAMS=""-Xms1536M -Xmx1536M -XX:MaxDirectMemorySize=2g"" sonatype/nexus3:3.12.1{code} Once the instance has booted, I open [http://localhost:8081|http://localhost:8081/] with browser, log to nexus using default credentials (admin/admin123), then I create a hosted rubygems repository which I name ""gems-test"". The URL of the gems-test repository on the local nexus is [http://localhost:8081/repository/gems-test/]   h2. Test ruby gem   I generated a sample ruby gem using the `bundle gem test-gem-requirement-bug` command on my workstation.   I edited the generate gem to supply the following gemspec: {code:java} lib = File.expand_path(""../lib"", __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require ""test/gem/requirement/bug/version"" Gem::Specification.new do |spec|   spec.name          = ""test-gem-requirement-bug""   spec.version       = Test::Gem::Requirement::Bug::VERSION   spec.authors       = [""Julien Pervillé""]   spec.email         = [""julien.perville@perfect-memory.com""]   spec.summary       = %q{Attempts to reproduce a bug with gem requirement parsing}   spec.homepage      = 'https://rubygems.org'   # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'   # to allow pushing to a single host or delete this section to allow pushing to any host.   if spec.respond_to?(:metadata)     spec.metadata[""allowed_push_host""] = ""https://rubygems.org""   else     raise ""RubyGems 2.0 or newer is required to protect against "" \       ""public gem pushes.""   end   # Specify which files should be added to the gem when it is released.   # The `git ls-files -z` loads the files in the RubyGem that have been added into git.   spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do     `git ls-files -z`.split(""\x0"").reject { |f| f.match(%r{^(test|spec|features)/}) }   end   spec.bindir        = ""exe""   spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }   spec.require_paths = [""lib""]   spec.add_runtime_dependency ""activesupport"", "">= 5.0"", ""< 5.2"" end {code}   Note the multiple version requirement on the activesupport dependency above.   Then I `gem build *gemspec` to produce the gem.   Then I upload the produced gem to Nexus using the upload interface at http://localhost:8081/#browse/upload:gems-test   If everything was successful the ruby gem should be listed in the ""browse"" view of the gems-test repository (URL [http://localhost:8081/#browse/browse:gems-test] ) h2. Test ruby project   I create a sample ruby project on my workstation, which uses the ""test-gem-requirement-bug"" gem.   {code:java} mkdir testproject cd testproject cat < Gemfile source 'https://rubygems.org' source 'http://localhost:8081/repository/gems-test/' do   gem 'test-gem-requirement-bug', '~> 0.1.0' end EOF{code}   Then, still in the testproject directory, I run: {code:java} bundle install --path .bundle{code}   To install the project dependencies.   The ""bundle install"" command fails with the trace at the top of project.       Note that running ""bundle install --path .bundle --full-index"" succeeds to install the gem and its dependencies (even if it is inefficient).      ",3 +"NEXUS-17492","06/28/2018 16:05:47","Document Docker use of content selectors","*Acceptance* Amend the documentation so that users know how to subdivide Docker repositories based on tag names. Make sure they know it's leaky (since you can request content by hash, in theory.)",2 +"NEXUS-17498","06/29/2018 16:39:36","option to generate URL-safe user tokens for URL based authentication","Certain primitive repository formats only support URL based authentication of the form: [http://user:password@localhost:8081|http://user:password@localhost:8081/artifactory/api/pypi/pypi-virtual/simple] For example PyPI is known to have this problem: [https://github.com/pypa/pip/issues/4315] YUM auth has a similar problem. Admins may want to enforce authenticated access to repo manager using our User Tokens feature. Currently User Tokens may be generated with non-url safe characters which prevent using the above URL based authentication mechanism. h4. Expected To support primitive url based auth, there should be an optional option to generate user tokens which only contain url safe characters. h4. Possible Workaround Some Formats Take the user token name and value generated by Nexus and URL Encode them manually first, before adding them to the URL being used in your tool. For example, Nexus generates these tokens: Name Code: {{/pKsRLhn}} Pass Code: {{/HAx3rBkdsQAmsUhc2RWt73CY8zrMJPS9e1HnYeseYbh}} As expected, this URL will not parse correctly: {noformat} curl -v ""http:///pKsRLhn:/HAx3rBkdsQAmsUhc2RWt73CY8zrMJPS9e1HnYeseYbh@localhost:8081/repository/maven-central/abbot/abbot/0.13.0/abbot-0.13.0.pom"" -o /dev/null * Unwillingly accepted illegal URL using 3 slashes! {noformat} [URL Encode|https://www.urlencoder.org/] each value: Name Code: {{%2FpKsRLhn}} Pass Code: {{%2FHAx3rBkdsQAmsUhc2RWt73CY8zrMJPS9e1HnYeseYbh}} All of these requests authenticate properly: {noformat} curl -v -u ""/pKsRLhn:/HAx3rBkdsQAmsUhc2RWt73CY8zrMJPS9e1HnYeseYbh"" http://localhost:8081/repository/maven-central/abbot/abbot/0.13.0/abbot-0.13.0.pom -o /dev/null {noformat} {noformat} curl -v ""http://%2FpKsRLhn:%2FHAx3rBkdsQAmsUhc2RWt73CY8zrMJPS9e1HnYeseYbh@localhost:8081/repository/maven-central/abbot/abbot/0.13.0/abbot-0.13.0.pom"" -o /dev/null {noformat} While no authentication for the same URL will fail: {noformat} curl -v ""http://localhost:8081/repository/maven-central/abbot/abbot/0.13.0/abbot-0.13.0.pom"" -o /dev/null * TCP_NODELAY set * Connection failed * connect to ::1 port 8081 failed: Connection refused * Trying 127.0.0.1... * TCP_NODELAY set * Connected to localhost (127.0.0.1) port 8081 (#0) > GET /repository/maven-central/abbot/abbot/0.13.0/abbot-0.13.0.pom HTTP/1.1 > Host: localhost:8081 > User-Agent: curl/7.57.0 > Accept: */* > < HTTP/1.1 401 Unauthorized < Date: Fri, 29 Jun 2018 16:47:22 GMT < Server: Nexus/3.13.0-SNAPSHOT (PRO) < X-Content-Type-Options: nosniff < Set-Cookie: NX-ANTI-CSRF-TOKEN=8d0c3bff-fe84-408e-a60d-c1c49eb07a17; Path=/ < Content-Security-Policy: sandbox allow-forms allow-modals allow-popups allow-presentation allow-scripts allow-top-navigation < WWW-Authenticate: BASIC realm=""Sonatype Nexus Repository Manager"" < Content-Length: 0 {noformat}   h4. Windows Pip This workaround does not solve this issue for python/pip when running on Windows, see my comment below for details.",1 +"NEXUS-17501","06/29/2018 18:10:46","Caching of NuGet metadata causes thread serialization, query slowdowns under load","Threads updating NuGet metadata are getting be serialized, as can be seen in the examples below. This is causing a slowdown in processing of NuGet queries. This was observed in Nexus Repo 3.8.0-02. Full thread dump is attached. In that thread dump there are 5 threads waiting on the one that is running. {code} qtp109915384-3713 sql.select from component where (ci_name = :p0 AND version = :p1) and (bucket=#24:6) id=3713 state=RUNNABLE at java.lang.ThreadLocal$ThreadLocalMap.cleanSomeSlots(ThreadLocal.java:661) at java.lang.ThreadLocal$ThreadLocalMap.set(ThreadLocal.java:483) at java.lang.ThreadLocal$ThreadLocalMap.access$100(ThreadLocal.java:298) at java.lang.ThreadLocal.set(ThreadLocal.java:203) at java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryAcquireShared(ReentrantReadWriteLock.java:483) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1282) at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:727) at com.orientechnologies.common.concur.resource.OSharedResourceAdaptive.acquireSharedLock(OSharedResourceAdaptive.java:168) at com.orientechnologies.orient.core.storage.impl.local.paginated.OClusterPositionMap.get(OClusterPositionMap.java:385) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:681) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:668) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doReadRecord(OAbstractPaginatedStorage.java:4203) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:3819) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:1409) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx$SimpleRecordReader.readRecord(ODatabaseDocumentTx.java:3411) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeReadRecord(ODatabaseDocumentTx.java:2022) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:660) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:103) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearchRecord(OCommandExecutorSQLSelect.java:585) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.serialIterator(OCommandExecutorSQLSelect.java:1638) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchFromTarget(OCommandExecutorSQLSelect.java:1585) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchValuesFromIndexCursor(OCommandExecutorSQLSelect.java:2466) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchForIndexes(OCommandExecutorSQLSelect.java:2280) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchInClasses(OCommandExecutorSQLSelect.java:1017) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.assignTarget(OCommandExecutorSQLResultsetAbstract.java:211) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.assignTarget(OCommandExecutorSQLSelect.java:527) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:509) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:485) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:70) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:3417) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:3335) at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69) at org.sonatype.nexus.repository.storage.MetadataNodeEntityAdapter.browseByQuery(MetadataNodeEntityAdapter.java:178) at org.sonatype.nexus.repository.storage.StorageTxImpl.findComponents(StorageTxImpl.java:431) at org.sonatype.nexus.repository.storage.StorageTxImpl.findComponents(StorageTxImpl.java:437) at sun.reflect.GeneratedMethodAccessor398.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63) at com.sun.proxy.$Proxy190.findComponents(Unknown Source) at com.sonatype.nexus.repository.nuget.NugetComponentHelper.findComponent(NugetComponentHelper.java:71) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.findComponent(NugetLocalGalleryFacetSupport.java:756) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.findOrCreateComponent(NugetLocalGalleryFacetSupport.java:746) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.createOrUpdateComponent(NugetLocalGalleryFacetSupport.java:681) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.putMetadata(NugetLocalGalleryFacetSupport.java:304) at com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyGalleryFacet$$EnhancerByGuice$$6170df17.CGLIB$putMetadata$23() at com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyGalleryFacet$$EnhancerByGuice$$6170df17$$FastClassByGuice$$56084185.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyGalleryFacet$$EnhancerByGuice$$6170df17.putMetadata() at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport$FeedLoader$1.consume(NugetRemoteGalleryFacetSupport.java:394) at com.sonatype.nexus.repository.nuget.odata.FeedSplicer.ended(FeedSplicer.java:109) at com.sonatype.nexus.repository.nuget.odata.XmlSplicer.consume(XmlSplicer.java:81) at com.sonatype.nexus.repository.nuget.odata.FeedSplicer.consumePage(FeedSplicer.java:58) at com.sonatype.nexus.repository.nuget.internal.NugetFeedFetcher.parseFeed(NugetFeedFetcher.java:103) at com.sonatype.nexus.repository.nuget.internal.NugetFeedFetcher.cachePackageFeed(NugetFeedFetcher.java:86) at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport$FeedLoader.call(NugetRemoteGalleryFacetSupport.java:390) at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport.passQueryToRemoteRepos(NugetRemoteGalleryFacetSupport.java:325) at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport.feed(NugetRemoteGalleryFacetSupport.java:204) at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.feed(NugetFeedHandler.java:69) at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.doHandle(NugetFeedHandler.java:49) {code} Example blocked thread: {code} qtp109915384-4057 sql.select from component where (ci_name = :p0 AND version = :p1) and (bucket=#24:6) id=4057 state=WAITING - waiting on <0x04a9cd87> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) - locked <0x04a9cd87> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199) at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:943) at com.orientechnologies.common.concur.lock.OPartitionedLockManager.acquireExclusiveLock(OPartitionedLockManager.java:213) at com.orientechnologies.common.concur.lock.OPartitionedLockManager.acquireExclusiveLocksInBatch(OPartitionedLockManager.java:266) at com.orientechnologies.orient.core.storage.cache.local.twoq.O2QCache.doLoad(O2QCache.java:343) at com.orientechnologies.orient.core.storage.cache.local.twoq.O2QCache.load(O2QCache.java:294) at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.loadPage(ODurableComponent.java:148) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecordBuffer(OPaginatedCluster.java:713) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:689) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:668) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doReadRecord(OAbstractPaginatedStorage.java:4203) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:3819) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:1409) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx$SimpleRecordReader.readRecord(ODatabaseDocumentTx.java:3411) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeReadRecord(ODatabaseDocumentTx.java:2022) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:660) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:103) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearchRecord(OCommandExecutorSQLSelect.java:585) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.serialIterator(OCommandExecutorSQLSelect.java:1638) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchFromTarget(OCommandExecutorSQLSelect.java:1585) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchValuesFromIndexCursor(OCommandExecutorSQLSelect.java:2466) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchForIndexes(OCommandExecutorSQLSelect.java:2280) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchInClasses(OCommandExecutorSQLSelect.java:1017) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.assignTarget(OCommandExecutorSQLResultsetAbstract.java:211) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.assignTarget(OCommandExecutorSQLSelect.java:527) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:509) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:485) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:70) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:3417) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:3335) at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69) at org.sonatype.nexus.repository.storage.MetadataNodeEntityAdapter.browseByQuery(MetadataNodeEntityAdapter.java:178) at org.sonatype.nexus.repository.storage.StorageTxImpl.findComponents(StorageTxImpl.java:431) at org.sonatype.nexus.repository.storage.StorageTxImpl.findComponents(StorageTxImpl.java:437) at sun.reflect.GeneratedMethodAccessor398.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63) at com.sun.proxy.$Proxy190.findComponents(Unknown Source) at com.sonatype.nexus.repository.nuget.NugetComponentHelper.findComponent(NugetComponentHelper.java:71) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.findComponent(NugetLocalGalleryFacetSupport.java:756) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.findOrCreateComponent(NugetLocalGalleryFacetSupport.java:746) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.createOrUpdateComponent(NugetLocalGalleryFacetSupport.java:681) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.putMetadata(NugetLocalGalleryFacetSupport.java:304) at com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyGalleryFacet$$EnhancerByGuice$$6170df17.CGLIB$putMetadata$23() at com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyGalleryFacet$$EnhancerByGuice$$6170df17$$FastClassByGuice$$56084185.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyGalleryFacet$$EnhancerByGuice$$6170df17.putMetadata() at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport$FeedLoader$1.consume(NugetRemoteGalleryFacetSupport.java:394) at com.sonatype.nexus.repository.nuget.odata.FeedSplicer.ended(FeedSplicer.java:109) at com.sonatype.nexus.repository.nuget.odata.XmlSplicer.consume(XmlSplicer.java:81) at com.sonatype.nexus.repository.nuget.odata.FeedSplicer.consumePage(FeedSplicer.java:58) at com.sonatype.nexus.repository.nuget.internal.NugetFeedFetcher.parseFeed(NugetFeedFetcher.java:103) at com.sonatype.nexus.repository.nuget.internal.NugetFeedFetcher.cachePackageFeed(NugetFeedFetcher.java:86) at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport$FeedLoader.call(NugetRemoteGalleryFacetSupport.java:390) at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport.passQueryToRemoteRepos(NugetRemoteGalleryFacetSupport.java:325) at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport.feed(NugetRemoteGalleryF {code} ",3 +"NEXUS-17502","06/29/2018 19:23:51","Content validation message does not log which repository the invalid content is coming from","When a proxy repository gets a file that fails content validation it logs a message like this: {quote}2018-06-29 00:00:23,232-0600 WARN [qtp194194304-13484] *UNKNOWN org.sonatype.nexus.repository.view.handlers.ExceptionHandler - Invalid content: GET /net/jcip/annotations/1.0/annotations-1.0.pom: org.sonatype.nexus.repository.InvalidContentException: Detected content type [text/html], but expected [application/xml, text/xml, application/x-xml]: net/jcip/annotations/1.0/annotations-1.0.pom.xml {quote} Note that it does *not* say which repository has the problem. This makes it very difficult to track the problem down. A problem which could have been solved in seconds requires enabling http debug logging, and then laboriously scanning the output to determine where the bad content is coming from.  This can take a considerable amount of time. *Expected:* The log message should clearly log which repository the invalid content was received in.",1 +"NEXUS-17510","07/03/2018 14:28:59","clarify intent when no components found for REST API","The REST call to associate a tag with components may return a 200 status code indicating the operation was successful, but the response body may not contain any components the tag was associated with. {   ""status"": 200,   ""message"": ""Association successful"",   ""data"": {     ""components associated"": []   } } One user of the REST API was confused by this. Their usage pattern was: 1. create tag - 204 2. associate tag with components - 200 3. move components with tag - 404 At step 2, the status code implies some components were associated with the tag, when in fact there were no components found matching the criteria submitted. The script moved to step 3 and failed curiously because there were no components fou d with the tag applied in step 2. So while the API seems to be acting as designed, there may be a slight disconnect between tagging and staging here. h4. Expected Clarify why the associate tag API returns 200 status code even though no components VS the staging move API which returns 404 for no components. Add this type of caveat or clarity to our documentation. ",1 +"NEXUS-17548","07/06/2018 20:40:40","Docker proxy repositories auto-block for images that don't exist","Create a proxy repository to docker hub.  Put this in a group repository. Then request a manifest from through the group repository that doesn't exist on docker hub: [http://localhost:8081/repository/docker-group/v2/fff/ggg/manifests/4.0.8r0] The remote will return an authorization error, causing the repository to auto-block:   {quote}2018-07-06 14:40:20,433-0500 WARN  [qtp335821775-248] admin org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/fff/ggg/manifests/4.0.8r0: 401 - org.sonatype.nexus.repository.docker.internal.V2Exception: authentication required 2018-07-06 14:40:41,441-0500 INFO  [elasticsearch[441A7C2A-D43F4D99-9C18AFA3-F4D24CC1-BA03CB4F][management][T#2|#2]] *SYSTEM org.elasticsearch.cluster.routing.allocation.decider - [441A7C2A-D43F4D99-9C18AFA3-F4D24CC1-BA03CB4F] low disk watermark [85%] exceeded on [ggbWczR0QgqEeYJBh3TOpg][441A7C2A-D43F4D99-9C18AFA3-F4D24CC1-BA03CB4F][/Users/rseddon/temp/foo/sonatype-work/nexus3/elasticsearch/nexus/nodes/0] free: 67.8gb[14.5%], replicas will not be assigned to this node 2018-07-06 14:41:00,609-0500 INFO  [Check Status https://registry-1.docker.io] admin org.sonatype.nexus.repository.httpclient.internal.HttpClientFacetImpl - Repository status for docker-io changed from AUTO_BLOCKED_UNAVAILABLE to AVAILABLE - reason n/a for n/a 2018-07-06 14:41:11,451-0500 INFO  [elasticsearch[441A7C2A-D43F4D99-9C18AFA3-F4D24CC1-BA03CB4F][management][T#3|#3]] *SYSTEM org.elasticsearch.cluster.routing.allocation.decider - [441A7C2A-D43F4D99-9C18AFA3-F4D24CC1-BA03CB4F] low disk watermark [85%] exceeded on [ggbWczR0QgqEeYJBh3TOpg][441A7C2A-D43F4D99-9C18AFA3-F4D24CC1-BA03CB4F][/Users/rseddon/temp/foo/sonatype-work/nexus3/elasticsearch/nexus/nodes/0] free: 67.8gb[14.5%], replicas will not be assigned to this node {quote}   I'm not entirely sure why the remote returns unauthorized when it should return 404.  It seems to be some sort of misguided attempt at security? But the current behavior of auto-blocking potentially makes them unavailable for subsequent requests. This behavior might be OK for a direct request to to a docker proxy repository (maybe). But it causes a real problem for group repositories. They can contain many docker proxy repositories, so it is expected that requests will be coming into them frequently be for images that don't exist on at least some of the remotes of their contained proxy repositories.  ",3 +"NEXUS-17611","07/13/2018 16:19:46","404s returned for packages containing build-metadata in version","A 404 is returned from nuget.org when attempting to get a package containing build-metadata in it's version e.g. 1.0.0+githash (see [SemVer 2.0.0|https://docs.microsoft.com/en-us/nuget/reference/package-versioning#semantic-versioning-200]) For example [https://www.nuget.org/packages/NuGet.Frameworks/4.7.0] To reproduce: # Setup proxy repo, proxying to [https://www.nuget.org/api/v2] (i.e. nuget.org-proxy) # Enable DEBUG logging on com.sonatype.nexus.repository.nuget.internal # Via a nuget client attempt to install package e.g.  _nuget install NuGet.Frameworks -Version 4.7.0 -source [http://localhost:8081/repository/nuget.org-proxy]_   *Expected:* Package metadata and package are located and installed. *Actual:* Package is not installed and a 404 is returned. Following observed in logs showing 404 returned from nuget: {quote}2018-07-13 15:22:08,672+0100 DEBUG [qtp784640267-626]  *UNKNOWN com.sonatype.nexus.repository.nuget.internal.NugetFeedFetcher - Fetching: GET [https://www.nuget.org/api/v2/Packages(Id='NuGet.Build.Tasks.Pack',Version='4.8.0-preview3.5278+c3240b16fcf3276246fc8c610771d14ab94fdc02]') HTTP/1.1 2018-07-13 15:22:08,792+0100 DEBUG [qtp784640267-626]  *UNKNOWN com.sonatype.nexus.repository.nuget.internal.NugetFeedFetcher - Response: HttpResponseProxy\{HTTP/1.1 404 Not Found [Cache-Control: private, Transfer-Encoding: chunked, Content-Type: text/html; charset=utf-8, Content-Security-Policy: frame-ancestors 'none', X-Frame-Options: deny, X-XSS-Protection: 1; mode=block, X-Content-Type-Options: nosniff, Strict-Transport-Security: max-age=31536000, Date: Fri, 13 Jul 2018 14:22:03 GMT, Connection: close] ResponseEntityProxy\{[Content-Type: text/html; charset=utf-8,Chunked: true]}} 2018-07-13 15:22:08,792+0100 DEBUG [qtp784640267-626]  *UNKNOWN com.sonatype.nexus.repository.nuget.internal.NugetFeedFetcher - Status: HTTP/1.1 404 Not Found 2018-07-13 15:22:08,793+0100 WARN  [qtp784640267-626]  *UNKNOWN com.sonatype.nexus.repository.nuget.internal.NugetFeedFetcher - Status code 404 contacting [https://www.nuget.org/api/v2/Packages(Id='NuGet.Build.Tasks.Pack',Version='4.8.0-preview3.5278+c3240b16fcf3276246fc8c610771d14ab94fdc02]') 2018-07-13 15:22:08,901+0100 DEBUG [qtp784640267-626]  *UNKNOWN com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyFacet - Proxy repo nuget.org-proxy found no package entry for NuGet.Build.Tasks.Pack 4.8.0-preview3.5278+c3240b16fcf3276246fc8c610771d14ab94fdc02 at remote {quote}   The request being made is [https://www.nuget.org/api/v2/Packages(Id='NuGet.Frameworks',Version='4.7.0+9245481f357ae542f92e6bc5e504fc898cfe5fc0')] which fails.  Request omitting the build-metadata is successful:  [https://www.nuget.org/api/v2/Packages(Id='NuGet.Frameworks',Version='4.7.0')] and [https://www.nuget.org/api/v2/package/NuGet.Frameworks/4.7.0] Installing the package directly against nuget.org is successful and it is observed the build-metadata is being omitted i.e. _nuget install NuGet.Frameworks -Version 4.7.0 -source [https://nuget.org/api/v2] -Verbosity detailed_  ",2 +"NEXUS-17616","07/13/2018 21:52:54","On browse w/ LDAP, if no perms, a bunch of warns are fired","With an LDAP user with just analytics permission, I logged in and clicked Browse (as it was clickable) and while nothing showed (proper since I have no permission), I noticed a bunch of WARNs in the nexus.log (see below, for example, attached for full nexus.log snip). It seems to be looking through various groups, not sure why. I didn't think this was all of them but looking at the size, it might be. {code} 2018-07-13 16:44:01,422-0400 WARN [pool-21-thread-1] aaron.cheever org.sonatype.nexus.internal.selector.SelectorManagerImpl - Unable to find role for roleId=wolves_of_phalloz, continue searching for roles org.sonatype.nexus.security.role.NoSuchRoleException: Role not found: wolves_of_phalloz at org.sonatype.nexus.security.internal.SecurityConfigurationManagerImpl.readRole(SecurityConfigurationManagerImpl.java:198) at org.sonatype.nexus.security.internal.AuthorizationManagerImpl.getRole(AuthorizationManagerImpl.java:179) at org.sonatype.nexus.internal.selector.SelectorManagerImpl.getRoles(SelectorManagerImpl.java:244) at org.sonatype.nexus.internal.selector.SelectorManagerImpl.lambda$3(SelectorManagerImpl.java:236) at java.util.ArrayList.forEach(ArrayList.java:1257) at org.sonatype.nexus.internal.selector.SelectorManagerImpl.getRoles(SelectorManagerImpl.java:236) at org.sonatype.nexus.internal.selector.SelectorManagerImpl.browseActive(SelectorManagerImpl.java:194) at org.sonatype.nexus.internal.selector.SelectorManagerImpl$$EnhancerByGuice$$203d3c94.CGLIB$browseActive$8() at org.sonatype.nexus.internal.selector.SelectorManagerImpl$$EnhancerByGuice$$203d3c94$$FastClassByGuice$$bcb2d656.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at org.sonatype.nexus.internal.selector.SelectorManagerImpl$$EnhancerByGuice$$203d3c94.browseActive() at org.sonatype.nexus.repository.security.RepositoryPermissionChecker.subjectHasAnyContentSelectorAccessTo(RepositoryPermissionChecker.java:106) at org.sonatype.nexus.repository.security.RepositoryPermissionChecker.userCanBrowseRepositories(RepositoryPermissionChecker.java:94) at org.sonatype.nexus.repository.security.RepositoryPermissionChecker$userCanBrowseRepositories.call(Unknown Source) at org.sonatype.nexus.coreui.RepositoryComponent.filter(RepositoryComponent.groovy:368) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:169) at org.sonatype.nexus.coreui.RepositoryComponent.readReferences(RepositoryComponent.groovy:153) at org.sonatype.nexus.coreui.RepositoryComponent$$EnhancerByGuice$$6c9743ea.CGLIB$readReferences$39() at org.sonatype.nexus.coreui.RepositoryComponent$$EnhancerByGuice$$6c9743ea$$FastClassByGuice$$dd30d766.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at org.sonatype.nexus.coreui.RepositoryComponent$$EnhancerByGuice$$6c9743ea.readReferences() at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:236) at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) at com.softwarementors.extjs.djn.router.processor.standard.json.DefaultJsonRequestProcessorThread.processRequest(DefaultJsonRequestProcessorThread.java:72) at com.softwarementors.extjs.djn.servlet.ssm.SsmJsonRequestProcessorThread.processRequest(SsmJsonRequestProcessorThread.java:43) at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread.access$1(ExtDirectJsonRequestProcessorThread.java:1) at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread$1.call(ExtDirectJsonRequestProcessorThread.java:61) at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread$1.call(ExtDirectJsonRequestProcessorThread.java:1) at com.google.inject.servlet.ServletScopes$4.call(ServletScopes.java:450) at org.sonatype.nexus.extdirect.internal.ExtDirectJsonRequestProcessorThread.processRequest(ExtDirectJsonRequestProcessorThread.java:75) at com.softwarementors.extjs.djn.router.processor.standard.json.DefaultJsonRequestProcessorThread.call(DefaultJsonRequestProcessorThread.java:56) at com.softwarementors.extjs.djn.router.processor.standard.json.DefaultJsonRequestProcessorThread.call(DefaultJsonRequestProcessorThread.java:30) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) {code} While not a functional issue, I left minor given the unknown of how much log bloat this would cause. It's a lot for the number it seemed to hit here.",1 +"NEXUS-17621","07/16/2018 19:02:14","Rubygems metadata shows ""{}"" when empty","I noticed that when Rubygems has no metadata it shows ""{}"". This is in contrast to other fields around it (e.g. requirements and executables) as well as I believe browse wide that when empty show nothing. See attached. Seems the same for both hosted and proxy.",1 +"NEXUS-17756","08/08/2018 17:55:09","Nexus Jenkins plugin fails requests when repository manager is not at base webapp context path","Front Nexus repository manager 3 with a webapp context path that is not ""/"". For example is ""/nexus"" instead. In this scenario, connections to list repositories from the Nexus Platform Plugin for Jenkins fail. {noformat} Nexus Repository Manager 3.x connection failed com.sonatype.nexus.api.dr: Not Found at com.sonatype.nexus.api.ds.handleResponse(SourceFile:51) at org.apache.http.impl.client.CloseableHttpClient.execute(SourceFile:223) at org.apache.http.impl.client.CloseableHttpClient.execute(SourceFile:165) at com.sonatype.nexus.api.dn.a(SourceFile:84) Caused: com.sonatype.nexus.api.exception.RepositoryManagerException: Get repositories was unsuccessful (404 response from server) at com.sonatype.nexus.api.dn.a(SourceFile:106) at com.sonatype.nexus.api.dn.a(SourceFile:87) at com.sonatype.nexus.api.dm.getRepositories(SourceFile:123) at com.sonatype.nexus.api.repository.v3.RepositoryManagerV3Client$getRepositories.call(Unknown Source) at org.sonatype.nexus.ci.util.Nxrm3Util.getApplicableRepositories(Nxrm3Util.groovy:49) at org.sonatype.nexus.ci.util.Nxrm3Util$getApplicableRepositories.callStatic(Unknown Source) at org.sonatype.nexus.ci.config.Nxrm3Configuration$DescriptorImpl.doVerifyCredentials(Nxrm3Configuration.groovy:79) {noformat} h4. Expected Nexus may be hosted at any level of webapp context path ( ie. /nexus/server/1/ - connections to it must expect this and handle it normally.",2 +"NEXUS-17784","08/14/2018 03:33:39","Maven proxy repository download of exe artifact fails","2018-08-14 10:15:45,262+0800 WARN [qtp1501796269-2439] *UNKNOWN org.sonatype.nexus.repository.view.handlers.ExceptionHandler - Invalid content: GET /com/google/protobuf/protoc/3.6.0/protoc-3.6.0-linux-x86_64.exe: org.sonatype.nexus.repository.InvalidContentException: Detected content type [application/x-executable], but expected [application/x-dosexec]: com/google/protobuf/protoc/3.6.0/protoc-3.6.0-linux-x86_64.exe 2018-08-14 10:15:45,479+0800 WARN [qtp1501796269-2439] *UNKNOWN org.sonatype.nexus.repository.view.handlers.ExceptionHandler - Invalid content: GET /com/google/protobuf/protoc/3.6.0/protoc-3.6.0-linux-x86_64.exe: org.sonatype.nexus.repository.InvalidContentException: Detected content type [application/x-executable], but expected [application/x-dosexec]: com/google/protobuf/protoc/3.6.0/protoc-3.6.0-linux-x86_64.exe 2018-08-14 10:16:57,386+0800 WARN [qtp1501796269-2437] *UNKNOWN org.sonatype.nexus.repository.view.handlers.ExceptionHandler - Invalid content: GET /com/google/protobuf/protoc/3.6.0/protoc-3.6.0-linux-x86_64.exe: org.sonatype.nexus.repository.InvalidContentException: Detected content type [application/x-executable], but expected [application/x-dosexec]: com/google/protobuf/protoc/3.6.0/protoc-3.6.0-linux-x86_64.exe 2018-08-14 10:16:57,712+0800 WARN [qtp1501796269-2437] *UNKNOWN org.sonatype.nexus.repository.view.handlers.ExceptionHandler - Invalid content: GET /com/google/protobuf/protoc/3.6.0/protoc-3.6.0-linux-x86_64.exe: org.sonatype.nexus.repository.InvalidContentException: Detected content type [application/x-executable], but expected [application/x-dosexec]: com/google/protobuf/protoc/3.6.0/protoc-3.6.0-linux-x86_64.exe",1 +"NEXUS-17790","08/14/2018 16:45:37","Repair - Reconcile component database from blob store failure","A user ran the ""Repair - Reconcile component database from blob store"" task this failed with the exception seen below.  From the stack, it seems a maven-metadata.xml file was being restored and the file already existed in the target repository.   This is logged as a warning, which is fine, but there are two big problems with the way this was handled: # The repository and path of the failed asset are not printed # The task should not stop just because one file couldn't be restored   {noformat} 2018-08-13 16:54:18,826-0500 WARN [quartz-5-thread-8] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskJob - Task bc3285fe-bc71-4d2b-ac3b-af42b0911a37 : 'repair component database from blob store' [blobstore.rebuildComponentDB] execution failure java.lang.IllegalArgumentException: Blob is already attached to an asset at com.google.common.base.Preconditions.checkArgument(Preconditions.java:135) at org.sonatype.nexus.repository.storage.StorageTxImpl.attachBlob(StorageTxImpl.java:713) at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:270) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:63) at com.sun.proxy.$Proxy206.attachBlob(Unknown Source) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.putAssetPayload(MavenFacetImpl.java:428) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.putFile(MavenFacetImpl.java:415) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.put(MavenFacetImpl.java:397) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:45) at org.sonatype.nexus.blobstore.restore.maven.internal.MavenRestoreBlobStrategy.createAssetFromBlob(MavenRestoreBlobStrategy.java:112) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) at org.sonatype.nexus.blobstore.restore.maven.internal.MavenRestoreBlobStrategy.createAssetFromBlob(MavenRestoreBlobStrategy.java:1) at org.sonatype.nexus.blobstore.restore.BaseRestoreBlobStrategy.doRestore(BaseRestoreBlobStrategy.java:111) at org.sonatype.nexus.blobstore.restore.BaseRestoreBlobStrategy.restore(BaseRestoreBlobStrategy.java:79) at org.sonatype.nexus.blobstore.restore.RestoreMetadataTask.restore(RestoreMetadataTask.java:128) at org.sonatype.nexus.blobstore.restore.RestoreMetadataTask.execute(RestoreMetadataTask.java:99) at org.sonatype.nexus.blobstore.restore.RestoreMetadataTask.execute(RestoreMetadataTask.java:1) at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:93) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:108) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 2018-08-13 16:54:18,827-0500 INFO [quartz-5-thread-8] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'repair component database from blob store' [blobstore.rebuildComponentDB] state change RUNNING -> WAITING (FAILED) {noformat}",2 +"NEXUS-17794","08/14/2018 23:32:28","Log noise when clicking on an npm package root in the tree UI","If you click on an npm package node in the tree UI a very verbose warning is printed in the log.  There is no need for this to be a warning, it should be logged at DEBUG.  {quote} 2018-08-14 15:21:38,728-0400 ERROR [qtp545619715-42] nexusadmin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: healthcheck_AssetDetail.identify, java-method: com.sonatype.nexus.plugins.healthcheck.pro.internal.ui.HealthCheckAssetDetailComponent.identify java.lang.IllegalArgumentException: Malformed npm component with path ajv. If this is packageRoot, try selecting the tarball instead. at com.google.common.base.Preconditions.checkArgument(Preconditions.java:210) at com.sonatype.nexus.plugins.healthcheck.pro.internal.ui.AssetIdentificationService.getNpmComponentIdentifier(AssetIdentificationService.java:163) at com.sonatype.nexus.plugins.healthcheck.pro.internal.ui.AssetIdentificationService.getComponentIdentifier(AssetIdentificationService.java:137) at com.sonatype.nexus.plugins.healthcheck.pro.internal.ui.AssetIdentificationService.identify(AssetIdentificationService.java:100) at com.sonatype.nexus.plugins.healthcheck.pro.internal.ui.AssetIdentificationService$identify.call(Unknown Source) at com.sonatype.nexus.plugins.healthcheck.pro.internal.ui.HealthCheckAssetDetailComponent.identify(HealthCheckAssetDetailComponent.groovy:47) at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49) at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47) at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53) at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49) at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68) at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142) at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133) at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$3.invokeMethod(ExtDirectServlet.java:236) at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73) at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502) at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150) at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133) at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83) at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:630) at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:593) at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:141) {quote}  ",1 +"NEXUS-17797","08/15/2018 13:11:22","No provision to provide server side encryption kms key details while creating s3 type blobstore","We are testing Nexus-3 PRO 3.12.1-01 & S3 Integration and hit a road block w.r.t creating the S3 based Blob store.. We use the Bring your own key i.e aws-kms  and not the default aws provided kms key as part of Server side encryption on the S3 buckets for obvious security reasons in our organisation.   Current policy mandates that the request header should have the Server side encryption kms-keyId for the PUT’s to succeed and when I am trying to create a blobstore by specifying the existing bucket details it throws Access denied error because of the missing kms keyId in the request.   I don’t see any field exposed to provide this configuration details i.e listed below on the Nexus-3 PRO 3.12.1-01 or on 3.13 version and was suggested to raise a enhancement request by the support team as this is preventing us to use the s3 for HA configuration.   a.       SSE Alogirthm type (Example : aws:kms) b.      SSE KMS key Id  (Example : 6fxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) c.       Storage Class (Example : Standard)   *_Example arg params i.e sent from the aws Cli to upload any objects to s3:_* --sse aws:kms --storage-class STANDARD --sse-kms-key-id : 6fxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  ",2 +"NEXUS-17808","08/18/2018 17:56:43","NpmProxyFacetImpl.mergeNewRootWithExistingRoot should handle when an existing root disappears","{{NpmProxyFacetImpl.mergeNewRootWithExistingRoot}} was added in 3.13.0 under NEXUS-15714 to handle situations where we have previously proxied NPM packages that no longer exist on the remote. It does this by iterating over versions that no longer appear in the new package root, checking to see if any records exist for them locally. To do this it needs to load any existing package root. Unfortunately this introduces a window where the proxy facet could load an existing package root record, only to find that the referenced blob has since been replaced by another thread. This can happen in HA when the package root is being updated from multiple nodes. This will cause a retry whereas before the new package root would simply be replaced. The reason we'd prefer to retry is so we don't lose any cached NPM package versions that no longer exist in the upstream package root. If we never retried and just saved the (un-merged) upstream package root then we could potentially lose that cached information. That said, removal of upstream package versions should be rare - and failing to proxy the package root just because the existing root went away between loading the record and fetching the blob is not very robust. One option is to always ignore when an existing package root's blob is not available. Another option would be to allow retries, but if we reach the retry limit (you can tell this by catching {{RetryDeniedException}}) then go ahead and cache the upstream package root without merging.",5 +"NEXUS-17830","08/23/2018 10:53:02","Can not upload binary to Nexus Repo Raw Repository - Detected content type","When I try to upload a binary component to Nexus Repo Raw Repository (NRM3.11 pro), I get an error. I tried uploading a  tgz, dmg and a nupkg and received similar errors. What I would expect is that the component would be uploaded and be made available as a http link for users to be able to download. I would expect to be able to upload any binary as per [https://help.sonatype.com/repomanager3/user-interface/uploading-components#app]   Reproduced in 3.11 and 3.13 error messages [https://files.slack.com/files-pri/T0LE5769K-FCDPBKVEW/image.png] [https://files.slack.com/files-pri/T0LE5769K-FCEQF6AT1/image.png] [https://files.slack.com/files-pri/T0LE5769K-FCD6QSND7/image.png]   Error message:  Detected content type [application/zlib, application/x-deflate], but expected [application/x-apple-diskimage]: intellij/ideaIC-2018.2.2.dmg      ",2 +"NEXUS-17832","08/23/2018 14:28:17","Jenkins Platform Plugin unable to determine Nexus Repository Manager version using Server URL with trailing slash","Create a nexus repository manager 3.x global connection in Jenkins using a Server url of *http://localhost:8081/*. Tab or click away from the field. The field is validated and a request is sent to your Nexus 3 instance. An error displays in the Jenkins UI: {quote}Unable to determine Nexus Repository Manager version. Certain operations may not be compatible with your server which could result in failed builds. {quote} Your jenkins log will contain the cause: {noformat} Aug 23, 2018 10:20:24 AM org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrap invoke WARNING: Unsuccessful request to http://localhost:8081/ for version information for compatibility check java.io.FileNotFoundException: http://localhost:8081//service/rest/wonderland/status at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1890) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492) at org.codehaus.groovy.runtime.ResourceGroovyMethods.configuredInputStream(ResourceGroovyMethods.java:2021) at org.codehaus.groovy.runtime.ResourceGroovyMethods.newReader(ResourceGroovyMethods.java:2107) at org.codehaus.groovy.runtime.ResourceGroovyMethods.getText(ResourceGroovyMethods.java:649) at org.codehaus.groovy.runtime.ResourceGroovyMethods.getText(ResourceGroovyMethods.java:612) at org.codehaus.groovy.runtime.dgm$963.doMethodInvoke(Unknown Source) at org.codehaus.groovy.reflection.GeneratedMetaMethod$Proxy.doMethodInvoke(GeneratedMetaMethod.java:73) at org.codehaus.groovy.runtime.metaclass.MethodMetaProperty$GetBeanMethodMetaProperty.getProperty(MethodMetaProperty.java:76) at org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite.getProperty(GetEffectivePojoPropertySite.java:64) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:296) at org.sonatype.nexus.ci.config.Nxrm3Configuration$DescriptorImpl.doCheckServerUrl(Nxrm3Configuration.groovy:99) at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627) at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117) at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864) at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:668) at org.kohsuke.stapler.Stapler.service(Stapler.java:238) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:860) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:105) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90) at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:530) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:347) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:256) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:382) at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) {noformat} The request is sent to http://localhost:8081//service/rest/wonderland/status instead of http://localhost:8081/service/rest/wonderland/status. Nexus 3 returns 404. h4. Expected Trailing slashes should be handled better by this field and ALL outbound requests ( see NEXUS-17756 for alternates ) to NXRM made using this value, either at the configuration screen or during builds. An end user can't be expected to readily know the semantic differences between http://localhost:8081 and http://localhost:8081/ .",3 +"NEXUS-17850","08/27/2018 17:33:40","API does not validate contents of content selectors. Invalid content selectors can lead to failed upgrade.","The SelectorManager.create(SelectorConfiguration config) method does not validate the contents passed into it. This allows the creation of invalid content selectors that have no attributes. These invalid content selectors do not show up in the UI, and therefore cannot be removed by the users.  Furthermore, when an upgrade to a new version of Nexus is performed these invalid records cause a failure, the upgraded instance cannot be started. *Expected*: The API should protect against invalid content. Example of invalid record that can be created via API:   {code:java} { ""@class"": ""selector_selector"", ""@rid"": ""#40:3"", ""@type"": ""d"", ""@version"": 1, ""description"": ""Testing"", ""name"": ""com.no.attributes"", ""type"": ""csel"" }, {code}  Example of failure that occurs when this record is encountered during upgrade: {quote}2018-08-26 08:15:32,634-0500 INFO [FelixStartLevel] NexusHDQ-One *SYSTEM org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl - Upgrade rubygems from 1.0 to 1.1 2018-08-26 08:15:32,821-0500 WARN [FelixStartLevel sql.update selector_selector set attributes.expression = attributes.expression.replace('//','/')] NexusHDQ-One *SYSTEM com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinary - $ANSI\{green \{db=config}} Error deserializing record with id #39:5 send this data for debugging: ACJzZWxlY3Rvcl9zZWxlY3RvcgEAAAAoJQAAADZvAAAAO3EAAABMABpjb20uYWEuZG9nYWRzCENTRUwgVGVzdGluZyBieSBOaWhhcgIHFGV4cHJlc3Npb24AAABeFLoBY29tLm9yaWVudGVjaG5vbG9naWVzLm9yaWVudC5jb3JlLnNlcmlhbGl6YXRpb24uc2VyaWFsaXplci5yZWNvcmQuYmluYXJ5Lk9TZXJpYWxpemFibGVXcmFwcGVyzgSs7QAFc3IAJ29yZy5jb2RlaGF1cy5ncm9vdnkucnVudGltZS5HU3RyaW5nSW1wbDGzS2f7fekSAgABWwAHc3RyaW5nc3QAE1tMamF2YS9sYW5nL1N0cmluZzt4cgATZ3Jvb3Z5LmxhbmcuR1N0cmluZ9tj3naQywjNAgABWwAGdmFsdWVzdAATW0xqYXZhL2xhbmcvT2JqZWN0O3hwdXIAE1tMamF2YS5sYW5nLk9iamVjdDuQzlifEHMpbAIAAHhwAAAAAXQADS8vLy8vLy8vLy8vLy91cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAACdAAhZm9ybWF0ID09ICdtYXZlbjInIGFuZCBwYXRoID1+ICdedAADLion 2018-08-26 08:15:32,835-0500 ERROR [FelixStartLevel sql.update selector_selector set attributes.expression = attributes.expression.replace('//','/')] NexusHDQ-One *SYSTEM com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - Exception `2F976A01` in storage `plocal:/opt/sonatype-work/nexus3/db/config`: 2.2.36 (build d3beb772c02098ceaea89779a7afd4b7305d3788, branch 2.2.x) com.orientechnologies.orient.core.exception.OCommandExecutionException: Error on execution of command: sql.select from selector_selector DB name=""config"" at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:3421) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:3318) at com.orientechnologies.orient.core.sql.query.OSQLQuery.run(OSQLQuery.java:78) at com.orientechnologies.orient.core.sql.query.OSQLAsynchQuery.run(OSQLAsynchQuery.java:74) at com.orientechnologies.orient.core.query.OQueryAbstract.execute(OQueryAbstract.java:33) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.query(ODatabaseDocumentTx.java:756) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLUpdate.execute(OCommandExecutorSQLUpdate.java:291) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:70) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:3400) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:3318) at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69) at org.sonatype.nexus.repository.rubygems.upgrade.RubygemsUpgrade_1_1.updateContentSelectorExpressions(RubygemsUpgrade_1_1.java:115) at org.sonatype.nexus.repository.rubygems.upgrade.RubygemsUpgrade_1_1.apply(RubygemsUpgrade_1_1.java:79) at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.lambda$3(UpgradeServiceImpl.java:193) at java.util.ArrayList.forEach(ArrayList.java:1257) at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.doUpgrade(UpgradeServiceImpl.java:135) at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl.doStart(UpgradeServiceImpl.java:91) at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:67) at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl$$EnhancerByGuice$$dbe05174.CGLIB$start$4() at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl$$EnhancerByGuice$$dbe05174$$FastClassByGuice$$2ae549d6.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:191) at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:56) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at org.sonatype.nexus.upgrade.internal.UpgradeServiceImpl$$EnhancerByGuice$$dbe05174.start() at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:155) at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:95) at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:191) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1429) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.RuntimeException: com.orientechnologies.orient.core.exception.ODatabaseException: Error on deserialization of Serializable DB name=""config"" at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.deserializeValue(ORecordSerializerBinaryV0.java:497) at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.readEmbeddedMap(ORecordSerializerBinaryV0.java:576) at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.deserializeValue(ORecordSerializerBinaryV0.java:472) at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.deserializePartial(ORecordSerializerBinaryV0.java:148) at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinary.fromStream(ORecordSerializerBinary.java:78) at com.orientechnologies.orient.core.record.impl.ODocument.deserializeFields(ODocument.java:1854) at com.orientechnologies.orient.core.record.impl.ODocument.checkForFields(ODocument.java:2626) at com.orientechnologies.orient.core.record.impl.ODocument.rawField(ODocument.java:773) at com.orientechnologies.orient.core.sql.filter.OSQLFilterItemField.getValue(OSQLFilterItemField.java:129) at com.orientechnologies.orient.core.sql.OSQLHelper.resolveFieldValue(OSQLHelper.java:310) at com.orientechnologies.orient.core.sql.OSQLHelper.bindParameters(OSQLHelper.java:401) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLUpdate.handleSetEntries(OCommandExecutorSQLUpdate.java:614) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLUpdate.result(OCommandExecutorSQLUpdate.java:348) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.pushResult(OCommandExecutorSQLResultsetAbstract.java:279) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.addResult(OCommandExecutorSQLSelect.java:759) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.handleResult(OCommandExecutorSQLSelect.java:670) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearchRecord(OCommandExecutorSQLSelect.java:627) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.serialIterator(OCommandExecutorSQLSelect.java:1638) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchFromTarget(OCommandExecutorSQLSelect.java:1585) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:522) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:485) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:70) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:3400) ... 33 common frames omitted Caused by: com.orientechnologies.orient.core.exception.ODatabaseException: Error on deserialization of Serializable DB name=""config"" at com.orientechnologies.orient.core.serialization.serializer.record.binary.OSerializableWrapper.fromStream(OSerializableWrapper.java:48) at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.deserializeValue(ORecordSerializerBinaryV0.java:491) ... 55 common frames omitted Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.GStringImpl at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.apache.felix.framework.BundleWiringImpl.doImplicitBootDelegation(BundleWiringImpl.java:1764) at org.apache.felix.framework.BundleWiringImpl.searchDynamicImports(BundleWiringImpl.java:1693) at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1528) at org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:79) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1958) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:683) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1863) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1746) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2037) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:428) {quote}",1 +"NEXUS-17852","08/27/2018 18:04:09","Problem connecting to LDAP server root cause is not logged at default log levels"," The exception handling in DefaultLdapConnector and FailoverLdapConnector provides no information at all as to what actually went wrong: [https://github.com/sonatype/nexus-internal/blob/release-3.13.0-01/private/plugins/nexus-ldap-plugin/src/main/java/org/sonatype/nexus/ldap/internal/connector/DefaultLdapConnector.java#L241] [https://github.com/sonatype/nexus-internal/blob/release-3.13.0-01/private/plugins/nexus-ldap-plugin/src/main/java/org/sonatype/nexus/ldap/internal/connector/FailoverLdapConnector.java#L248] This results in useless messages logged at INFO level: {quote}2018-08-27 07:55:17,511-0600 WARN  [qtp389114725-397394] node3 SCH1844 org.sonatype.nexus.ldap.internal.connector.FailoverLdapConnector - Problem connecting to LDAP server: org.sonatype.nexus.ldap.internal.connector.dao.LdapDAOException: Failed to retrieve ldap information for users. 2018-08-27 07:55:23,582-0600 WARN  [qtp389114725-397122] node3 SCH1844 org.sonatype.nexus.ldap.internal.connector.FailoverLdapConnector - Problem connecting to LDAP server: org.sonatype.nexus.ldap.internal.connector.dao.LdapDAOException: Failed to retrieve ldap information for users. 2018-08-27 07:55:25,237-0600 WARN  [qtp389114725-397304] node3 *UNKNOWN org.sonatype.nexus.ldap.internal.connector.FailoverLdapConnector - Problem connecting to LDAP server: org.sonatype.nexus.ldap.internal.connector.dao.LdapDAOException: Failed to retrieve ldap information for users. 2018-08-27 07:55:29,548-0600 WARN  [qtp389114725-397405] node3 SCH1844 org.sonatype.nexus.ldap.internal.connector.FailoverLdapConnector - Problem connecting to LDAP server: org.sonatype.nexus.ldap.internal.connector.dao.LdapDAOException: Failed to retrieve ldap information for users. 2018-08-27 07:55:35,954-0600 WARN  [qtp389114725-397248] node3 SCH1844 org.sonatype.nexus.ldap.internal.connector.FailoverLdapConnector - Problem connecting to LDAP server: org.sonatype.nexus.ldap.internal.connector.dao.LdapDAOException: Failed to retrieve ldap information for users. {quote} Please pass the caused by messages up the chain at INFO.  Note that this applies to all the exceptions thrown in DefaultLdapConnector, not just the one I highlighted above.",2 +"NEXUS-17877","08/29/2018 18:56:32","Errors logged from firewall migration for new/updated maven-metadata.xml files","Set up Nexus Repo 2.14.9 with firewall enabled on the maven-central proxy repository.   Run an upgrade to Nexus Repo 3.13.0, and  proceed with this until you get to the synchronize phase, where it's looking for updates in Nexus 2.x.  Now request a new (not previously cached) maven-metadata.xml file through Nexus Repo 2:  [http://localhost:8081/nexus/content/repositories/central/org/apache/httpcomponents/httpclient/maven-metadata.xml] Observe that Nexus Repo 3 gets an error logged for this:   {quote}2018-08-29 12:45:09,592-0500 ERROR [plan-executor-10-thread-3] admin com.sonatype.nexus.migration.repository.ProcessChangesStep - Failed processing of CREATE central:/org/apache/httpcomponents/httpclient/maven-metadata.xml, will ignore and move on. null java.lang.NullPointerException: null at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:882) at com.sonatype.nexus.migration.repository.migrators.Maven2RepositoryMigratorSupport.getIngestedContent(Maven2RepositoryMigratorSupport.java:206) at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.lambda$0(RepositoryMigratorSupport.java:172) at com.sonatype.nexus.migration.firewall.EnabledFirewallMigrationFacadeImpl.updateAssetAttributes(EnabledFirewallMigrationFacadeImpl.java:225) at com.sonatype.nexus.migration.firewall.EnabledFirewallMigrationFacadeImpl.lambda$2(EnabledFirewallMigrationFacadeImpl.java:209) at org.sonatype.nexus.transaction.OperationPoint.lambda$0(OperationPoint.java:53) at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:200) at org.sonatype.nexus.transaction.Operations.run(Operations.java:155) at com.sonatype.nexus.migration.firewall.EnabledFirewallMigrationFacadeImpl.maybeRecordAssetAttributes(EnabledFirewallMigrationFacadeImpl.java:208) at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.createOrUpdate(RepositoryMigratorSupport.java:170) at com.sonatype.nexus.migration.repository.migrators.RepositoryMigratorSupport.processChange(RepositoryMigratorSupport.java:146) at com.sonatype.nexus.migration.repository.migrators.Maven2ProxyRepositoryMigrator.processChange(Maven2ProxyRepositoryMigrator.java:118) at com.sonatype.nexus.migration.repository.RepositoryMigrator$processChange$3.call(Unknown Source) at com.sonatype.nexus.migration.repository.ProcessChangesStep$_submit_closure2.doCall(ProcessChangesStep.groovy:333) at com.sonatype.nexus.migration.repository.ProcessChangesStep$_submit_closure2.doCall(ProcessChangesStep.groovy) at sun.reflect.GeneratedMethodAccessor350.invoke(Unknown Source) {quote}   This is because the firewall migration is attempting to find the GAV coordinates of the file: [https://github.com/sonatype/nexus-internal/blob/release-3.13.0-01/private/plugins/nexus-migration-plugin/src/main/java/com/sonatype/nexus/migration/repository/migrators/Maven2RepositoryMigratorSupport.java#L206] The good news is that the affected file is migrated.  And since they are maven-metadata.xml files there isn't anything the firewall migration needed to do with them anyhow. So this seem to only cause log noise. ",3 +"NEXUS-17884","08/31/2018 16:36:23","upload of source rpm fails in yum hosted","I uploaded a src rpm to a up to date nexus3 (3.13.0-01 OSS). And it worked fine: {quote} > PUT /repository/Test/SRPMS/7/ngcurl-7.61.0-2.src.rpm HTTP/1.1 ... < HTTP/1.1 200 OK < Date: Fri, 31 Aug 2018 12:52:48 GMT < Server: Nexus/3.13.0-01 (OSS) < X-Content-Type-Options: nosniff < Content-Security-Policy: sandbox allow-forms allow-modals allow-popups allow-presentation allow-scripts allow-top-navigation < Content-Length: 0 < Keep-Alive: timeout=5 < Connection: Keep-Alive < Content-Type: application/x-rpm {quote} But the the content of -primary.xml.gz is wrong: {quote} curl -k [https://nexus.XXX.com/repository/Test/SRPMS/7/repodata/338c845819a87d70703b3ffbbfe763b15bf325c7c017229997621899f7c04b89-primary.xml.gz|https://nexus.xxx.com/repository/Test/SRPMS/7/repodata/338c845819a87d70703b3ffbbfe763b15bf325c7c017229997621899f7c04b89-primary.xml.gz] | gunzip | xmllint --format /dev/fd/0 {quote} returns: {quote} ngcurl x86_64 ... {quote} Look at the arch attribute, it says x86_64. I created a local yum repo with createro (0.9.9) on Centos7 (7.5.1804) With exactly the same rpm, running: {quote} $ createrepo -o $PWD -p $PWD -s sha --database --workers 4 {quote} The equivalent file says: {quote} ngcurl src {quote} The arch is now src A diff after formatting both with xmllint --format returns: {quote} 5c5 < x86_64 --- > src 7c7 < b2a7e8d1a5ff56c9028493ba7103488323578187d4c282e4711199b04509319d --- > 49d3b8b28b256d65f7cafc94d2a6ed16456bd024 17c17 <