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/releasesreleasesReleasesmaven2org.sonatype.nexus.proxy.repository.Repositorymaven2hostedtrueALLOW_WRITE_ONCEtruetrue1440RELEASEfalsefile:/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-siteshttp://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}"Test"{noformat}| |Value returned via REST|{noformat}"Test"{noformat}|{noformat}"Test"{noformat}|{noformat}&quot;Test&quot;{noformat}| |Displayed in other UI|{noformat}""Test""{noformat}|{noformat}"Test"{noformat}|{noformat}"Test"{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} localhost8888nexus.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.02.3.0-04 {code} This should have been: {code:XML} 2.0.02.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 '
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 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} sonatypeui-basiccustom-stagingcustom-stagingcustom-stagingStaging without drop privilege554614staging-admin-readstaging-startstaging-admin-stagestaging-profile-repositoriesstaging-rule-typesstaging-ruleset-readstaging-admin-promote1repository-allstaging-profile-readstaging-promote6 {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} 1452869080bdc5e634c890e48f3e30ed99ce39ec19e93c057be28b391a9b786a527e00270d88e9e1509ddbe17b977d9a3e6da66b6ae76717ac8c4aed248220e1fb5908f30414528690804291482 {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! 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 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.pluginsnexus-staging-maven-plugin1.6.7trueossrhhttps://oss.sonatype.org/true {quote} Proxy config is: {quote}https_psbrutruehttpsuserpasspsbru.cec.eu.int8012localhost|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 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.
\nPowered 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
\nPowered 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.sonatypeproject1.1.5-SNAPSHOT120180227155805 {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} ngcurlx86_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} ngcurlsrc {quote} The arch is now src A diff after formatting both with xmllint --format returns: {quote} 5c5 < x86_64 --- > src 7c7 < b2a7e8d1a5ff56c9028493ba7103488323578187d4c282e4711199b04509319d --- > 49d3b8b28b256d65f7cafc94d2a6ed16456bd024 17c17 < --- > {quote} The only real problem is indeed the arch.",2
+"NEXUS-17886","09/01/2018 02:05:07","Yum metadata from unrelated folder incorrectly removed when regenerating a folder","I have two nexus repository (oss) servers, trying to host RPMs. There seems to be an issue in generating the repodata, as most of the time, i only end up with a repomd.xml file, and none of the files referenced from within repomd.xml. I've got this happening in two different servers, with similar, but unique RPMs. The only unique thing we are doing is having multiple yum repositories (repodata's) in a single nexus repository. So we would have centos/6/ and centos/7/ inside the same nexus repository. Which should create (with repo depth of 2) centos/6/repodata/ and centos/7/repodata/. In the log files, there are no errors, just lines like this: {{2018-08-31 21:00:17,412-0400 INFO [event-9-thread-474] anonymous org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl - Rebuilding yum metadata for repository tempyum}} {{2018-08-31 21:00:18,515-0400 INFO [event-9-thread-483] anonymous org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl - Scheduling rebuild of yum metadata to start in 60 seconds}} {{2018-08-31 21:00:20,507-0400 INFO [event-9-thread-474] anonymous org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl - Finished rebuilding yum metadata for repository tempyum}} {{2018-08-31 21:01:20,507-0400 INFO [event-9-thread-486] anonymous org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl - Rebuilding yum metadata for repository tempyum}} {{2018-08-31 21:01:26,006-0400 INFO [event-9-thread-486] anonymous org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl - Finished rebuilding yum metadata for repository tempyum}} {{2018-08-31 21:01:26,221-0400 INFO [event-9-thread-512] anonymous org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl - Scheduling rebuild of yum metadata to start in 60 seconds}}",2
+"NEXUS-17896","09/04/2018 17:25:35","concurrent requests for large npm metadata can lead to OutOfMemory during serialization","1. Install nexus 3.13.0 2. Create npm-proxy for [https://registry.npmjs.org|https://registry.npmjs.org/] 3. Create npm-group group repo containing npm-proxy as member. 4. Make concurrent requests to GET [http://localhost:8081/repository/npm-group/npm] ( example of 20 concurrent requests was tested ) At the time of this report, the anticipated response size was 8MB of JSON: {noformat} 127.0.0.1 - - [04/Sep/2018:13:17:45 -0300] ""GET /repository/npm-group/npm HTTP/1.1"" 200 - 8104610 53829 ""Apache-HttpClient/4.5.3 (Java/1.8.0_152)""{noformat} 5. Within a short time frame, Nexus will start throwing OutOfMemory errors - either: OutOfMemoryError: Java heap space OutOfmemoryError: GC overhead limit exceeded The stack trace in the application log may take the following forms: {noformat} 2018-09-04 13:17:13,505-0300 ERROR [qtp1980459634-66] *SYSTEM org.sonatype.nexus.internal.web.ErrorPageServlet - Unexpected exception java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:3236) at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118) at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93) at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221) at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:282) at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125) at java.io.OutputStreamWriter.write(OutputStreamWriter.java:207) at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._flushBuffer(WriterBasedJsonGenerator.java:1946) at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._writeString(WriterBasedJsonGenerator.java:973) at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator.writeString(WriterBasedJsonGenerator.java:377) at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41) at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119) at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79) at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:718) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:639) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:33) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:718) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:639) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:33) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:718) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:639) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:33) at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480) at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319) at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3893) at com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:3189) at org.sonatype.nexus.repository.npm.internal.NpmJsonUtils.serialize(NpmJsonUtils.java:97) at org.sonatype.nexus.repository.npm.internal.NpmJsonUtils.bytes(NpmJsonUtils.java:112) at org.sonatype.nexus.repository.npm.internal.NpmFacetUtils.toContent(NpmFacetUtils.java:154) at org.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.getPackageRoot(NpmProxyFacetImpl.java:222) {noformat} {noformat} 2018-09-04 13:17:38,581-0300 ERROR [qtp1980459634-61] *SYSTEM org.sonatype.nexus.internal.web.ErrorPageServlet - Unexpected exception java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:3236) at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118) at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93) at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221) at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:282) at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125) at java.io.OutputStreamWriter.write(OutputStreamWriter.java:207) at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._flushBuffer(WriterBasedJsonGenerator.java:1946) at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._writeFieldName(WriterBasedJsonGenerator.java:161) at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator.writeFieldName(WriterBasedJsonGenerator.java:139) at com.fasterxml.jackson.databind.ser.std.StdKeySerializers$StringKeySerializer.serialize(StdKeySerializers.java:263) at com.fasterxml.jackson.databind.ser.std.StdKeySerializers$Dynamic.serialize(StdKeySerializers.java:225) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:707) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:639) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:33) at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119) at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79) at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:718) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:639) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:33) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:718) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:639) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:33) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:718) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:639) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:33) at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480) at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319) at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3893) at com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:3189) {noformat} Other symptoms may include gradually slowing requests to the same package metadata.",13
+"NEXUS-17898","09/04/2018 18:11:05","Prevent Analytics collection from being enabled by default in HA mode","Prevent Analytics collection from being enabled by default in HA mode. The user can still opt to turn the capabilities on.",1
+"NEXUS-17908","09/05/2018 20:08:16","Tag association may intermittently fail for new artifact","Attempting to associate a tag with a newly-uploaded artifact can sometimes result in a 404, ""No components found"" error. The core issue appears to be a race condition involving the Elasticsearch subsystem which stores the tag associations.",2
+"NEXUS-17919","09/07/2018 20:39:23","Swagger generated curl command for POST /v1/components can be incorrect","1. Using the API Swagger interface for POST /v1/components, Try it Out by entering the following information: repository: nuget-hosted nuget.asset: Choose a valid nuget package off your local file system. 2. Execute the call 3. The call should be successful. The problem is the example curl command generated is wrong: {noformat} curl -X POST ""http://localhost:8081/service/rest/v1/components?repository=nuget-hosted"" -H ""accept: application/json"" -H ""Content-Type: multipart/form-data"" -F ""nuget.asset=@nugethello.1.0.3.nupkg;type=""{noformat} Executing this results in an error, even if you correct the file location and add the user/password: {noformat} curl -u admin:admin123 -X POST ""http://localhost:8081/service/rest/v1/components?repository=nuget-hosted"" -H ""accept: application/json"" -H ""Content-Type: multipart/form-data"" -F ""nuget.asset=@/Users/plynch/dev/tmp/nuget/nugethello.1.0.3.nupkg;type="" Warning: Illegally formatted content-type field! curl: option -F: is badly used here curl: try 'curl --help' or 'curl --manual' for more information{noformat} The correct command would be: {noformat} curl -u admin:admin123 -F ""nuget.asset=@/Users/plynch/dev/tmp/nuget/nugethello.1.0.3.nupkg"" ""http://localhost:8081/service/rest/beta/components?repository=nuget-hosted""{noformat}",1
+"NEXUS-17920","09/07/2018 23:13:00","Deleting an rpm via DELETE to /repository does not update metadata","Reproduce case: Upload two rpm's which have the same artifact ID but different versions into a hosted yum repository in Nexus Repo 3.13.0. I've attached the two i used in testing to make this easy to reproduce. {code:java} curl --upload-file my-webapp2-3.1.4-1.noarch.rpm http://localhost:8081/repository/platform-centos7/my-webapp2-3.1.4-1.noarch.rpm -u admin:admin123 -v {code} {code:java} curl --upload-file my-webapp2-3.1.5-1.noarch.rpm http://localhost:8081/repository/platform-centos7/my-webapp2-3.1.5-1.noarch.rpm -v -u admin:admin123 {code} Wait for yum metadata to be generated, then verify both versions are in the primary.xml.gz file. Delete the newer version via rest: {code:java} curl -X DELETE http://localhost:8081/repository/platform-centos7/my-webapp2-3.1.5-1.noarch.rpm -v -u admin:admin123 {code} Request.log will show it has been successfully deleted: {quote}127.0.0.1 - admin [07/Sep/2018:16:52:21 -0500] ""DELETE /repository/platform-centos7/my-webapp2-3.1.5-1.noarch.rpm HTTP/1.1"" 200 - 0 6 ""curl/7.54.0"" {quote} The nexus.log shows the yum metadata rebuilds 60 seconds later: {quote}2018-09-07 16:53:21,255-0500 INFO [event-9-thread-32] admin org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl - Rebuilding yum metadata for repository platform-centos7 2018-09-07 16:53:21,330-0500 INFO [event-9-thread-32] admin org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl - Finished rebuilding yum metadata for repository platform-centos7 {quote} Download the primary.xml.gz file, and observe both versions are still listed: {code:java} my-webapp2noarch8a1f6e2706b17eced9c1772e9188e76a9bd82b61832cf0779afd844493ad5f6amy-webapp Maven WebappEPLApplications/Internetunknown001c426fe22e.attlocal.netmy-webapp2-3.1.5-1.src.rpmmy-webapp2noarchaf0c577d387d7e19ec4d879598a2ff01e75faa5bc8fb7de83777ec00dcccbdc5my-webapp Maven WebappEPLApplications/Internetunknown001c42591e81.attlocal.netmy-webapp2-3.1.4-1.src.rpm {code}",1
+"NEXUS-17921","09/10/2018 15:34:15","REST API upload that fails due to lack of permissions returns 404 (not found)","*Background* 1. Start up Nexus 3.13.0 with default configuration 2. Create a user ""test"" that does not have read or browse permissions to the nuget-hosted repository 3. Attempt to upload a nuget component to nuget-hosted using the REST API 4. Observe that this fails with 404 (not found) Bizarrely, if I grant the test user read access to the nuget-hosted repository the request fails with a 403, but if they have both read and browse privileges it fails with a 400! *Acceptance* If the REST API upload fails due to permissions Nexus should always return 403 (forbidden). {code:java} $ curl -v -F ""nuget.asset=@NuGet.CommandLine.4.6.2.nupkg"" ""http://localhost:8081/service/rest/v1/components?repository=nuget-hosted"" -u test:test * Trying ::1... * 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) * Server auth using Basic with user 'test' > POST /service/rest/v1/components?repository=nuget-hosted HTTP/1.1 > Host: localhost:8081 > Authorization: Basic dGVzdDp0ZXN0 > User-Agent: curl/7.54.0 > Accept: */* > Content-Length: 1686723 > Expect: 100-continue > Content-Type: multipart/form-data; boundary=------------------------c3fab955e8f61014 > < HTTP/1.1 100 Continue < HTTP/1.1 404 Not Found < Date: Mon, 10 Sep 2018 14:28:36 GMT < Server: Nexus/3.13.0-01 (PRO) < X-Content-Type-Options: nosniff < X-Siesta-FaultId: 2df77cde-4406-4288-9658-ba7b7ab09f4b < Content-Length: 0 * HTTP error before end of send, stop sending < * Closing connection 0 {code}",1
+"NEXUS-18058","09/14/2018 18:18:48","Firewall Audit: re-evaluate when no transaction exists for pending asset","When a pending asset does not have a corresponding firewall transaction, create one and continue with evaluation.",2
+"NEXUS-18078","09/19/2018 18:58:05","Dynamic Storage - Blob store incorrectly displays Enable Soft Quota as checked","Blob stores show that Soft Quota is enabled when they are not. This happens when a periodic quota check job runs and tires to access the config from the blob stores attributes. Calling the attributes method on the BlobStoreConfiguration object has a side effect of changing the backing map. Our view objects determine if it is enabled by simply evaluating if the config is null. Possible solutions: * Calling attributes should not have side effects. (This seems like the best route) * Checking to see if the option is enabled could check for more than null * Save the enabled state separate from the config",1
+"NEXUS-18083","09/20/2018 17:30:10","potential slow processing of concurrent nuget requests using FindPackagesById()","Concurrent processing of Nuget gallery types of requests using ""FindPackagesById()"" queries may become increasingly slow, potentially failing builds. These types of queries have at least two impacts. # They lease all of the available HTTP outbound connections per route ( proxy repository remote host, currently 20 per route as of 3.13.0), impacting any other inbound requests that will also require an outbound HTTP request for that same proxy repository route in order to complete work. # They potentially steal all of the available component database connections available for the entire repository instance ( currently 25 as of 3.13.0 ), impacting other non-related requests that also need a database connection to perform work. The problem is exasperated when * the parallel processing feature of a NuGet or MSBuild client is used so that concurrent requests are sent to the same Nexus instance from the same build * a Nuget build is configured with more than one source gallery instead of just a single Nexus group repository or single proxy repository * the nexus host is a virtual machine or one with limited I/O resources such as one being run in a cloud service - the network I/O capacity could have considerable impact on triggering this issue {code:title=Example Request Format} ""GET /repository/nuget-group/FindPackagesById()?id='Microsoft.AspNetCore.Hosting' HTTP/1.0"" {code} Examining Nexus thread dumps taken at the time of concurrent requests may reveal two types of bottlenecks. h4. Bottleneck 1: HTTPClient Connection Pool Leases A high number of waiting threads trying to lease an outbound HTTP connection from the Nuget proxy repository outbound HTTP connection pool. The 20 available connections are already leased by running threads. {noformat:title=Example waiting thread on outbound Nuget HTTP connections} qtp993807585-20058 id=20058 state=TIMED_WAITING - waiting on <0x106a98ec> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) - locked <0x106a98ec> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.parkUntil(Unknown Source) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitUntil(Unknown Source) at org.apache.http.pool.AbstractConnPool.getPoolEntryBlocking(AbstractConnPool.java:378) at org.apache.http.pool.AbstractConnPool.access$200(AbstractConnPool.java:69) at org.apache.http.pool.AbstractConnPool$2.get(AbstractConnPool.java:246) at org.apache.http.pool.AbstractConnPool$2.get(AbstractConnPool.java:193) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.leaseConnection(PoolingHttpClientConnectionManager.java:303) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$1.get(PoolingHttpClientConnectionManager.java:279) at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:191) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185) at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111) at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72) at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.lambda$0(FilteredHttpClientSupport.java:56) at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport$$Lambda$406/1505474857.call(Unknown Source) at org.sonatype.nexus.repository.httpclient.internal.BlockingHttpClient.filter(BlockingHttpClient.java:116) at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.doExecute(FilteredHttpClientSupport.java:56) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) at com.sonatype.nexus.repository.nuget.internal.NugetFeedFetcher.getPayload(NugetFeedFetcher.java:160) at com.sonatype.nexus.repository.nuget.internal.NugetFeedFetcher.cachePackageFeed(NugetFeedFetcher.java:77) at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport$FeedLoader.call(NugetRemoteGalleryFacetSupport.java:392) at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport.passQueryToRemoteRepos(NugetRemoteGalleryFacetSupport.java:327) at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport.feed(NugetRemoteGalleryFacetSupport.java:206) at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.feed(NugetFeedHandler.java:69) at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.doHandle(NugetFeedHandler.java:49) at com.sonatype.nexus.repository.nuget.internal.AbstractNugetHandler.handle(AbstractNugetHandler.java:46) at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.handle(NugetFeedHandler.java:1) {noformat} h4. Bottleneck 2: Database Connection Pool Exhaustion and Internal Record Locking {noformat:title=Nuget Gallery Database WAITING Thread on finding component} qtp993807585-20080 sql.select from component where (ci_name = :p0 AND version = :p1) and (bucket=#13:25) id=20080 state=WAITING - waiting on <0x6cdcbf25> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) - locked <0x6cdcbf25> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) at sun.misc.Unsafe.park(Native Method) 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$NonfairSync.lock(Unknown Source) at java.util.concurrent.locks.ReentrantLock.lock(Unknown Source) at com.orientechnologies.common.collection.closabledictionary.OClosableEntry.acquireStateLock(OClosableEntry.java:84) at com.orientechnologies.common.collection.closabledictionary.OClosableLinkedContainer.acquire(OClosableLinkedContainer.java:292) at com.orientechnologies.orient.core.storage.cache.local.OWOWCache.getFilledUpTo(OWOWCache.java:959) at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.getFilledUpTo(ODurableComponent.java:132) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecordBuffer(OPaginatedCluster.java:762) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:742) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:721) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doReadRecord(OAbstractPaginatedStorage.java:4220) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:3807) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:1410) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx$SimpleRecordReader.readRecord(ODatabaseDocumentTx.java:3395) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeReadRecord(ODatabaseDocumentTx.java:2008) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:656) 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:203) 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: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.storage.MetadataNodeEntityAdapter.browseByQuery(MetadataNodeEntityAdapter.java:202) at org.sonatype.nexus.repository.storage.MetadataNodeEntityAdapter.browseByQuery(MetadataNodeEntityAdapter.java:170) at org.sonatype.nexus.repository.storage.StorageTxImpl.findComponents(StorageTxImpl.java:449) at org.sonatype.nexus.repository.storage.StorageTxImpl.findComponents(StorageTxImpl.java:455) at sun.reflect.GeneratedMethodAccessor269.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$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.$Proxy225.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:800) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.findOrCreateComponent(NugetLocalGalleryFacetSupport.java:790) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.createOrUpdateComponent(NugetLocalGalleryFacetSupport.java:725) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.putMetadata(NugetLocalGalleryFacetSupport.java:310) at com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyGalleryFacet$$EnhancerByGuice$$d8e9779b.CGLIB$putMetadata$25() at com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyGalleryFacet$$EnhancerByGuice$$d8e9779b$$FastClassByGuice$$c1b28c7a.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$$d8e9779b.putMetadata() at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport$FeedLoader$1.consume(NugetRemoteGalleryFacetSupport.java:396) 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:392) at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport.passQueryToRemoteRepos(NugetRemoteGalleryFacetSupport.java:327) at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport.feed(NugetRemoteGalleryFacetSupport.java:206) at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.feed(NugetFeedHandler.java:69) at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.doHandle(NugetFeedHandler.java:49) at com.sonatype.nexus.repository.nuget.internal.AbstractNugetHandler.handle(AbstractNugetHandler.java:46) at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.handle(NugetFeedHandler.java:1) {noformat} {noformat:title=Nuget Gallery Database WAITING Orderby Thread} qtp993807585-20116 sql.select from asset where (component.ci_name = :p0) and (bucket=#13:0 or bucket=#13:25) ORDER BY attributes.nuget.download_count DESC, component.ci_name ASC, component.version ASC LIMIT 40 id=20116 state=RUNNABLE at java.util.WeakHashMap.hash(Unknown Source) at java.util.WeakHashMap.get(Unknown Source) at com.orientechnologies.orient.core.cache.ORecordCacheWeakRefs.get(ORecordCacheWeakRefs.java:44) at com.orientechnologies.orient.core.cache.OLocalRecordCache.updateRecord(OLocalRecordCache.java:66) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeReadRecord(ODatabaseDocumentTx.java:2034) at com.orientechnologies.orient.core.tx.OTransactionOptimistic.loadRecord(OTransactionOptimistic.java:187) at com.orientechnologies.orient.core.tx.OTransactionOptimistic.loadRecord(OTransactionOptimistic.java:162) at com.orientechnologies.orient.core.tx.OTransactionOptimistic.loadRecord(OTransactionOptimistic.java:291) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:1725) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:103) at com.orientechnologies.orient.core.id.ORecordId.getRecord(ORecordId.java:329) at com.orientechnologies.orient.core.sql.method.misc.OSQLMethodField.execute(OSQLMethodField.java:62) at com.orientechnologies.orient.core.sql.method.OSQLMethodRuntime.execute(OSQLMethodRuntime.java:139) at com.orientechnologies.orient.core.sql.filter.OSQLFilterItemAbstract.transformValue(OSQLFilterItemAbstract.java:140) at com.orientechnologies.orient.core.sql.filter.OSQLFilterItemField.getValue(OSQLFilterItemField.java:138) at com.orientechnologies.orient.core.sql.filter.OSQLFilterCondition.evaluate(OSQLFilterCondition.java:379) at com.orientechnologies.orient.core.sql.filter.OSQLFilterCondition.evaluate(OSQLFilterCondition.java:88) at com.orientechnologies.orient.core.sql.filter.OSQLFilterCondition.evaluate(OSQLFilterCondition.java:384) at com.orientechnologies.orient.core.sql.filter.OSQLFilterCondition.evaluate(OSQLFilterCondition.java:88) at com.orientechnologies.orient.core.sql.filter.OSQLFilter.evaluate(OSQLFilter.java:105) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.evaluateRecord(OCommandExecutorSQLResultsetAbstract.java:414) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.filter(OCommandExecutorSQLResultsetAbstract.java:404) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearchRecord(OCommandExecutorSQLSelect.java:609) 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) 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.storage.MetadataNodeEntityAdapter.browseByQuery(MetadataNodeEntityAdapter.java:202) at org.sonatype.nexus.repository.storage.MetadataNodeEntityAdapter.browseByQuery(MetadataNodeEntityAdapter.java:170) at org.sonatype.nexus.repository.storage.StorageTxImpl.findAssets(StorageTxImpl.java:371) at org.sonatype.nexus.repository.storage.StorageTxImpl.findAssets(StorageTxImpl.java:377) at sun.reflect.GeneratedMethodAccessor268.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$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.$Proxy225.findAssets(Unknown Source) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.findAssetsForQuery(NugetLocalGalleryFacetSupport.java:244) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.queryFeed(NugetLocalGalleryFacetSupport.java:211) at com.sonatype.nexus.repository.nuget.internal.NugetGroupGalleryFacet$$EnhancerByGuice$$e42c13d9.CGLIB$queryFeed$27() at com.sonatype.nexus.repository.nuget.internal.NugetGroupGalleryFacet$$EnhancerByGuice$$e42c13d9$$FastClassByGuice$$8717b62f.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.NugetGroupGalleryFacet$$EnhancerByGuice$$e42c13d9.queryFeed() at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport.feed(NugetRemoteGalleryFacetSupport.java:211) at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.feed(NugetFeedHandler.java:69) at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.doHandle(NugetFeedHandler.java:49) at com.sonatype.nexus.repository.nuget.internal.AbstractNugetHandler.handle(AbstractNugetHandler.java:46) at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.handle(NugetFeedHandler.java:1) {noformat} {noformat:title=RUNNABLE db query expunging weak references} qtp993807585-20176 sql.select from component where (ci_name = :p0 AND version = :p1) and (bucket=#13:25) id=20176 state=RUNNABLE at java.util.WeakHashMap.expungeStaleEntries(Unknown Source) at java.util.WeakHashMap.getTable(Unknown Source) at java.util.WeakHashMap.get(Unknown Source) at com.orientechnologies.orient.core.cache.ORecordCacheWeakRefs.get(ORecordCacheWeakRefs.java:44) at com.orientechnologies.orient.core.cache.OLocalRecordCache.updateRecord(OLocalRecordCache.java:66) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeReadRecord(ODatabaseDocumentTx.java:2034) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:656) 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:203) 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: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.storage.MetadataNodeEntityAdapter.browseByQuery(MetadataNodeEntityAdapter.java:202) at org.sonatype.nexus.repository.storage.MetadataNodeEntityAdapter.browseByQuery(MetadataNodeEntityAdapter.java:170) at org.sonatype.nexus.repository.storage.StorageTxImpl.findComponents(StorageTxImpl.java:449) at org.sonatype.nexus.repository.storage.StorageTxImpl.findComponents(StorageTxImpl.java:455) at sun.reflect.GeneratedMethodAccessor269.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$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.$Proxy225.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:800) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.findOrCreateComponent(NugetLocalGalleryFacetSupport.java:790) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.createOrUpdateComponent(NugetLocalGalleryFacetSupport.java:725) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.putMetadata(NugetLocalGalleryFacetSupport.java:310) {noformat} {noformat:title=Acquiring exclusive lock} qtp993807585-20180 sql.select from component where (ci_name = :p0 AND version = :p1) and (bucket=#13:25) id=20180 state=WAITING - waiting on <0x7aac32e3> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) - locked <0x7aac32e3> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) at sun.misc.Unsafe.park(Native Method) 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.ReentrantReadWriteLock$WriteLock.lock(Unknown Source) 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:355) 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:145) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecordBuffer(OPaginatedCluster.java:766) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:742) at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:721) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doReadRecord(OAbstractPaginatedStorage.java:4220) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:3807) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:1410) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx$SimpleRecordReader.readRecord(ODatabaseDocumentTx.java:3395) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeReadRecord(ODatabaseDocumentTx.java:2008) at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:656) 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:203) 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: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.storage.MetadataNodeEntityAdapter.browseByQuery(MetadataNodeEntityAdapter.java:202) at org.sonatype.nexus.repository.storage.MetadataNodeEntityAdapter.browseByQuery(MetadataNodeEntityAdapter.java:170) at org.sonatype.nexus.repository.storage.StorageTxImpl.findComponents(StorageTxImpl.java:449) at org.sonatype.nexus.repository.storage.StorageTxImpl.findComponents(StorageTxImpl.java:455) {noformat} h4. Limited Workaround One should attempt to limit the concurrent requests to nuget-proxy repositories _from the same build command._ For example if nuget restore or nuget install is being used, one may pass the {{\-DisableParallelProcessing}} argument: {code} nuget restore -DisableParallelProcessing {code} For *dotnet* CLI the argument is {noformat} --disable-parallel {noformat} Reference: https://github.com/dotnet/docs/blob/master/docs/core/tools/dotnet-restore.md For *nuget* CLI the argument is {noformat} -DisableParallelProcessing {noformat} Reference: https://docs.microsoft.com/en-us/nuget/tools/cli-ref-restore Related: https://github.com/NuGet/Home/issues/1556 https://docs.microsoft.com/en-us/nuget/tools/cli-ref-restore#options https://docs.microsoft.com/en-us/nuget/tools/cli-ref-install#options Also only configure your builds to access a single nuget group per Nexus instance used. ",0
+"NEXUS-18100","09/24/2018 17:17:31","LDAP UI does not reflect configuration","The option 'Use certificates stored in the Nexus truststore to connect to external systems' does not get reflected correctly in the UI. Steps to reproduce: 1. Create a new LDAP connection and check the box to 'Use certificates stored in the Nexus truststore to connect to external systems' 2. Save the connection 3. Refresh the page 4. View that the box is no longer checked but the data in orientdb is correct. The side effect of this is if you try to verify the connection it uses the state from the UI to test the connection and not the state on the backend so it will fail for SSL connections.",2
+"NEXUS-18117","09/28/2018 10:17:02","PyPI ignoring python_requires metadata","The full details are discussed in this github issue: [https://github.com/Azure/azure-sdk-for-python/issues/3447]. PyPI uses `python_requires` metadata to communicate that a python package is only required for a particular version of python. It appears that nexus is not acting on this metadata so when I do a pip install packages are being pulled which shouldn't be which prevents the install from completing. As detailed in the github issue there's a relatively simple workaround for my current problem. However I'm unsure these workarounds will work with more complex dependencies.",0
+"NEXUS-18132","10/01/2018 15:38:24","specially crafted ldap queries can blacklist LDAP servers on javax.naming.directory.InvalidSearchFilterException","It is possible that a specially crafted LDAP user lookup can invoke the built in blacklisting of configured LDAP servers in Nexus 3, triggering an outage period equivalent to the retry delay configured for the LDAP server. When the server is in this temporary blacklisted state, all LDAP queries are bypassed for that server configuration, thereby affecting LDAP authentication and authorization requests for that server. h4. h4. Expected A configured LDAP server should not be blacklisted due to a scenario where no LDAP connection attempt was made, as is the case when client side LDAP query validation determines that the attempted query is syntactically invalid and an *javax.naming.directory.InvalidSearchFilterException* is thrown. ",1
+"NEXUS-18134","10/01/2018 19:11:03"," The blobStore.getBlobStoreManager().delete() API allows for deleting blob stores that are in use","Reproduce steps: # Fire up Nexus 3.13.0 with default configuration. # Go to system/tasks, and create a new execute script task. # For the script text use: blobStore.getBlobStoreManager().delete('default') # Run the script Observe that the default blob store is deleted, even though it is in use by many repositories. *Expected*: The API should make the same validation checks the UI does, and prevent deleting blob stores that are in use by repositories.",1
+"NEXUS-18187","10/11/2018 18:42:44","Pypi proxy of https://bloomberg.bintray.com/pip does not work"," Create a pypi proxy of [https://bloomberg.bintray.com/pip] in Nexus Repo 3.13.0, and try to download the ""blpapi"" package from it using pip. This will fail. The nexus.log shows: {quote}2018-10-11 14:02:55,123-0300 WARN [qtp370829994-301] *UNKNOWN org.sonatype.nexus.repository.pypi.internal.PyPiIndexUtils - Found unexpected PyPI link format, skipping: blpapi-3.9.2-cp27-cp27m-win32.whl 2018-10-11 14:02:55,124-0300 WARN [qtp370829994-301] *UNKNOWN org.sonatype.nexus.repository.pypi.internal.PyPiIndexUtils - Found unexpected PyPI link format, skipping: blpapi-3.9.2-cp27-cp27m-win_amd64.whl 2018-10-11 14:02:55,124-0300 WARN [qtp370829994-301] *UNKNOWN org.sonatype.nexus.repository.pypi.internal.PyPiIndexUtils - Found unexpected PyPI link format, skipping: blpapi-3.9.2-cp35-cp35m-win32.whl {quote} The issue can be seen in the HTML source of [https://bloomberg.bintray.com/pip/simple/blpapi:] {code:java}
{code} Note that the packages are not under a ""/packages"" directory. Our code is explicitly looking for that, and will not download anything that is not in a ""/packages"" location: [https://github.com/sonatype/nexus-public/blob/release-3.13.0-01/plugins/nexus-repository-pypi/src/main/java/org/sonatype/nexus/repository/pypi/internal/PyPiIndexUtils.java#L130] *Expected*: A Nexus Repo 3 pypi proxy should be able to proxy anything pip can download.",5
+"NEXUS-18196","10/12/2018 14:15:49","ArrayIndexOutOfBoundsException when uploading large POM","Deploy fails when parsing (large) pom due to ArrayIndexOutOfBoundsException: {quote}org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: PUT /repository/maven-releases/x123/x123/0.0.1/x123-0.0.1.pom java.lang.ArrayIndexOutOfBoundsException: 8213 at org.codehaus.plexus.util.xml.pull.MXParser.parsePI(MXParser.java:2502) at org.codehaus.plexus.util.xml.pull.MXParser.nextImpl(MXParser.java:1283) at org.codehaus.plexus.util.xml.pull.MXParser.next(MXParser.java:1131) at org.apache.maven.model.io.xpp3.MavenXpp3Reader.nextTag(MavenXpp3Reader.java:528) at org.apache.maven.model.io.xpp3.MavenXpp3Reader.parsePluginExecution(MavenXpp3Reader.java:2888) at org.apache.maven.model.io.xpp3.MavenXpp3Reader.parsePlugin(MavenXpp3Reader.java:2701) at org.apache.maven.model.io.xpp3.MavenXpp3Reader.parseBuildBase(MavenXpp3Reader.java:1069) at org.apache.maven.model.io.xpp3.MavenXpp3Reader.parseProfile(MavenXpp3Reader.java:3069) at org.apache.maven.model.io.xpp3.MavenXpp3Reader.parseModel(MavenXpp3Reader.java:2257) at org.apache.maven.model.io.xpp3.MavenXpp3Reader.read(MavenXpp3Reader.java:3807) at org.apache.maven.model.io.xpp3.MavenXpp3Reader.read(MavenXpp3Reader.java:557) at org.apache.maven.model.io.xpp3.MavenXpp3Reader.read(MavenXpp3Reader.java:586) at org.sonatype.nexus.repository.maven.internal.MavenModels.readModel(MavenModels.java:133) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.fillInFromModel(MavenFacetImpl.java:376) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.putArtifact(MavenFacetImpl.java:327) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.doPutAssetBlob(MavenFacetImpl.java:296) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.doPut(MavenFacetImpl.java:249) 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.maven.internal.MavenFacetImpl.put(MavenFacetImpl.java:201) {quote} To reproduce deploy the attached pom file to a maven repo on a 3.13 instance: {{mvn deploy:deploy-file -DgeneratePom=false -DrepositoryId=nexus -Durl=[http://localhost:8081/repository/maven-releases] -DpomFile=pom.xml -Dfile=pom.xml}} +Acceptance+ Looks to be related/caused by [https://issues.apache.org/jira/browse/MNG-6216] and [https://github.com/codehaus-plexus/plexus-utils/issues/22] and an update is needed to plexus-util 3.1.0",3
+"NEXUS-18227","10/17/2018 12:50:29","RPMs with non-zero epoch are incorrectly recorded in primary.xml in hosted repositories","RPMs with non-zero epoch have missing epoch attribute in element of the primary.xml database. This causes yum to fail during depsolve when such packages are being used. Specific case: I have a subset of packages from official centos7 repositories that I keep in a hosted yum repository. The failing package is dhclient (which uses epoch value ""12""), resolved as a dependency of NetworkManager. Comparsion of primary.xml from nexus with the one created by createrepo shows the differences. Both files are attached.",2
+"NEXUS-18234","10/18/2018 18:54:45","provide a health endpoint for an individual node in an HA-C cluster","HA-C consists of nodes, each node being an Nexus instance. It is common practice to put a load balancer in front of an HA-C cluster. It is anticipated one node may be deliberately brought offline while the others remain functioning. A load balancer needs to reliably determine the health of an individual node in order to reroute requests to available nodes. Our [documentation|https://help.sonatype.com/repomanager3/high-availability/operating-your-cluster#Operatingyourcluster-MonitoringNodeHealth] currently suggests using: http://:/service/metrics/data but that endpoint - requires authentication, unless the anonymous user is granted access - returns a lot of data irrelevant to server health and not appropriate for an anonymous user h4. Expected Each node in an HA-C cluster should expose an endpoint that can be used by a load balancer to determine the ""health"" of the node with regards to its ability to participate in spreading the work of incoming cluster load. As a guideline, the endpoint should meet the requirements for ""health checks"" as defined by common load balancers such as ELB and nginx: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-healthchecks.html https://docs.nginx.com/nginx/admin-guide/load-balancer/http-health-check/ https://httpd.apache.org/docs/2.4/mod/mod_proxy_hcheck.html Example - anything other than a HTTP 200 status code indicates the node is not ready to do work - require no authentication by default, but MAY have a privilege specific to the endpoint - the endpoint MAY provide a response body that provides information about health, but in order to determine health, it MUST NOT be required that the client actually parse this response body - HTTP should be the primary protocol, on the main HTTP(S) connector of the Nexus instance, used to check node health, since this greatly simplifies navigating firewalls - if the cluster/node is read-only, document if this affects the status code as far as a load balancer is concerned",3
+"NEXUS-18252","10/23/2018 15:29:55","repository manager will not start on blobstore problems or errors","As an admin, I need for NXRM to launch even in the event that a blobstore is unavailable. Currently, if you are using an S3 blobstore and AWS is unavailable or your access keys have expired, then NXRM will not launch. S3 is not the only potential problem, if a blobstore is configured to point to an NFS mount point that is not mounted, then NXRM may fail to launch. *Acceptance Criteria* * NXRM launches even if blobstores are not available",2
+"NEXUS-18254","10/23/2018 15:33:22","Allow blobstore configuration updates when changes are necessary","Currently, blobstore configuration is immutable. However, there are situations where the blobstore configuration needs to be changed. For instance, if the NXRM admin configured an S3 blobstore with a set of access keys that have been compromised. In this case, the admin would need to update the access keys in the blobstore configuration. As an NXRM admin, I need to be able to make changes to the blobstore configuration so that I can correct potential configuration errors so that I can bring a blobstore back online. *Acceptance Criteria* * if a blobstore is offline, the configuration of the blobstore can be updated * Quota config should only be editable when the user selects editing mode per NEXUS-18317",2
+"NEXUS-18260","10/23/2018 23:39:58","Nexus Platform Plugin cannot determine Nexus 3 status when Anonymous access is disabled","# Start 3.13.0 # *Disable Anonymous access by unchecking the Enabled checkbox* # Using Jenkins 2.121.1 + Nexus Platform Plugin 3.3.2, try to configure the nexus 3 connection. ## Enter the Server name ## Enter the Server ID ## Enter the server URL ( [http://localhost:8081|http://localhost:8081/] ) and tab away from or click away from the Server URL field. The platform plugin sends a request to Nexus without credentials and gets a 403 response from Nexus. {noformat} 127.0.0.1 - - [23/Oct/2018:19:21:06 -0300] ""GET /service/rest/wonderland/status HTTP/1.1"" 403 - 0 5 ""Java/1.8.0_181"" ||| {Accept=text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2, Connection=keep-alive, Host=localhost:8081, User-Agent=Java/1.8.0_181} {noformat} As a result, The jenkins plugin displays a yellow warning in the UI. Now choose valid credentials in order to correct the problem: 1. Choose valid credentials in the credential dropdown or create these on the fly. 2. Choose Test Connection. The Connection should work. *Meanwhile the yellow warning text remains.* 3. Click inside the Server URL field. Change the value to [http://localhost:123|http://localhost:123/] ( invalid) . Tab or click away. Yellow message remains. 4. Correct the server URL back to [http://localhost:8081|http://localhost:8081/]. Tab or click away. Nexus receives another request like this which does not use you already verified valid credentials. {noformat} 127.0.0.1 - - [23/Oct/2018:19:30:11 -0300] ""GET /service/rest/wonderland/status HTTP/1.1"" 403 - 0 3 ""Java/1.8.0_181"" ||| {Accept=text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2, Connection=keep-alive, Host=localhost:8081, User-Agent=Java/1.8.0_181} {noformat} h4. Expected One of the ""Notes"" in -NEXUS-17303- was ""version info should be available without auth"". When Nexus has anonymous disabled ( reproduce step 2 ) this requirement is not satisfied. Also see NEXUS-18274 for interaction redesign proposals.",3
+"NEXUS-18261","10/23/2018 23:53:23","Hosted yum metadata not rebuilding due to parsing issues in the path being queried","The metadata for a hosted yum repo is not rebuilding. Errors are recorded in the Nexus log which indicate a problem parsing a Windows directory name within the SQL query: {code:java} 2018-10-23 08:45:50,819-0400 ERROR [event-9-thread-16696] userName com.google.common.eventbus.EventBus.nexus.async - Could not dispatch event org.sonatype.nexus.repository.yum.internal.createrepo.YumMetadataInvalidationEvent@66a24be8 to subscriber org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl$$EnhancerByGuice$$c129f0da@209ab432 method [public void org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl.on(org.sonatype.nexus.repository.yum.internal.createrepo.YumMetadataInvalidationEvent)] com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error parsing query: select from asset where (component IS NULL AND name LIKE 'SNA\el7\repodata%' AND attributes.yum.asset_kind = :p0) and (bucket=#11:71) DB name=""component"" {code} ",3
+"NEXUS-18262","10/23/2018 23:59:07","Nexus Platform Plugin repository manager compatibility check does not use Jenkins configured HTTP proxy server","Configure an HTTP proxy server in Jenkins Try to add a new Nexus 3 connection inside Jenkins. After you enter the Server URL and tab or click away, an HTTP request is sent to /service/rest/wonderland/status However the request is NOT sent through the configured Jenkins HTTP proxy server. h4. Expected The Nexus Platform Plugin should respect the HTTP proxy settings of the Jenkins server in all outbound HTTP requests it makes. This could be caused indirectly by it using URLConnection instead of the built in HTTPClient library. Also relevant is the value in the check itself: NEXUS-18260",3
+"NEXUS-18263","10/24/2018 17:35:49","docker proxy repositories configured with a remote URL including extra path info will not proxy correctly","h4. Problem Docker proxy repositories in Nexus 3.14.0 do not successfully proxy content in a docker hosted repository in Nexus 3.14.0 when the remote URL of the proxy repository includes extra path info. Example: Docker Proxy Remote URL: http://192.168.2.73:8081/repository/docker-hosted {noformat:title=Logging from Nexus 3.13.0 which shows a successful proxy of docker content} 2018-10-24 13:14:00,822-0300 INFO [qtp2079105816-225] admin org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl - Invalidating proxy caches of docker-proxy 2018-10-24 13:14:07,622-0300 DEBUG [qtp2079105816-186] admin org.sonatype.nexus.httpclient.outbound - http://192.168.2.73:8081/repository/docker-hosted/v2/hello-world/manifests/latest > GET /repository/docker-hosted/v2/hello-world/manifests/latest HTTP/1.1 2018-10-24 13:14:07,630-0300 DEBUG [qtp2079105816-186] admin org.sonatype.nexus.httpclient.outbound - http://192.168.2.73:8081/repository/docker-hosted/v2/hello-world/manifests/latest < HTTP/1.1 200 OK @ 7.711 ms 2018-10-24 13:14:07,630-0300 INFO [qtp2079105816-186] admin org.sonatype.nexus.repository.httpclient.internal.HttpClientFacetImpl - Repository status for docker-proxy changed from READY to AVAILABLE - reason n/a for n/a 2018-10-24 13:14:07,682-0300 INFO [elasticsearch[3A375783-7FDD90D8-4B372B08-E9E9D13D-0E5F7F54][clusterService#updateTask][T#1]] *SYSTEM org.elasticsearch.cluster.metadata - [3A375783-7FDD90D8-4B372B08-E9E9D13D-0E5F7F54] [2e558aa1029f36cea9ed93e744bf70bea008fe46] update_mapping [component] 2018-10-24 13:14:17,489-0300 DEBUG [qtp2079105816-61] admin org.sonatype.nexus.httpclient.outbound - http://192.168.2.73:8081/repository/docker-hosted/v2/hello-world/manifests/8.11.2-slim > GET /repository/docker-hosted/v2/hello-world/manifests/8.11.2-slim HTTP/1.1 2018-10-24 13:14:17,497-0300 DEBUG [qtp2079105816-61] admin org.sonatype.nexus.httpclient.outbound - http://192.168.2.73:8081/repository/docker-hosted/v2/hello-world/manifests/8.11.2-slim < HTTP/1.1 200 OK @ 8.334 ms {noformat} ---- {noformat:title=Logging from 3.14.0 which shows an unsuccessful proxy of content} 2018-10-24 13:23:57,356-0300 DEBUG [qtp2017082791-217] admin org.sonatype.nexus.httpclient.outbound - http://192.168.2.73:8081/repository/docker-hosted/v2/hello-world/manifests/latest > GET /repository/docker-hosted/v2/hello-world/manifests/latest HTTP/1.1 2018-10-24 13:23:57,389-0300 DEBUG [qtp2017082791-217] admin org.sonatype.nexus.httpclient.outbound - http://192.168.2.73:8081/repository/docker-hosted/v2/hello-world/manifests/latest < HTTP/1.1 200 OK @ 32.87 ms 2018-10-24 13:23:57,389-0300 INFO [qtp2017082791-217] admin org.sonatype.nexus.repository.httpclient.internal.HttpClientFacetImpl - Repository status for docker-proxy-3.14 changed from READY to AVAILABLE - reason n/a for n/a 2018-10-24 13:23:57,424-0300 DEBUG [qtp2017082791-217] admin org.sonatype.nexus.httpclient.outbound - http://192.168.2.73:8081/v2/hello-world/manifests/sha256:1a6fd470b9ce10849be79e99529a88371dff60c60aab424c077007f6979b4812 > GET /v2/hello-world/manifests/sha256:1a6fd470b9ce10849be79e99529a88371dff60c60aab424c077007f6979b4812 HTTP/1.1 2018-10-24 13:23:57,443-0300 DEBUG [qtp2017082791-217] admin org.sonatype.nexus.httpclient.outbound - http://192.168.2.73:8081/v2/hello-world/manifests/sha256:1a6fd470b9ce10849be79e99529a88371dff60c60aab424c077007f6979b4812 < HTTP/1.1 404 Not Found @ 18.47 ms 2018-10-24 13:23:57,444-0300 WARN [qtp2017082791-217] admin org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl - Could not parse error response Unexpected character ('<' (code 60)): expected a valid value (number, String, array, object, 'true', 'false' or 'null') at [Source: (org.apache.http.conn.EofSensorInputStream); line: 2, column: 2] 2018-10-24 13:23:57,451-0300 ERROR [qtp2017082791-217] admin org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl - Could not fetch the tag latest by its digest sha256:1a6fd470b9ce10849be79e99529a88371dff60c60aab424c077007f6979b4812 org.sonatype.nexus.repository.docker.internal.V2Exception: unknown at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.execute(DockerProxyFacetImpl.java:344) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:405) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.fetchTagDigestByContentDigest(DockerProxyFacetImpl.java:928) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.doPutManifestByTag(DockerProxyFacetImpl.java:781) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl$$EnhancerByGuice$$6f7866e2.CGLIB$doPutManifestByTag$16() at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl$$EnhancerByGuice$$6f7866e2$$FastClassByGuice$$9ac225a.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.docker.internal.DockerProxyFacetImpl$$EnhancerByGuice$$6f7866e2.doPutManifestByTag() at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.putManifestByTag(DockerProxyFacetImpl.java:767) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.putManifest(DockerProxyFacetImpl.java:754) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.storeByAssetKind(DockerProxyFacetImpl.java:244) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.store(DockerProxyFacetImpl.java:213) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.doGet(ProxyFacetSupport.java:247) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.doGet(DockerProxyFacetImpl.java:851) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.lambda$1(ProxyFacetSupport.java:234) at org.sonatype.nexus.common.io.CooperatingFuture.performCall(CooperatingFuture.java:122) at com.sonatype.nexus.hazelcast.internal.io.DistributedCooperatingFuture.performCall(DistributedCooperatingFuture.java:50) at org.sonatype.nexus.common.io.CooperatingFuture.call(CooperatingFuture.java:64) at org.sonatype.nexus.common.io.ScopedCooperationFactorySupport$ScopedCooperation.cooperate(ScopedCooperationFactorySupport.java:99) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:225) at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:50) 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.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure16.doCall(V2Handlers.groovy:269) 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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy176.handle(Unknown Source) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:59) 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.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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy176.handle(Unknown Source) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:56) 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.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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy176.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.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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy176.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.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure17.doCall(V2Handlers.groovy:285) 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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1099) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy176.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.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure20.doCall(V2Handlers.groovy:475) 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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy176.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:210) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:172) 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.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:80) 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:101) 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:1634) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) 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:257) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) 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:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) 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:531) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680) at java.lang.Thread.run(Thread.java:748) 2018-10-24 13:23:57,462-0300 WARN [qtp2017082791-217] admin org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/hello-world/manifests/latest: 400 - org.sonatype.nexus.repository.docker.internal.V2Exception$DigestInvalidByMismatch: provided digest did not match uploaded content {noformat} h4. Diagnosis The issue seems to be the extra path info of {{/repository/docker-hosted/}} in the docker proxy repository URL is stripped off before the outbound request for the layer manifest is retrieved. This means it receives HTML content from a 400 error response instead of the actual docker content. h4. Workaround If possible, change the Proxy repository Remote URL to not use extra path info. ie. 1. Setup the remote repository to listen on a specific connector port so that it can be accessed at a root path context 2. Change the proxy repository URL to that remote specific port and remove the extra path info. When implementing the workaround, be cautious of the potential performance penalty of extra HTTP connectors in the remote Nexus 3 as described in NEXUS-16565.",5
+"NEXUS-18285","10/29/2018 18:22:06","Nexus Platform Plugin for Jenkins fails to send any authorization headers over HTTPS to Nexus Repository Manager","Configure Nexus Platform Plugin for Jenkins failing to connect and perform operations against a Nexus Repository manager version 3.x server at a URL using HTTPS instead of plain HTTP. Operations will *fail to send* the configured credentials, even though the credentials are valid. This affects all versions of the Jenkins Platform Plugin from 3.2.20180724-142843.2f5144d to 3.3.20181025-134249.614c5f4 ( see https://wiki.jenkins.io/display/JENKINS/Nexus+Platform+Plugin ). ",2
+"NEXUS-18304","11/01/2018 19:34:56","Docker content validation against certain Etag header value formats may fail","The content validation added via ----NEXUS-16242---- uses the ETag header. Dockerhub always returns ETag in the ""algorithm:checksum"" format. But in general the format of the Etag header cannot be relied on, it's just a generic identifier. This causes our validation to break when the ETag is in a format which is not compatible with Docker digests: Example received header: {quote}2018-11-01 18:24:37,850+0000 DEBUG [qtp639366847-55651] example org.apache.http.headers - http-outgoing-42 << _ETag: b558e108382f75d3cb440cec3bdaca8fa4bbfe30_ {quote} The exception caused by this in a Docker proxy repository: {quote}2018-11-01 18:24:37,861+0000 WARN [qtp639366847-55651] example org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/build/asap/manifests/latest java.lang.IllegalArgumentException: Digest must be formed as 'alg:hex': b558e108382f75d3cb440cec3bdaca8fa4bbfe30 at com.google.common.base.Preconditions.checkArgument(Preconditions.java:210) at org.sonatype.nexus.repository.docker.internal.DockerDigest.parse(DockerDigest.java:71) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.fetchTagDigestByContentDigest(DockerProxyFacetImpl.java:916) {quote} FWIW, it seems the Docker-Content-Digest's format can be relied on: [https://docs.docker.com/registry/spec/api/#content-digests] {quote}2018-11-01 18:24:37,851+0000 DEBUG [qtp639366847-55651] example org.apache.http.headers - http-outgoing-42 << Docker-Content-Digest: sha256:9030d11b2bf8181a39b010c27359a7557c753c7f5272211ca2c12ec02656a25b {quote} *Note that this problem causes a Docker proxy which has Artifactory as its remote to fail*, since Artifactory does not use the ""algorithm:checksum"" format in its ETag headers.",3
+"NEXUS-18337","11/06/2018 18:21:01","Support zip generation fails if nexus.log file is not called ""nexus.log""","If the name of the nexus.log file is changed in the ""logback.xml"" file: {code:java} /var/log/nexus3/nexus3.log{code} Then this will prevent generation of a support zip file: {quote}2018-11-06 17:08:59,672+0000 WARN [qtp1032748576-49] admin org.sonatype.nexus.internal.atlas.customizers.InstallConfigurationCustomizer - Skipping: /var/lib/nexus3/etc/fabric/hazelcast-network.xml 2018-11-06 17:09:00,926+0000 WARN [qtp1032748576-49] admin org.sonatype.nexus.internal.log.LogbackLogManager - Log file does not exist: nexus.log 2018-11-06 17:09:00,936+0000 ERROR [qtp1032748576-49] admin org.sonatype.nexus.internal.atlas.SupportZipGeneratorImpl - Failed to create support ZIP java.lang.NullPointerException: Cannot invoke method withStream() on null object at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:47) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:34) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128) at org.sonatype.nexus.internal.atlas.customizers.LogCustomizer$1.generate(LogCustomizer.groovy:63) at org.sonatype.nexus.supportzip.GeneratedContentSourceSupport.prepare(GeneratedContentSourceSupport.java:51) at org.sonatype.nexus.supportzip.SupportBundle$ContentSource$prepare.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.sonatype.nexus.supportzip.SupportBundle$ContentSource$prepare.call(Unknown Source) at org.sonatype.nexus.internal.atlas.SupportZipGeneratorImpl$_generate_closure3.doCall(SupportZipGeneratorImpl.groovy:181) at sun.reflect.GeneratedMethodAccessor167.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:98) {quote} *Expected*: The support zip code should take the name of the log file from the logback configuration, and use that when attempting to open the file.",2
+"NEXUS-18344","11/07/2018 10:20:54","REST API list repositories to provide the remote url.","Improvement request for REST API of listing repositories to show the remote URL.",1
+"NEXUS-18487","11/13/2018 18:20:53","Scripting API allows invalid Roles","The addRole() method in security scripting API allows for creation of a role that contains itself. This is not valid, and causes stack overflows in Nexus when the role is traversed. The API should validate that no cycles are created in roles, and ensure that any other required validation is applied regardless of whether the input comes from REST/UI/etc. ",1
+"NEXUS-18493","11/13/2018 23:29:54","Support zip generation fails without a blobstore","Nexus admins cannot create a support zip if there is no blobstore present. Per the nexus.log: 2018-11-12 16:10:10,285+0000 INFO [qtp1301159914-189] admin com.sonatype.nexus.hazelcast.internal.BlobStoreDownloadServiceImpl - Move: support-20181112-161009-3.zip 2018-11-12 16:10:10,286+0000 ERROR [qtp1301159914-189] admin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: atlas_SupportZip.create, java-method: org.sonatype.nexus.coreui.internal.atlas.SupportZipComponent.create java.util.NoSuchElementException: null at com.google.common.collect.AbstractIndexedListIterator.next(AbstractIndexedListIterator.java:75) at com.sonatype.nexus.hazelcast.internal.BlobStoreDownloadServiceImpl.move(BlobStoreDownloadServiceImpl.java:108)* 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.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrap.invoke(PojoMetaMethodSite.java:213) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:136) at org.sonatype.nexus.internal.atlas.SupportZipGeneratorImpl.generate(SupportZipGeneratorImpl.groovy:151) at org.sonatype.nexus.supportzip.SupportZipGenerator$generate.call(Unknown Source) at org.sonatype.nexus.coreui.internal.atlas.SupportZipComponent.create(SupportZipComponent.groovy:57) New Nexus HA-C environments don't have blobstores, which means we can't get support zips to troubleshoot issues encountered early on.",1
+"NEXUS-18520","11/19/2018 21:52:59","repository.rebuild-index task TagsComponentEntityAdapterExtension.readFields NullPointerException","A maven2-hosted repository with the following config: {code} { ""@type"": ""d"", ""@rid"": ""#73:15"", ""@version"": 1, ""@class"": ""repository"", ""recipe_name"": ""maven2-hosted"", ""repository_name"": ""test-releases"", ""online"": true, ""attributes"": { ""maven"": { ""versionPolicy"": ""RELEASE"", ""layoutPolicy"": ""STRICT"" }, ""storage"": { ""strictContentTypeValidation"": true, ""writePolicy"": ""ALLOW_ONCE"", ""blobStoreName"": ""default"" } } }, {code} Encountered a problem when the RebuildIndexTask was run against it: {code} [0] 2018-11-15 18:46:59,760-0600 ERROR [quartz-2-thread-1] NexusHDQ-One *SYSTEM org.sonatype.nexus.repository.search.RebuildIndexTask - Failed to run task 'Rebuilding search index of *' on repository 'test-releases' [0] java.lang.NullPointerException: null [0] at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:882) [0] at org.sonatype.nexus.orient.entity.EntityAdapter.readEntity(EntityAdapter.java:277) [0] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) [0] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) [0] at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) [0] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) [0] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) [0] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) [0] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) [0] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) [0] at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) [0] at com.sonatype.nexus.tags.storage.internal.TagsComponentEntityAdapterExtension.readFields(TagsComponentEntityAdapterExtension.java:92) [0] at org.sonatype.nexus.repository.storage.ComponentEntityAdapter.lambda$1(ComponentEntityAdapter.java:221) [0] at java.lang.Iterable.forEach(Iterable.java:75) [0] at org.sonatype.nexus.repository.storage.ComponentEntityAdapter.readFields(ComponentEntityAdapter.java:221) [0] at org.sonatype.nexus.repository.storage.ComponentEntityAdapter.readFields(ComponentEntityAdapter.java:1) [0] at org.sonatype.nexus.repository.storage.MetadataNodeEntityAdapter.readFields(MetadataNodeEntityAdapter.java:1) [0] at org.sonatype.nexus.orient.entity.EntityAdapter.readEntity(EntityAdapter.java:284) [0] at org.sonatype.nexus.orient.entity.action.ReadEntityByIdAction.execute(ReadEntityByIdAction.java:46) [0] at org.sonatype.nexus.orient.entity.IterableEntityAdapter.read(IterableEntityAdapter.java:89) [0] at org.sonatype.nexus.repository.search.SearchFacetImpl.json(SearchFacetImpl.java:199) [0] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:45) [0] at org.sonatype.nexus.repository.search.SearchServiceImpl.lambda$0(SearchServiceImpl.java:318) [0] at com.google.common.collect.Iterables$5.lambda$forEach$0(Iterables.java:707) [0] at com.google.common.collect.Iterables$4.lambda$forEach$0(Iterables.java:568) [0] at java.lang.Iterable.forEach(Iterable.java:75) [0] at com.google.common.collect.Iterables$4.forEach(Iterables.java:565) [0] at com.google.common.collect.Iterables$5.forEach(Iterables.java:707) [0] at org.sonatype.nexus.repository.search.SearchServiceImpl.bulkPut(SearchServiceImpl.java:315) [0] at org.sonatype.nexus.repository.search.SearchFacetImpl.bulkPut(SearchFacetImpl.java:133) [0] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [0] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272) [0] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [0] at org.sonatype.nexus.repository.search.SearchFacetImpl.rebuildComponentIndex(SearchFacetImpl.java:115) [0] at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) [0] at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) [0] at org.sonatype.nexus.repository.search.SearchFacetImpl.rebuildIndex(SearchFacetImpl.java:101) [0] at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [0] at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272) [0] at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [0] at org.sonatype.nexus.repository.search.RebuildIndexTask.execute(RebuildIndexTask.java:34) [0] at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:73) [0] at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:93) [0] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:145) [0] at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:108) [0] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [0] at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) [0] at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [0] at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [0] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [0] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [0] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [0] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [0] at java.lang.Thread.run(Thread.java:748) {code} h4. Expected NullPointerException should not happen. Code should be defensive.",2
+"NEXUS-18529","11/20/2018 16:46:00","support zips are deleted from the downloads directory in HA environment","NEXUS-15163 implemented in 3.13.0 moves support zips into the default blobstore and then DELETES them from the $data-dir/downloads directory after they are moved. This is not desired. Support zips are to be treated contextually like log files, specific to a node, and should not need to be moved into a shared blobstore to be accessible by all nodes. h4. Expected Do not delete a support zip from the original generated downloads directory on the node it was created. There is also no customer use case to move support zips into the shared blob store. It appears the original reason for reporting NEXUS-15163 was because HTTP sessions were not sticky.",2
+"NEXUS-18540","11/21/2018 22:15:09","assetdownloadcount.internal.CacheRemovalListener.accept NullPointerException","A 3 node HA cluster started recording running 3.14.0 started capturing 2366 NullPointerException across nodes with the following log message. very oddly, one node logs these as WARN messages, while another logs these as ERROR - even though both are on the same version of Nexus? {noformat} [2] 2018-11-21 15:01:29,892+0000 ERROR [hz.nexus.event-1] *SYSTEM com.hazelcast.spi.impl.eventservice.impl.EventServiceImpl - [10.41.112.97]:5701 [nexus] [3.10.3] hz.nexus.event-1 caught an exception while processing task:com.hazelcast.spi.impl.eventservice.impl.LocalEventDispatcher@4c556cbe [2] java.lang.NullPointerException: null [2] at org.sonatype.nexus.repository.assetdownloadcount.internal.CacheRemovalListener.accept(CacheRemovalListener.java:64) [2] at org.sonatype.nexus.repository.assetdownloadcount.internal.CacheRemovalListener.accept(CacheRemovalListener.java:1) [2] at com.sonatype.nexus.hazelcast.internal.cache.HazelcastCacheBuilder$CacheRemovalListenter.lambda$0(HazelcastCacheBuilder.java:94) [2] at java.lang.Iterable.forEach(Iterable.java:75) [2] at com.sonatype.nexus.hazelcast.internal.cache.HazelcastCacheBuilder$CacheRemovalListenter.onExpired(HazelcastCacheBuilder.java:93) [2] at com.hazelcast.cache.impl.CacheEventListenerAdaptor.handleEvent(CacheEventListenerAdaptor.java:179) [2] at com.hazelcast.cache.impl.CacheEventListenerAdaptor.handleEvent(CacheEventListenerAdaptor.java:150) [2] at com.hazelcast.cache.impl.AbstractCacheService.dispatchEvent(AbstractCacheService.java:513) [2] at com.hazelcast.cache.impl.AbstractCacheService.dispatchEvent(AbstractCacheService.java:84) [2] at com.hazelcast.spi.impl.eventservice.impl.LocalEventDispatcher.run(LocalEventDispatcher.java:64) [2] at com.hazelcast.util.executor.StripedExecutor$Worker.process(StripedExecutor.java:226) [2] at com.hazelcast.util.executor.StripedExecutor$Worker.run(StripedExecutor.java:209) [1] 2018-11-21 15:01:29,896+0000 WARN [hz.nexus.event-1] *SYSTEM com.hazelcast.spi.EventService - [10.35.112.110]:5701 [nexus] [3.10.3] Error while logging processing event [1] java.lang.NullPointerException: null [1] at org.sonatype.nexus.repository.assetdownloadcount.internal.CacheRemovalListener.accept(CacheRemovalListener.java:64) [1] at org.sonatype.nexus.repository.assetdownloadcount.internal.CacheRemovalListener.accept(CacheRemovalListener.java:1) [1] at com.sonatype.nexus.hazelcast.internal.cache.HazelcastCacheBuilder$CacheRemovalListenter.lambda$0(HazelcastCacheBuilder.java:94) [1] at java.lang.Iterable.forEach(Iterable.java:75) [1] at com.sonatype.nexus.hazelcast.internal.cache.HazelcastCacheBuilder$CacheRemovalListenter.onExpired(HazelcastCacheBuilder.java:93) [1] at com.hazelcast.cache.impl.CacheEventListenerAdaptor.handleEvent(CacheEventListenerAdaptor.java:179) [1] at com.hazelcast.cache.impl.CacheEventListenerAdaptor.handleEvent(CacheEventListenerAdaptor.java:150) [1] at com.hazelcast.cache.impl.AbstractCacheService.dispatchEvent(AbstractCacheService.java:513) [1] at com.hazelcast.cache.impl.AbstractCacheService.dispatchEvent(AbstractCacheService.java:84) [1] at com.hazelcast.spi.impl.eventservice.impl.EventProcessor.process(EventProcessor.java:61) [1] at com.hazelcast.spi.impl.eventservice.impl.RemoteEventProcessor.run(RemoteEventProcessor.java:47) [1] at com.hazelcast.util.executor.StripedExecutor$Worker.process(StripedExecutor.java:226) [1] at com.hazelcast.util.executor.StripedExecutor$Worker.run(StripedExecutor.java:209) {noformat} h4. Expected NullPointerExceptions should not be triggered during normal operation. Determine cause and mitigate. Explain why one is WARN and one is ERROR.",1
+"NEXUS-18562","11/26/2018 16:06:47","Drop beta rest endpoints.","Drop deprecated beta enpoints.",1
+"NEXUS-18631","12/03/2018 16:16:49","allow multipart copy for AWS S3 blob storage","Hey there, Can multipart upload for aws s3 blob storage be enabled through some setting? I get the following in the nexus logs, when trying to upload artifacts larger than 5GB: {quote}com.amazonaws.services.s3.model.AmazonS3Exception: The specified copy source is larger than the maximum allowable size for a copy source: 5368709120 (Service: Amazon S3; Status Code: 400; Error Code: InvalidRequest; {quote} Thanks in advance",2
+"NEXUS-18638","12/04/2018 02:36:43","GET requests against Docker group repository returning duplicate headers","While testing NEXUS-12684, it was discovered that issuing a GET request for a manifest in a docker group repository returned duplicate headers for Docker-Distribution-Api-Version, ETag, and Last-Modified. Example request: {code:java} curl -I http://localhost:8081/repository/docker-group/v2/library/hello-world/manifests/latest -H 'accept: application/vnd.docker.distribution.manifest.v2+json' {code} Example Response Headers: {code:java} Content-Length →524 Content-Security-Policy →sandbox allow-forms allow-modals allow-popups allow-presentation allow-scripts allow-top-navigation Content-Type →application/vnd.docker.distribution.manifest.v2+json Date →Tue, 04 Dec 2018 02:22:54 GMT Docker-Content-Digest →sha256:1a6fd470b9ce10849be79e99529a88371dff60c60aab424c077007f6979b4812 Docker-Distribution-Api-Version →registry/2.0 Docker-Distribution-Api-Version →registry/2.0 ETag →""sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788"" ETag →""sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788"" Last-Modified →Mon, 03 Dec 2018 21:11:38 GMT Last-Modified →Mon, 03 Dec 2018 21:11:38 GMT Server →Nexus/3.15.0-SNAPSHOT (PRO) X-Content-Type-Options →nosniff {code}",1
+"NEXUS-18675","12/10/2018 17:20:40","log blob deleted reason for s3 based deleted blobs","Note the file-based blobstore explicitly logs the deleted reason when it unexpectedly encounters a soft-deleted blob: [https://github.com/sonatype/nexus-public/blob/release-3.14.0-04/components/nexus-blobstore-file/src/main/java/org/sonatype/nexus/blobstore/file/FileBlobStore.java#L437] Whereas the S3 blobstore logs the {{S3BlobAttributes}}: [https://github.com/sonatype/nexus-public/blob/release-3.14.0-04/plugins/nexus-blobstore-s3/src/main/java/org/sonatype/nexus/blobstore/s3/internal/S3BlobStore.java#L321] Unfortunately that delegates to {{S3PropertiesFile.toString()}} which just dumps the bucket and key, not the actual attributes. *Acceptance* The path or bucket-key pair and the attributes for an accessed soft-deleted blob shall be logged in the warning msg. ",1
+"NEXUS-18711","12/19/2018 21:48:19","Collect all three support zips from a single node","*Background* Currently, when HA-C customers generate a support zip, they almost always fetch a single support zip. Also, in some cases the admin trying to obtain the support zip doesn't have the ability to reach specific nodes to fetch all three manually. *Acceptance* * There a method in the UI for users to generate and fetch support zips for their entire cluster. * This should not fail if some nodes are down! Best effort is necessary. (Inability to get a support zip from the one working node is worse than not getting all three.)",5
+"NEXUS-18712","12/19/2018 22:35:27","jetty-http-redirect-to-https.xml overrides the default Jetty security filter allowing TRACE requests","By default Nexus does not allow HTTP TRACE requests. {code:java} $ curl -X TRACE -v http://localhost:8081/ * Trying ::1... * 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) > TRACE / HTTP/1.1 > Host: localhost:8081 > User-Agent: curl/7.54.0 > Accept: */* > < HTTP/1.1 403 Forbidden {code} However, if you add the ""jetty-http-redirect-to-https.xml"" file to the nexus-args in nexus.properties TRACE requests will succeed. I think this is because that configuration file is setting a new securityHandler without calling the existing one.",2
+"NEXUS-18715","12/20/2018 07:33:20","/atlas/security-diagnostic api returns 500 halfway through response.","Hello, We've been using the /atlas/security diagnostics API in Nexus OSS 3.3.1-01. However, after an upgrade to 3.11.0-01 (and we tried 3.14.0-04 as well) we faced issues with the API. It had been moved, and it wasn't working correctly after the move. We have created a fake user to test if our ldap configuration is working correctly. When trying to request the details of this user, the API crashes when trying to expand the users permissions. Like this: [root@someserver /]# curl -k --silent --write-out HTTPSTATUS:%\{http_code} -u admin:admin123 https://nexus.url/nexus/service/rest/atlas/security-diagnostic/user/fakeusr ""user"" : \{ ""userId"" : ""fakeusr"", ""status"" : ""active"", ""firstName"" : ""fake user"", ""version"" : ""1"", ""lastName"" : ""User"", ""emailAddress"" : ""dummy@nomail.com"", ""readOnly"" : false, ""source"" : ""default"", ""name"" : ""fake user"", ""roles"" : \{ ""nx-admin"" : \{ ""version"" : null, ""description"" : ""Administrator Role"", ""readOnly"" : true, ""source"" : ""default"", ""name"" : null, ""privileges"" : \{ ""nx-all"" : \{ ""type"" : ""wildcard"", ""properties"" : \{ ""pattern"" : ""nexus:*"" }, ""version"" : null, ""description"" : ""All permissions"", ""permission"" } } } } } }ERROR: (ID 1d7ee5f4-3c65-4dad-8a3a-61d812aab041) com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.sonatype.nexus.security.authz.WildcardPermission2 and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.LinkedHashMap[""user""]->java.util.LinkedHashMap[""roles""]->java.util.LinkedHashMap[""nx-admin""]->java.util.LinkedHashMap[""privileges""]->java.util.LinkedHashMap[""nx-all""]->java.util.LinkedHashMap[""permission""]) HTTPSTATUS:500",1
+"NEXUS-18751","12/29/2018 05:14:17","need cleanup policy permissions to view UI repository list","I am using OSS nexus-3.14.0-04 version where I have created a user and gave admin privileges, as in the screen shot, to create repositories alone. When I logged in as that user and whenever I navigate to admin repositories page, Danger alert box with 'User is not permitted: nexus:repository-admin' message is getting displayed. If I give full admin privileges like nx-repository-admin-*-*-*, then the message is not appearing but for my use I cannot give full admin privileges. What should I do to get rid of the alert message or is it a bug in nexus-3.14? Thanks in advance. h4. Cause Related to cleanup policies. {noformat} 2018-12-28 11:41:22,242+0530 ERROR [pool-26-thread-5] crt org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Failed to invoke action method: cleanup_CleanupPolicy.readByFormat, java-method: org.sonatype.nexus.cleanup.storage.CleanupPolicyComponent.readByFormat org.apache.shiro.authz.AuthorizationException: User is not permitted: nexus:repository-admin at org.sonatype.nexus.security.authz.ExceptionCatchingModularRealmAuthorizer.checkPermission(ExceptionCatchingModularRealmAuthorizer.java:66) Caused by: org.apache.shiro.authz.AuthorizationException: Not authorized to invoke method: public java.util.List org.sonatype.nexus.cleanup.storage.CleanupPolicyComponent.readByFormat(org.sonatype.nexus.extdirect.model.StoreLoadParameters) at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:90) ... 25 common frames omitted {noformat} h4. Expected Should not need cleanup policy permissions to view the repository list.",2
+"NEXUS-18758","01/02/2019 18:48:00","System Status check failures are prominent in the UI","*Background* We have a small-but-growing number of automated system status checks, but they are not prominent in the UI. Some reflect critical problems (e.g. NEXUS-18706), but there's no warning whatsoever unless an admin generates a support zip or digs into the UI. *Acceptance* * When a health check is failing, raise a visible alarm in the admin UI * We don't want failing system status check alerts visible to non-admin users. *Note* This will trigger the need to schedule system status checks being run on a periodic basis, since they are currently run on demand.",3
+"NEXUS-18774","01/03/2019 20:42:25","allow scoped NPM package name parts that start with '.' or '_'","Currently, Nexus will not proxy NPM packages which begin with a leading '.' or '_'; attempting to pull these results in: {{2019-01-03 11:22:25,450-0800 WARN [qtp799270832-391] admin org.sonatype.nexus.repository.npm.internal.NpmHandlers - Error: GET /@angular-toolkit/_utils_: Status\{successful=false, code=400, message='null'} - Name starts with '.' or '_': _}} {{utils}} {{java.lang.IllegalArgumentException: Name starts with '.' or '_': _utils}} {{ at com.google.common.base.Preconditions.checkArgument(Preconditions.java:210)}} {{ at org.sonatype.nexus.repository.npm.internal.NpmPackageId.(NpmPackageId.java:63)}} {{ at org.sonatype.nexus.repository.npm.internal.NpmHandlers.packageId(NpmHandlers.java:83)}} {{ at org.sonatype.nexus.repository.npm.internal.NpmProxyFacetImpl.getCachedContent(NpmProxyFacetImpl.java:100)}} {{ at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.maybeGetCachedContent(ProxyFacetSupport.java:342)}} {{ at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:218)}} {{ at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:50)}} {{ ...}} This aligns with the advice provided by NPM: [https://docs.npmjs.com/files/package.json#name] {{""Some rules:}} * {{The name must be less than or equal to 214 characters. This includes the scope for scoped packages.}} * {{_*The name can’t start with a dot or an underscore.""*_}} Unfortunately, packages with such names exist in the NPM registry ([http://registry.npmjs.org/@angular-toolkit/_utils|http://registry.npmjs.org/@angular-toolkit/_utils).] ). Affected customers are therefore prevented from bringing them down through Nexus. Since the de facto naming restrictions at the NPM registry apparently allow these characters, Nexus should follow suit. h4. Expected - _unscoped package names are not allowed to start with underscore or period_ - a scope is part of the complete package name, so _the non-scoped name part of a scoped package name is allowed to start with a period or a dot_ - current package name validation logic should reference [the official npm validation logic|https://github.com/npm/validate-npm-package-name/blob/9ee8d54e28204b762f11451cf01207a3dc6be679/index.js#L37-L39]",2
+"NEXUS-18776","01/03/2019 23:28:24","System check for node count","*Acceptance* * Add a health check that fails if a cluster doesn't have three nodes",1
+"NEXUS-18816","01/11/2019 12:46:18","Slow delete performance when using REST API","Deletions of yum components are taking 60 seconds and sometimes failing with 500. We can see database query reaching 60 second timeout. {quote}2019-01-10 04:51:29,684+0000 WARN [qtp1990821672-1160244] xxxxx org.sonatype.nexus.siesta.internal.UnexpectedExceptionMapper - (ID f3abb01b-7dda-4c74-8f03-4eeb03d78911) Unexpected exception: java.lang.IllegalStateException: Timed out reading query result from queue 11e742fa after 60 seconds java.lang.IllegalStateException: Timed out reading query result from queue 11e742fa after 60 seconds at org.sonatype.nexus.repository.storage.OrientAsyncHelper$QueueConsumingIterable.hasNext(OrientAsyncHelper.java:201) at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811) at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126) at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464) at org.sonatype.nexus.repository.browse.internal.BrowseServiceImpl.getById(BrowseServiceImpl.java:309) at org.sonatype.nexus.repository.browse.internal.BrowseServiceImpl.getComponentById(BrowseServiceImpl.java:282) at org.sonatype.nexus.repository.rest.internal.resources.ComponentsResource.getComponent(ComponentsResource.java:210) at org.sonatype.nexus.repository.rest.internal.resources.ComponentsResource.deleteComponent(ComponentsResource.java:228) {quote} We can also see the the following thread is taking time: {quote}*event-6-thread-2281* - priority:5 - threadId:0x00007fe298055800 - nativeId:0x7e23 - nativeId (decimal):32291 - state:*RUNNABLE* stackTrace: java.lang.Thread.State: RUNNABLE at java.util.zip.Inflater.inflateBytes(Native Method) at java.util.zip.Inflater.inflate(Inflater.java:259) - locked *<0x0000000707ae4788>* (a java.util.zip.ZStreamRef) at org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream.read(GzipCompressorInputStream.java:311) at java.io.BufferedInputStream.read1(BufferedInputStream.java:284) at java.io.BufferedInputStream.read(BufferedInputStream.java:345) - locked *<0x0000000707aec6a8>* (a java.io.BufferedInputStream) at com.google.common.io.CountingInputStream.read(CountingInputStream.java:63) at org.sonatype.nexus.common.hash.MultiHashingInputStream.read(MultiHashingInputStream.java:66) at java.io.FilterInputStream.read(FilterInputStream.java:107) at com.google.common.io.ByteStreams.copy(ByteStreams.java:109) at org.sonatype.nexus.repository.yum.internal.utils.YumMetadataUtils.readCompressedMetadata(YumMetadataUtils.java:79) at org.sonatype.nexus.repository.yum.internal.utils.YumMetadataUtils.readCompressedMetadata(YumMetadataUtils.java:59) at org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoServiceImpl.readMetadataAndAppendToRepomd(CreateRepoServiceImpl.java:371) at org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoServiceImpl.writeRepomd(CreateRepoServiceImpl.java:355) at org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoServiceImpl.convertDirectoriesToMetadata(CreateRepoServiceImpl.java:184) at org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoServiceImpl.buildMetadata(CreateRepoServiceImpl.java:150) at org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoServiceImpl.buildMetadata(CreateRepoServiceImpl.java:134) at org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoServiceImpl.buildMetadataUsingCaching(CreateRepoServiceImpl.java:120) at org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoServiceImpl$$EnhancerByGuice$$7fce96dd.CGLIB$buildMetadataUsingCaching$0(**) at org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoServiceImpl$$EnhancerByGuice$$7fce96dd$$FastClassByGuice$$6d83d52f.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.yum.internal.createrepo.CreateRepoServiceImpl$$EnhancerByGuice$$7fce96dd.buildMetadataUsingCaching(**) at org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl.buildMetadata(CreateRepoFacetImpl.java:190) at org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl.on(CreateRepoFacetImpl.java:175) at sun.reflect.GeneratedMethodAccessor274.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:87) at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:144) - locked *<0x00000006cec7b2a8>* (a com.google.common.eventbus.Subscriber$SynchronizedSubscriber) at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:72) 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) Locked ownable synchronizers: - *<0x00000006ec0c4ee8>* (a java.util.concurrent.ThreadPoolExecutor$Worker) {quote}",3
+"NEXUS-18855","01/17/2019 15:05:39","/tags/associate does not return JSON if repository cannot be found","Try to associate a tag to a set of components in *a repository that does not exist*. The response body is not JSON, but the response status code is 404. Try to associate a tag to a set of components in *a repository that does exist*, but the other search criteria do not match a valid component. The response body is JSON: {noformat:title=Valid repo, but other search criteria do not find components} { ""status"" : 404, ""message"" : ""No components found"" } {noformat} And the status code is 404. The API documentation states that 404 status code is returned when components or repository is not found. h4. Expected A REST API should return JSON with error details to help the caller understand problems, especially when the same error status code can be returned in multiple situations. When a repository name is specified that is not valid, then the response body should contain JSON explaining the cause of the 404. {noformat:title:Desired JSON example} { ""status"" : 404, ""message"" : ""No repository found"" } {noformat} ",2
+"NEXUS-18905","01/18/2019 18:47:28","Cleanup tasks fail with ""No search context found for id"" error","On three occasions now we've seen the repository cleanup tasks fail with an error like the one below. This seems to occur when the elasticsearch query takes too long to complete. We've had users work around this by reducing the amount of components selected by the cleanup policy. But I think this points to a flaw in our code. If the machine that Nexus Repo is running on is slow, or the cleanup policy is selecting a large number of components it should cause the cleanup to run slowly, not fail entirely. {quote}2019-01-18 12:20:26,371-0500 WARN [quartz-2-thread-20] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskJob - Task 080a3b05-ada1-45a0-91e1-8b715fbc3dc4 : 'Cleanup service' [repository.cleanup] execution failure org.elasticsearch.action.search.SearchPhaseExecutionException: all shards failed at org.elasticsearch.action.search.SearchScrollQueryAndFetchAsyncAction.onPhaseFailure(SearchScrollQueryAndFetchAsyncAction.java:155) at org.elasticsearch.action.search.SearchScrollQueryAndFetchAsyncAction.access$300(SearchScrollQueryAndFetchAsyncAction.java:41) at org.elasticsearch.action.search.SearchScrollQueryAndFetchAsyncAction$1.onFailure(SearchScrollQueryAndFetchAsyncAction.java:142) at org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:46) at org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:874) at org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:852) at org.elasticsearch.transport.TransportService$4.onFailure(TransportService.java:389) at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:39) 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: org.elasticsearch.transport.RemoteTransportException: [03BE0352-264E5695-7C25F189-A53EC373-372DEEDA][local[1]][indices:data/read/search[phase/query+fetch/scroll]] Caused by: org.elasticsearch.search.SearchContextMissingException: No search context found for id [7] at org.elasticsearch.search.SearchService.findContext(SearchService.java:626) at org.elasticsearch.search.SearchService.executeFetchPhase(SearchService.java:553) at org.elasticsearch.search.action.SearchServiceTransportAction$SearchQueryFetchScrollTransportHandler.messageReceived(SearchServiceTransportAction.java:416) at org.elasticsearch.search.action.SearchServiceTransportAction$SearchQueryFetchScrollTransportHandler.messageReceived(SearchServiceTransportAction.java:413) at org.elasticsearch.transport.TransportRequestHandler.messageReceived(TransportRequestHandler.java:33) at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:77) at org.elasticsearch.transport.TransportService$4.doRun(TransportService.java:378) at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) 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) {quote} ",3
+"NEXUS-18949","01/24/2019 18:19:39","/service/rest/v1/status returns 200 status code when node is read-only","http://:/service/rest/v1/status currently returns 200 status code if the specific node being accessed is in a read-only state. The main use case of adding this endpoint was to determine the availability of a node that is in an HA-C cluster. Given an HA-C node is not fully functional unless it is writable, there needs to be an endpoint that returns 503 service unavailable if: - *the node is read-only* - all other criteria of a valid HA-C node participant are satisfied By meeting these requirements, a load balancer can more accurately represent if a node is ready to server ALL types of requests. Note: _A side benefit_ of this endpoint may have been to see if a node is ""alive"" at all ie. is up, but is read-only. We need to answer what endpoint should be used for this use case - should it be this endpoint or something else? ",3
+"NEXUS-18952","01/24/2019 21:54:42","High CPU usage observed caused by a bug in older Jetty version","Customer complained of high CPU usage in Nexus Repo 3.14.0. A thread dump from their instance showed the following active Jetty threads: {noformat}qtp2102447597-846 id=846 state=RUNNABLE at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onIncompleteFlush(SslConnection.java:547) at org.eclipse.jetty.io.AbstractEndPoint$2.onIncompleteFlush(AbstractEndPoint.java:54) at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:332) at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:380) at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:804) at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241) at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:538) at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:795) at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:846) at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:240) at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:216) at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:515) at java.io.ByteArrayOutputStream.writeTo(ByteArrayOutputStream.java:167) at org.eclipse.jetty.server.Utf8HttpWriter.write(Utf8HttpWriter.java:183) at org.eclipse.jetty.server.HttpWriter.write(HttpWriter.java:71) at org.eclipse.jetty.server.HttpWriter.write(HttpWriter.java:65) at org.eclipse.jetty.server.ResponseWriter.write(ResponseWriter.java:231) - locked org.eclipse.jetty.server.Utf8HttpWriter@fe3f522 at org.eclipse.jetty.server.ResponseWriter.write(ResponseWriter.java:248) at com.softwarementors.extjs.djn.router.processor.poll.PollRequestProcessor.process(PollRequestProcessor.java:157) at org.sonatype.nexus.extdirect.internal.ExtDirectServlet$4.processPollRequest(ExtDirectServlet.java:385) at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:636) at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:595) at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:155) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) qtp2102447597-971 id=971 state=RUNNABLE at java.lang.ThreadLocal$ThreadLocalMap.getEntryAfterMiss(ThreadLocal.java:444) at java.lang.ThreadLocal$ThreadLocalMap.getEntry(ThreadLocal.java:419) at java.lang.ThreadLocal$ThreadLocalMap.access$000(ThreadLocal.java:298) at java.lang.ThreadLocal.get(ThreadLocal.java:163) at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onIncompleteFlush(SslConnection.java:547) at org.eclipse.jetty.io.AbstractEndPoint$2.onIncompleteFlush(AbstractEndPoint.java:54) at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:332) at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:380) at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:804) at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241) at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:538) at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:795) {noformat} This is due to a bug in Jetty 9.4.11: [https://github.com/eclipse/jetty.project/issues/2233#issuecomment-404082685] This has been fixed in 9.4.12: [https://github.com/eclipse/jetty.project/commit/17b6eee5aca00460913a2b7847325b6e3df39fd2] So bumping our Jetty version should prevent future occurrences of this.",1
+"NEXUS-19049","02/05/2019 15:36:02","Request for artifacts sometimes returns invalid Last-Modified header","Sometimes randomly we get the wrong timezone (CET) in the `Last-Modified` header for artifacts The header should always be in GMT according to discussion here: [https://stackoverflow.com/a/1639028/2122701] (inc links to RFCs) Here is a bash loop on the vm hosting nexus for the same artifact. Depending on the frequency it has taken hours to show itself. {code:java} [ec2-user@ip-10-1-1-1 ~]$ while true; do curl -v http://localhost:8081/repository/some-raw-repo/somedir/some-artifact.metadata -I -u $USER:$PASS 2>&1 | grep -v '<' | grep -E 'Date:|Last-Modified:'; sleep 10; done Date: Tue, 05 Feb 2019 15:16:19 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:16:30 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:16:40 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:16:50 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:17:00 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:17:10 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:17:20 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:17:30 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:17:40 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:17:50 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:18:00 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:18:10 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:18:20 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:18:30 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:18:40 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:18:50 GMT Last-Modified: Tue, 20 Nov 2018 13:36:47 CET Date: Tue, 05 Feb 2019 15:19:00 GMT Last-Modified: Tue, 20 Nov 2018 13:36:47 CET Date: Tue, 05 Feb 2019 15:19:10 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:19:20 GMT Last-Modified: Tue, 20 Nov 2018 12:36:47 GMT Date: Tue, 05 Feb 2019 15:19:30 GMT {code} You can see generally this is the correct timezone, but sometimes oddly not. See request made at 15:19:00 GMT I've seen this affecting raw and maven repositories This runs into issues specifically with Akka HTTP library in our case which expects the header to be correctly formed ",2
+"NEXUS-19075","02/07/2019 23:01:33","Analytics documentation unchanged after feature removal","In 3.15.0 we removed analytics from NXRM3. However, the h.s.c documentation has no indication of this whatsoever. See https://help.sonatype.com/display/NXRM3/Support+Features#SupportFeatures-Analytics.",1
+"NEXUS-19084","02/08/2019 19:04:34","Many threads blocked in Elasticsearch while updating LastDownloaded attribute","The attached thread dump shows 291 threads blocked with the stack trace below. The method ""org.sonatype.nexus.repository.view.handlers.LastDownloadedHandler.maybeUpdateLastDownloaded"" sometimes initiates a database transaction. When this transaction completes, the post-commit hook triggers an event that normally triggers an asynchronous elasticsearch update. However if the event thread pool is totally depleted then it will fall back to dispatching the update on the calling thread, in other words the update will become synchronous (due to a lack of threads). The database connection will only be released back to the pool once the post-commit hook is complete, so if elasticsearch is also running slow then this can result in the database connection being held open for a long time. In the case of the user this thread dump came from there is evidence that the disk elasticsearch is as running on is slow, and so this caused a massive backup of database connections. {quote}""qtp540936684-234"" #234 prio=5 os_prio=0 tid=0x00007f3480013000 nid=0x170 waiting for monitor entry [0x00007f31f8f49000] java.lang.Thread.State: BLOCKED (on object monitor) at org.elasticsearch.action.bulk.BulkProcessor.internalAdd(BulkProcessor.java:283) - waiting to lock <0x00000006cbbeb6c0> (a org.elasticsearch.action.bulk.BulkProcessor) at org.elasticsearch.action.bulk.BulkProcessor.add(BulkProcessor.java:268) at org.elasticsearch.action.bulk.BulkProcessor.add(BulkProcessor.java:264) at org.elasticsearch.action.bulk.BulkProcessor.add(BulkProcessor.java:250) at org.sonatype.nexus.repository.search.SearchServiceImpl.lambda$0(SearchServiceImpl.java:321) at org.sonatype.nexus.repository.search.SearchServiceImpl$$Lambda$289/275393005.accept(Unknown Source) at java.lang.Iterable.forEach(Iterable.java:75) at org.sonatype.nexus.repository.search.SearchServiceImpl.bulkPut(SearchServiceImpl.java:315) at org.sonatype.nexus.repository.search.SearchFacetImpl.bulkPut(SearchFacetImpl.java:133) at org.sonatype.nexus.repository.search.SearchFacetImpl$$EnhancerByGuice$$7cd025a2.CGLIB$bulkPut$3() at org.sonatype.nexus.repository.search.SearchFacetImpl$$EnhancerByGuice$$7cd025a2$$FastClassByGuice$$753cd40b.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:272) 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.search.SearchFacetImpl$$EnhancerByGuice$$7cd025a2.bulkPut() at org.sonatype.nexus.repository.search.IndexRequest.bulkApply(IndexRequest.java:92) at org.sonatype.nexus.repository.search.IndexRequestProcessor.lambda$0(IndexRequestProcessor.java:139) at org.sonatype.nexus.repository.search.IndexRequestProcessor$$Lambda$406/297358118.accept(Unknown Source) at java.util.Optional.ifPresent(Optional.java:159) at org.sonatype.nexus.repository.search.IndexRequestProcessor.doUpdateSearchIndex(IndexRequestProcessor.java:135) at org.sonatype.nexus.repository.search.IndexRequestProcessor.maybeUpdateSearchIndex(IndexRequestProcessor.java:115) at org.sonatype.nexus.repository.search.IndexRequestProcessor$$Lambda$385/1669743823.accept(Unknown Source) at java.util.HashMap.forEach(HashMap.java:1289) at org.sonatype.nexus.repository.search.IndexBatchRequest.apply(IndexBatchRequest.java:93) at org.sonatype.nexus.repository.search.IndexRequestProcessor.process(IndexRequestProcessor.java:99) at org.sonatype.nexus.repository.search.IndexRequestProcessor.on(IndexRequestProcessor.java:88) at sun.reflect.GeneratedMethodAccessor235.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:87) at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:72) at org.sonatype.nexus.internal.event.AffinityBarrier.lambda$1(AffinityBarrier.java:91) at org.sonatype.nexus.internal.event.AffinityBarrier$$Lambda$384/1417277946.run(Unknown Source) 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 org.sonatype.nexus.internal.event.EventExecutor.lambda$0(EventExecutor.java:72) at org.sonatype.nexus.internal.event.EventExecutor$$Lambda$24/155969703.rejectedExecution(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379) at org.apache.shiro.concurrent.SubjectAwareExecutor.execute(SubjectAwareExecutor.java:129) at org.sonatype.nexus.internal.event.AffinityBarrier.execute(AffinityBarrier.java:89) at org.sonatype.nexus.internal.event.EventExecutor.execute(EventExecutor.java:215) 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.lambda$0(EventManagerImpl.java:132) at org.sonatype.nexus.internal.event.EventManagerImpl$$Lambda$213/1347710971.run(Unknown Source) at org.sonatype.nexus.internal.event.AffinityBarrier.lambda$0(AffinityBarrier.java:75) at org.sonatype.nexus.internal.event.AffinityBarrier$$Lambda$252/1880833496.run(Unknown Source) at com.google.common.util.concurrent.SequentialExecutor$1.run(SequentialExecutor.java:120) at com.google.common.util.concurrent.SequentialExecutor$QueueWorker.workOnQueue(SequentialExecutor.java:227) at com.google.common.util.concurrent.SequentialExecutor$QueueWorker.run(SequentialExecutor.java:171) 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 org.sonatype.nexus.internal.event.EventExecutor.lambda$0(EventExecutor.java:72) at org.sonatype.nexus.internal.event.EventExecutor$$Lambda$24/155969703.rejectedExecution(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379) at org.apache.shiro.concurrent.SubjectAwareExecutor.execute(SubjectAwareExecutor.java:129) at com.google.common.util.concurrent.SequentialExecutor.execute(SequentialExecutor.java:128) at org.sonatype.nexus.internal.event.AffinityBarrier.coordinate(AffinityBarrier.java:71) at org.sonatype.nexus.internal.event.EventExecutor.executeWithAffinity(EventExecutor.java:199) at org.sonatype.nexus.internal.event.EventManagerImpl.post(EventManagerImpl.java:132) at org.sonatype.nexus.orient.entity.EntityHook.postEvents(EntityHook.java:325) at org.sonatype.nexus.orient.entity.EntityHook.flushEvents(EntityHook.java:289) at org.sonatype.nexus.orient.entity.EntityHook.onAfterTxCommit(EntityHook.java:174) 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:183) at sun.reflect.GeneratedMethodAccessor181.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:193) 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.$Proxy218.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 org.sonatype.nexus.repository.view.handlers.LastDownloadedHand.maybeUpdateLastDownloaded(LastDownloadedHandler.java:107){quote}",3
+"NEXUS-19085","02/08/2019 19:12:08","staging promotion move of more than 500 components may fail with IllegalStateException Unable to find component by id","A staging move operation may return a 500 status code: {noformat} ""POST /nexus/service/rest/beta/staging/move/master-mvn?repository=example&group=com.example.example HTTP/1.1"" 500 172 71 ""Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0"" {noformat} {noformat} 2019-02-03 21:55:20,697-0500 WARN [qtp1804378469-300335] user@example.com org.sonatype.nexus.siesta.internal.UnexpectedExceptionMapper - (ID 42d9271b-cd9c-4378-bdc5-771c38162111) Unexpected exception: java.lang.IllegalStateException: Unable to find component by id: DetachedEntityId{value='2b06d2fa2e1b42a4b489e1eb8a382549'} java.lang.IllegalStateException: Unable to find component by id: DetachedEntityId{value='2b06d2fa2e1b42a4b489e1eb8a382549'} at com.sonatype.nexus.staging.internal.StagingComponentManager.lambda$2(StagingComponentManager.java:133) at java.util.Optional.orElseThrow(Optional.java:290) at com.sonatype.nexus.staging.internal.StagingComponentManager.getComponent(StagingComponentManager.java:133) at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54) at com.sonatype.nexus.staging.internal.StagingComponentManager.verifyMove(StagingComponentManager.java:104) at com.sonatype.nexus.staging.internal.StagingService.checkAllowMoveTo(StagingService.java:331) at com.sonatype.nexus.staging.internal.StagingService.move(StagingService.java:167) 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.sonatype.nexus.staging.internal.StagingResource.move(StagingResource.java:86) 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 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) 2019-02-03 21:55:20,698-0500 WARN [qtp1804378469-300335] user@example.com org.sonatype.nexus.siesta.internal.UnexpectedExceptionMapper - (ID 42d9271b-cd9c-4378-bdc5-771c38162111) Response: [500] 'ERROR: (ID 42d9271b-cd9c-4378-bdc5-771c38162111) java.lang.IllegalStateException: Unable to find component by id: DetachedEntityId{value='2b06d2fa2e1b42a4b489e1eb8a382549'}'; mapped from: java.lang.IllegalStateException: Unable to find component by id: DetachedEntityId{value='2b06d2fa2e1b42a4b489e1eb8a382549'} {noformat} Reporter that experienced the issue claims this happens when trying to move 5000 components at once. When the move attempts to move less than 500 components at one time, it succeeded. ",3
+"NEXUS-19091","02/11/2019 10:05:02","S3 Blobstore expiration is at Bucket level - ignores path prefix","When creating an S3 Blobstore, the expiration days can be set. This is tied to a lifecycle policy on the S3 bucket. When multiple S3 Blobstores are created in the same bucket - using different path prefixes - they each allow a separate setting for expiration days, however, they simply overwrite the common lifecycle policy. Either: 1) It should be clear from the UI that they share a single lifecycle policy, and cannot be separately set. or 2) The lifecycle policy should be maintained with appropriate filters when path prefixes are in place. Steps to reproduce: * Create an S3 Blobstore with path prefix of test1 and expiration days set to 10 * Run aws s3api get-bucket-lifecycle-configuration --bucket * Create a second S3 Blobstore in the same bucket with path prefix of test2 and expiration days set to 20 * Run aws s3api get-bucket-lifecycle-configuration --bucket * Note that the single expiration rule now has changed to 20 days.",3
+"NEXUS-19092","02/11/2019 11:08:24","NPE When Installing Gem with no Date Attribute","When attempting to install a gem that does not contain a date attribute in its spec file a NullPointerException is thrown e.g. {code:java} *UNKNOWN org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: GET /content/groups/gems-all/gems/linux-kstat-0.2.1-universal-linux.gem java.lang.NullPointerException: null at org.sonatype.nexus.repository.rubygems.marshal.RubyTime.from(RubyTime.java:131) 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.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.invoke(StaticMetaMethodSite.java:46) at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.call(StaticMetaMethodSite.java:91) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at org.sonatype.nexus.repository.rubygems.marshal.GemSpecification.(GemSpecification.groovy:81) at org.sonatype.nexus.repository.rubygems.internal.GemsUtils.retrieveGemSpecification(GemsUtils.java:188) at org.sonatype.nexus.repository.rubygems.internal.RubygemsProxyFacet.getComponentGemAsset(RubygemsProxyFacet.java:256) at org.sonatype.nexus.repository.rubygems.internal.RubygemsProxyFacet.doStore(RubygemsProxyFacet.java:183) 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.RubygemsProxyFacet.store(RubygemsProxyFacet.java:169) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.doGet(ProxyFacetSupport.java:222) at org.sonatype.nexus.repository.rubygems.internal.RubygemsProxyFacet.doGet(RubygemsProxyFacet.java:159){code} To reproduce with example linux-kstat v0.2.1 gem: # Configure proxy repo for [https://rubygems.org|https://rubygems.org/] # On a linux env, run gem install e.g. # {code:java} gem install linux-kstat -v 0.2.1 -s http://localhost:8081/repository/rubygems-proxy/{code} Expected: Nexus should handle cases where gem spec does not contain expected values.",1
+"NEXUS-19097","02/11/2019 21:49:31","Log spam when remote docker repository returns 400 or 401 and no credentials are configured or remote requires bearer token","Configure a docker proxy repository with a remote URL of ""https://gcr.io"". Then request a manifest that does not exist on the remote through the proxy repository: [https://localhost:8081/repository/docker-gcr-proxy/v2/abcd/efgh/manifests/1472|https://localhost:8081/repository/repository/docker-gcr/-proxy/v2/abcd/efgh/manifests/1472] This will result in a warning in the log along with a stack trace because the bearer token can't be retrieved. The ""https://gcr.io"" allows anonymous access, but it will return 401 rather than 404 for images that don't exist on it. I believe the official docker registry also behaves this way. The result of this is that you get extremely noisy logs if you are requesting docker images through a group repository, since inevitably some of them won't exist on the remote. *Expected*: A 401 should be logged at as it currently does, with no stack trace. {quote}2019-02-11 00:04:50,847-0700 WARN [qtp-952548213-606] admin org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/abcd/efgh/manifests/1472: 401 - org.sonatype.nexus.repository.docker.internal.V2Exception: authentication required 2019-02-11 00:04:51,117-0700 WARN [qtp-952548213-513] admin org.sonatype.nexus.repository.docker.internal.auth.BearerScheme - Failed to retrieve docker bearer token org.apache.http.auth.AuthenticationException: Could not retrieve token from [https://gcr.io/v2/token]. Status code: 401 at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.executeOK(DockerProxyFacetImpl.java:514) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.retrieveBearerToken(DockerProxyFacetImpl.java:457) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.access$3(DockerProxyFacetImpl.java:442) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl$2.retrieveBearerToken(DockerProxyFacetImpl.java:841) 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:105) 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:263) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185) at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111) at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72) at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.lambda$0(FilteredHttpClientSupport.java:56) at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport$$Lambda$377.00000000042A7760.call(Unknown Source) at org.sonatype.nexus.repository.httpclient.internal.BlockingHttpClient.filter(BlockingHttpClient.java:123) at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.doExecute(FilteredHttpClientSupport.java:56) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.execute(DockerProxyFacetImpl.java:325) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:405) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:375) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.doGet(ProxyFacetSupport.java:245) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.doGet(DockerProxyFacetImpl.java:859) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.lambda$1(ProxyFacetSupport.java:234) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport$$Lambda$376.00000000042A6A20.call(Unknown Source) at org.sonatype.nexus.common.io.CooperatingFuture.performCall(CooperatingFuture.java:122) at com.sonatype.nexus.hazelcast.internal.io.DistributedCooperatingFuture.performCall(DistributedCooperatingFuture.java:50) at org.sonatype.nexus.common.io.CooperatingFuture.call(CooperatingFuture.java:64) at org.sonatype.nexus.common.io.ScopedCooperationFactorySupport$ScopedCooperation.cooperate(ScopedCooperationFactorySupport.java:99) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:225) at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:50) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.LastDownloadedHandler.handle(LastDownloadedHandler.java:54) 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.GeneratedMethodAccessor245.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) at java.lang.reflect.Method.invoke(Method.java:508) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) {quote} A 400 response may also be logged with a similar large stack trace at WARN level: {noformat} 2019-02-25 08:16:19,886-0700 WARN [qtp62377353-128296] example org.sonatype.nexus.repository.docker.internal.auth.BearerScheme - Failed to retrieve docker bearer token org.apache.http.auth.AuthenticationException: Could not retrieve token from https://gcr.io/v2/token. Status code: *400* at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.executeOK(DockerProxyFacetImpl.java:507) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.retrieveBearerToken(DockerProxyFacetImpl.java:450) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.access$3(DockerProxyFacetImpl.java:435) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl$2.retrieveBearerToken(DockerProxyFacetImpl.java:833) 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:105) 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:263) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185) at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111) at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72) at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.lambda$0(FilteredHttpClientSupport.java:56) at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.dt_access$112(FilteredHttpClientSupport.java) at org.sonatype.nexus.repository.httpclient.internal.BlockingHttpClient.filter(BlockingHttpClient.java:123) at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.doExecute(FilteredHttpClientSupport.java:56) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.execute(DockerProxyFacetImpl.java:318) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:405) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:375) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.doGet(ProxyFacetSupport.java:245) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.doGet(DockerProxyFacetImpl.java:851) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.lambda$1(ProxyFacetSupport.java:234) {noformat}",1
+"NEXUS-19102","02/12/2019 13:03:52","Unable to proxy private Azure (ACR) registry","Hello, We are trying to use Nexus 3 as Proxy for a Private ACR registry (for caching), we set the URL and authentication on configuration but I seem that Nexus is not able to correctly authenticate on ACR. See bellow the logs Using version 3.15-2 of Nexus {code} 2019-02-12 12:45:31,278+0000 WARN [qtp2135221952-13652] admin 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://.azurecr.io/oauth2/token. Returned token is not set at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.retrieveBearerToken(DockerProxyFacetImpl.java:463) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.access$3(DockerProxyFacetImpl.java:442) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl$2.retrieveBearerToken(DockerProxyFacetImpl.java:841) 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:105) 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:263) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185) at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111) at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72) at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.lambda$0(FilteredHttpClientSupport.java:56) at org.sonatype.nexus.repository.httpclient.internal.BlockingHttpClient.filter(BlockingHttpClient.java:123) at org.sonatype.nexus.repository.httpclient.FilteredHttpClientSupport.doExecute(FilteredHttpClientSupport.java:56) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.execute(DockerProxyFacetImpl.java:325) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:405) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:375) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.doGet(ProxyFacetSupport.java:245) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.doGet(DockerProxyFacetImpl.java:859) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.lambda$1(ProxyFacetSupport.java:234) at org.sonatype.nexus.common.io.CooperatingFuture.performCall(CooperatingFuture.java:122) at org.sonatype.nexus.common.io.CooperatingFuture.call(CooperatingFuture.java:64) at org.sonatype.nexus.common.io.ScopedCooperationFactorySupport$ScopedCooperation.cooperate(ScopedCooperationFactorySupport.java:99) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:225) at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:50) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.LastDownloadedHandler.handle(LastDownloadedHandler.java:54) 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.GeneratedMethodAccessor1950.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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy224.handle(Unknown Source) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:59) 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.GeneratedMethodAccessor1007.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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy224.handle(Unknown Source) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:56) 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.GeneratedMethodAccessor1007.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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy224.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.GeneratedMethodAccessor1006.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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy224.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.GeneratedMethodAccessor2014.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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1099) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy224.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.GeneratedMethodAccessor1999.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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy224.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:210) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:172) 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.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:80) 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:101) 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:1634) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) 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:257) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) 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:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) 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:531) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680) at java.lang.Thread.run(Thread.java:748) 2019-02-12 12:45:31,279+0000 WARN [qtp2135221952-13652] admin org.apache.http.impl.auth.HttpAuthenticator - BEARER [complete=true] authentication error: Could not retrieve bearer token from https://.azurecr.io/oauth2/token. Returned token is not set 2019-02-12 12:45:31,283+0000 WARN [qtp2135221952-13652] admin org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/docker-build-example/manifests/master: 401 - org.sonatype.nexus.repository.docker.internal.V2Exception: authentication required {code} Seems a bug to me {code} Could not retrieve bearer token from https://.azurecr.io/oauth2/token. Returned token is not set {code} A docker login work directly with ACR url and provider username/password Regards,",3
+"NEXUS-19103","02/12/2019 15:37:09","Components and assets deleted by cleanup policies should be logged only to ""Cleanup service"" task log","Post NEXUS-18731, Cleanup Policies log details about what they delete to the nexus.log and Cleanup task log. h4. Expected Specific components and assets deleted by cleanup policies should be logged at default levels _only_ to the ""Cleanup service"" task log.",0.5
+"NEXUS-19121","02/14/2019 18:49:02","Delete of component or asset from PyPi proxy repository fails","Select a component or an asset in a pypi proxy repository in Nexus Repo 3.15.2, and try to delete it in the UI. This will fail. Expected: It should be possible to delete cached content from pypi proxy repositories. {quote} 2019-02-14 12:46:20,165-0600 ERROR [qtp125386036-232] admin org.sonatype.nexus.extdirect.internal.ExtDirectExceptionHandler - Failed to invoke action method: coreui_Component.deleteAsset, java-method: org.sonatype.nexus.coreui.ComponentComponent.deleteAsset org.sonatype.nexus.repository.MissingFacetException: No facet of type PyPiHostedFacet attached to repository pypi-proxy at org.sonatype.nexus.repository.manager.internal.RepositoryImpl.facet(RepositoryImpl.java:322) at org.sonatype.nexus.repository.pypi.internal.PyPiHostedComponentMaintenance.deleteRootIndex(PyPiHostedComponentMaintenance.java:94) at org.sonatype.nexus.repository.pypi.internal.PyPiHostedComponentMaintenance.deleteAssetTx(PyPiHostedComponentMaintenance.java:59) 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.storage.DefaultComponentMaintenanceImpl.deleteAsset(DefaultComponentMaintenanceImpl.java:93) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.repository.storage.DefaultComponentMaintenanceImpl.deleteAsset(DefaultComponentMaintenanceImpl.java:84) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.repository.maintenance.internal.MaintenanceServiceImpl.deleteAsset(MaintenanceServiceImpl.java:85) at org.sonatype.nexus.repository.maintenance.MaintenanceService$deleteAsset$0.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:136) at org.sonatype.nexus.coreui.ComponentComponent.deleteAsset(ComponentComponent.groovy:318) 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) 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.ExtDirectDispatcher.invokeMethod(ExtDirectDispatcher.java:82) 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:632) at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:595) at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:130) 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.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:101) 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:1634) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) 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:257) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) 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:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) 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:531) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680) at java.lang.Thread.run(Thread.java:748) 2019-02-14 12:46:33,683-0600 ERROR [qtp125386036-233] admin org.sonatype.nexus.extdirect.internal.ExtDirectExceptionHandler - Failed to invoke action method: coreui_Component.deleteComponent, java-method: org.sonatype.nexus.coreui.ComponentComponent.deleteComponent org.sonatype.nexus.repository.MissingFacetException: No facet of type PyPiHostedFacet attached to repository pypi-proxy at org.sonatype.nexus.repository.manager.internal.RepositoryImpl.facet(RepositoryImpl.java:322) at org.sonatype.nexus.repository.pypi.internal.PyPiHostedComponentMaintenance.deleteRootIndex(PyPiHostedComponentMaintenance.java:94) at org.sonatype.nexus.repository.pypi.internal.PyPiHostedComponentMaintenance.deleteComponentTx(PyPiHostedComponentMaintenance.java:85) 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.storage.DefaultComponentMaintenanceImpl.deleteComponent(DefaultComponentMaintenanceImpl.java:60) at org.sonatype.nexus.repository.storage.DefaultComponentMaintenanceImpl.deleteComponent(DefaultComponentMaintenanceImpl.java:49) at org.sonatype.nexus.repository.maintenance.internal.MaintenanceServiceImpl.deleteComponent(MaintenanceServiceImpl.java:97) at org.sonatype.nexus.repository.maintenance.MaintenanceService$deleteComponent$2.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:136) at org.sonatype.nexus.coreui.ComponentComponent.deleteComponent(ComponentComponent.groovy:276) 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) 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.ExtDirectDispatcher.invokeMethod(ExtDirectDispatcher.java:82) at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63) {quote}",2
+"NEXUS-19125","02/15/2019 14:25:37","Docker pull from mcr.microsoft.com results in 403 due to normalization of 307 redirect URLs removing double slash","Pulling from 'mcr.microsoft.com' via a proxy repository results in a 403, whilst pulling directly from 'mcr.microsoft.com' does not: pull directly: {code:java} docker pull mcr.microsoft.com/powershell:6.1.2-centos-7 6.1.2-centos-7: Pulling from powershell a02a4930cb5d: Already exists 4044620d387b: Pull complete e2ccf76d7aff: Pull complete Digest: sha256:e51d267ccb4caddabe411c194949f390e8762d7e765ceac9bfd8569615a3ad45 Status: Downloaded newer image for mcr.microsoft.com/powershell:6.1.2-centos-7 {code} pulling via proxy repo *(remote URL set to: [https://mcr.microsoft.com|https://mcr.microsoft.com/]):* {code:java} $ docker pull nexus3:8085/powershell:6.1.2-centos-7 6.1.2-centos-7: Pulling from powershell a02a4930cb5d: Already exists 4044620d387b: Pulling fs layer e2ccf76d7aff: Pulling fs layer error pulling image configuration: unauthorized: access to the requested resource is not authorized {code} *Expected*: Pulling via proxy repo should behave in the same way as pulling directly from mcr.microsoft.com.",3
+"NEXUS-19141","02/19/2019 14:42:52","Add REST API Endpoints for User CRUD Operations","Add REST endpoints to perform CRUD operations on users.",3
+"NEXUS-19142","02/19/2019 14:46:20","Add REST API to Set Email Server & Enable/Disable","As part of initial server configuration some administrators may need to configure the email server used by NXRM. They would also need to be able to enable & disable the server which may be separate endpoint(s).",2
+"NEXUS-19143","02/19/2019 15:02:55","Add REST API Endpoint for LDAP CRUD Operations","As part of initial server configuration some administrators may need to configure the LDAP server(s) used by NXRM. They would also need to be able to change the order of the LDAP servers which would be a separate endpoint.",5
+"NEXUS-19144","02/19/2019 15:04:27","Add REST API to Set NXRM License","As part of initial server configuration some administrators may need to upload a license file.",2
+"NEXUS-19145","02/19/2019 15:07:26","Add REST API to Configure IQ Server","As part of initial server configuration some administrators may need to configure the IQ server used by NXRM. We may want a separate endpoint to enable/disable the server.",2
+"NEXUS-19146","02/19/2019 15:09:16","Add REST API Endpoint for Content Selector CRUD","In order to support managing teams we need to be able to support CRUD operations for Content Selectors.",3
+"NEXUS-19170","02/21/2019 18:50:13","Add REST API to Reset User Token","In order to facilitate administrating NXRM we need a REST endpoint which can be used to reset the user token for a given user.",1
+"NEXUS-19187","02/26/2019 00:08:33","Blob store promotion leads to persistent class cast exception in UI","When trying to promote a blob store the follow exception occurs and leads to a persistent error in the UI that doesn't allow blob stores to be viewed or repos created since the blob store drop down is empty. {noformat} 2019-02-25 20:26:29,330+0000 ERROR [qtp1509481252-50] admin org.sonatype.nexus.extdirect.internal.ExtDirectExceptionHandler - Failed to invoke action method: coreui_Blobstore.promoteToGroup, java-method: org.sonatype.nexus.coreui.BlobStoreComponent.promoteToGroup java.lang.ClassCastException: Cannot cast java.lang.Integer to java.lang.Long at java.lang.Class.cast(Class.java:3369) at org.sonatype.nexus.common.collect.AttributesMap.coerce(AttributesMap.java:75) at org.sonatype.nexus.common.collect.AttributesMap.get(AttributesMap.java:153) at org.sonatype.nexus.common.collect.AttributesMap.get(AttributesMap.java:162) at org.sonatype.nexus.common.collect.AttributesMap$get$1.call(Unknown Source) at org.sonatype.nexus.coreui.BlobStoreComponent.asBlobStoreXO(BlobStoreComponent.groovy:221) at org.sonatype.nexus.coreui.BlobStoreComponent.asBlobStoreXO(BlobStoreComponent.groovy:209) at org.sonatype.nexus.coreui.BlobStoreComponent$asBlobStoreXO.callCurrent(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:169) at org.sonatype.nexus.coreui.BlobStoreComponent.promoteToGroup(BlobStoreComponent.groovy:243) at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49) at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47) {noformat} Reproduce steps: # Create a blob store, set a soft quota of 50 # Attempt to promote the blob store # Observe that the blob store UI no longer works due to class cast exception # Reboot Nexus Repo.... observe that the blob store UI is still broken",1
+"NEXUS-19189","02/26/2019 11:42:59","Invalid JSON input error when loading some NPM packages","I try to install protoduck@5.0.1 ([https://www.npmjs.com/package/protoduck)] from my Nexus OSS 3.14.0-04 configured as NPM proxy. NPM responds with error ""npm ERR! 404 Not Found: protoduck@latest"" and Nexus logs ""Invalid JSON input"" (complete stack-trace in attachment). This package is successfully installed when directly calling registry.npmjs.org Related issue [https://github.com/zkat/protoduck/issues/6]",0
+"NEXUS-19235","03/01/2019 11:40:18","Proxy to a Nexus firewall proxy repos returns 404 for quarantined artifacts","A proxy in Nexus A, which points to a proxy repo on Nexus B. The proxy on Nexus B has firewall enabled with quarantine. When a request comes in, for a component that has been quarantined, Nexus B will return a 403, but the proxy in Nexus A will then return a 404. Expectation is that Nexus A proxy should also return a 403, so that it is clear why the build failed to the end developer. Many customers will use a layered approach with Nexus instances, where Nexus instance used by builds do not have direct access to outside internet and firewall is enabled on the Nexus instance that does have outside access.",3
+"NEXUS-19303","03/06/2019 08:26:27","PyPi hosted repository doesn't update index file after uploading new version of existing component","In the latest 3.15.2 version some changes were made to PyPiHostedFacetImpl to store the simple index html file in the blobstore instead of creating the file on the fly. This introduced a bug. When uploading a new version of an existing component the deleteIndex function does not delete the file. This causes the file to remain in the initial state when it was created and fetching the latest version of a component does not work correctly. *3.15.2-01 Patch*: A patch is attached to this issue which fixes this problem for 3.15.2-01. Note that this patch is only applicable to that version, do not try to install it in any other version. To apply this patch, shut down Nexus, and replace the following jar file with the one attached on this issue which has the same file name. {{nexus-3.15.2-01/system/org/sonatype/nexus/plugins/nexus-repository-pypi/3.15.2-01/nexus-repository-pypi-3.15.2-01.jar}} *3.16.0-01 Patch*: A patch is attached to this issue which fixes this problem for 3.16.0-01. Note that this patch is only applicable to that version, do not try to install it in any other version. To apply this patch, shut down Nexus, and replace the following jar file with the one attached on this issue which has the same file name. {{nexus-3.16.0-01/system/org/sonatype/nexus/plugins/nexus-repository-pypi/3.16.0-01/nexus-repository-pypi-3.16.0-01.jar}} *3.16.1-02 Patch* A patch is attached to this issue which fixes this problem for 3.16.1-02. Note that this patch is only applicable to that version, do not try to install it in any other version. To apply this patch, shut down Nexus, and replace the following jar file with the one attached on this issue which has the same file name. {{nexus-3.16.1-02/system/org/sonatype/nexus/plugins/nexus-repository-pypi/3.16.1-02/nexus-repository-pypi-3.16.1-02.jar}} *3.16.2-01 Patch* A patch is attached to this issue which fixes this problem for 3.16.2-01. Note that this patch is only applicable to that version, do not try to install it in any other version. To apply this patch, shut down Nexus, and replace the following jar file with the one attached on this issue which has the same file name. {{nexus-3.16.1-02/system/org/sonatype/nexus/plugins/nexus-repository-pypi/3.16.1-02/nexus-repository-pypi-3.16.1-02.jar}} h4. Diagnosis We found that this was caused by characters in the package names that needed to be normalized (https://www.python.org/dev/peps/pep-0503/#normalized-names). The caching mechanism works be generating and saving the index when it is fetched and then deleting the index file whenever the contents of the repository change. In some cases the delete failed because it was looking for an index using a non-normalized name. Once this fix is released changes to the repository will correctly remove the index and the updated index will be available on the next fetch. After upgrade there may be a small number of cases where new packages (that contain . or _ characters in there name) have been uploaded and the index hasn't been invalidated, this will be obvious because the latest version of that package won't be available. Both uploading a new version of the package or deleting the index file in these cases will fix the problem. To delete an index use the browse function in the UI and find the corresponding index file under the /simple/ tree node and then delete the asset.",0
+"NEXUS-19384","03/12/2019 14:32:11","NPM Group fails to forward requests for updating to members","When proxying NPM packages, the metadata max-age does not work, resulting in new versions of a package not to be downloaded. To reproduce: 1. Create an NPM proxy repo, proxying to a hosted NPM repo on another NXRM 3 instance _(this can be any NPM registry, a remote Nexus 3 is only for the sake of convenience)._ 2. Create an NPM group repo and the add the NPM proxy repo to it. 3. Upload v1.0.0 of NPM package to the remote hosted NPM repo. 4. run _npm i @1.0.0_ against group repo - install works (expected). 5. run _npm i @2.0.0_ against group repo - install fails (expected). 6. Upload v2.0.0 of NPM package to the remote hosted NPM repo. 7. Invalidate the proxy repo cache or wait for 'metadata max-age' time to pass. 8 run _npm i @2.0.0_ against group repo - install fails (unexpected). 9. Invalidate the group repo cache. 10. run _npm i @2.0.0_ against group repo - this time install works.",3
+"NEXUS-19404","03/13/2019 18:54:04","Conditional GET requests for repodata/repomd.xml files always return 304 unmodified","Conditional GET requests made to ""repodata/repomd.xml"" files in a Nexus Repo 2.x yum enabled hosted repository always return 304 unmodified. This breaks proxying of these repositories from Nexus Repo 3.x. Reproduce case: # Enable yum metadata creation on a snapshot maven repository in 2.14.12 # Deploy an rpm into it # Configure a yum proxy repository in Nexus Repo 3, set the remote to the snapshot repository in Nexus Repo 2 # Retreive 'repodata/repomd.xml"" through the proxy # Deploy a new snapshot rpm into Nexus Repo 2 # Verify that yum metadata was regenerated # Invalidate cache in the Repo 3 proxy # Retreive 'repodata/repomd.xml"" through the proxy Observe that in the Nexus Repo 2 log a ""304"" unmodified response is sent for the repodata/repomd.xml file. {quote} 192.168.1.78 - - [13/Mar/2019:13:26:25 -0500] ""GET /nexus/content/repositories/snapshots/repodata/repomd.xml HTTP/1.1"" 304 0 3 {quote} Replaying the same request (with the same headers) through curl shows the same result. {code} curl -v -H ""If-Modified-Since: Wed, 13 Mar 2019 18:13:08 GMT"" -H 'If-None-Match: ""\{SHA1\{3fb868897104aa608240d2a1c74822cc95155755}}""' http://192.168.1.102:8081/nexus/content/repositories/snapshots/repodata/repomd.xml * Trying 192.168.1.102... * TCP_NODELAY set * Connected to 192.168.1.102 (192.168.1.102) port 8081 (#0) > GET /nexus/content/repositories/snapshots/repodata/repomd.xml HTTP/1.1 > Host: 192.168.1.102:8081 > User-Agent: curl/7.54.0 > Accept: */* > If-Modified-Since: Wed, 13 Mar 2019 18:13:08 GMT > If-None-Match: ""\{SHA1\{3fb868897104aa608240d2a1c74822cc95155755}}"" > < HTTP/1.1 304 Not Modified < Date: Wed, 13 Mar 2019 18:27:09 GMT < Server: Nexus/2.14.7-01 < X-Frame-Options: SAMEORIGIN < X-Content-Type-Options: nosniff < Accept-Ranges: bytes < ETag: ""\{SHA1\{3fb868897104aa608240d2a1c74822cc95155755}}"" < * Connection #0 to host 192.168.1.102 left intact {code} But that file has been modified. I'm in GMT-5, btw. {code} $ pwd /home/rseddon/bar/nexus/sonatype-work/nexus/storage/snapshots/repodata $ ls -l total 16 -rw-r--r-- 1 rseddon rseddon 1248 Mar 13 13:25 3436a28862b8bf7064db9e1403d7ebeaa7d0ae84b04a8100a169d870a24df2ee-primary.xml.gz -rw-r--r-- 1 rseddon rseddon 560 Mar 13 13:25 5fe0c4457cb386be344a5bf6db6aab041ec83eec67c8116c6962e88485eaa43f-other.xml.gz -rw-r--r-- 1 rseddon rseddon 836 Mar 13 13:25 dd555431f51dd26c2782835de1e60930e30822a68eefc303d8ac334ac033940f-filelists.xml.gz -rw-r--r-- 1 rseddon rseddon 1500 Mar 13 13:25 repomd.xml {code} ",2
+"NEXUS-19424","03/14/2019 20:09:26","Add ability to cleanup by ""Never downloaded""","We have a repositories (Docker and Maven) with assigned cleanup policy with only ""Last Downloaded Before"" field specified in Criteria And scheduled task of type ""Admin - Cleanup repositories using their associated policies"" to apply those policies But looks like this criteria is not working properly, because I see dozens of maven artifacts and docker tags that haven't been downloaded at all, and created months ago In repository browser I can see something like this {code} Blob created Thu Jan 17 2019 14:35:20 GMT+0300 (Moscow Standard Time) Blob updated Thu Jan 17 2019 14:35:20 GMT+0300 (Moscow Standard Time) Last downloaded has not been downloaded {code} When I examine task logs, I see something like this {code:java} 2019-03-14 20:01:37,871+0000 INFO [quartz-3-thread-19] *SYSTEM org.sonatype.nexus.cleanup.internal.service.CleanupServiceImpl - Deleting components in repository docker-snapshots using policy Clean_not_in_use_for_2_weeks 2019-03-14 20:01:37,879+0000 INFO [quartz-3-thread-19] *SYSTEM org.sonatype.nexus.cleanup.internal.service.CleanupServiceImpl - 2 components cleaned up for repository docker-snapshots {code} ",5
+"NEXUS-19462","03/19/2019 20:41:45","On first admin login ask user to choose anonymous access configuration","As part of the onboarding process, possibly as part of NEXUS-19461 ask the admin user to choose whether anonymous access should be enabled. Acceptance * Don't bug existing users * Tests continue to pass, ensure there's a development-friendly mode * Anonymous access should be the default * Don't impair REST-provisioned instances Notes * This feature should explain the two choices clearly so users understand which one they should choose. ",2
+"NEXUS-19494","03/21/2019 16:12:45","Provide mechanism to test S3 permissions on Blobstore","When using an S3 blobstore, the user is required to define a policy in AWS, following our documentation, and ensure they have the correct permissions. When things go wrong, we see errors in the log, but don't have an easy way to see any AWS information. There would be value in having a 'Verify connection' or similar button on an S3 Blobstore that would ensure Nexus has the correct permissions for the various actions, and in case of error, detailing what is missing (if possible). *Acceptance Criteria* When provisioning or connecting with S3 fails then an appropriate and more exact error message should be reported to the user. Exception cases should consider invalid access id/access token, insufficient permissions or other policy issues such as kms.",5
+"NEXUS-19566","04/02/2019 17:17:07","Multithread S3 blob store upload","The current MultipartUploader is single threaded ([https://github.com/sonatype/nexus-public/blob/master/plugins/nexus-blobstore-s3/src/main/java/org/sonatype/nexus/blobstore/s3/internal/MultipartUploader.java]) and uploads chunks sequentially. For files larger than 5mb, this introduces a considerable slowdown in upload times. In a local test with a 1gb file, comparing against the S3 command line: uploading via S3 CLI took 21 seconds, NXRM took 680 seconds. Much of this time difference appears to be due the the sequential 5mb chunks. If the uploader utilizes multiple threads, it should be considerably faster.",2
+"NEXUS-19607","04/05/2019 18:03:13","NullPointerException in NugetLocalGalleryFacetSupport.maintainAggregateInfo","The following exception was noticed in an HA 3.15.2 environment - unclear if this can happen in a non HA-C environment. {noformat} 2019-03-28 13:59:47,738-0400 ERROR [qtp1719261535-753] GOLD-NXRM-NODE-2 *UNKNOWN com.google.common.eventbus.EventBus.nexus - Could not dispatch event ComponentCreatedEvent{metadata=AttachedEntityMetadata{schema=component, document=component#25:1183{tags:[0],bucket:#21:3,format:nuget,last_updated:Thu Mar 28 13:59:36 EDT 2019,attributes:,group:null,name:Microsoft.AspNetCore.AzureAppServices.HostingStartup,version:2.1.0-preview2-final,ci_name:microsoft.aspnetcore.azureappservices.hostingstartup} v1}, remoteNodeId=null} to subscriber com.sonatype.nexus.repository.nuget.internal.proxy.NugetProxyGalleryFacet$$EnhancerByGuice$$4cf02674@1ea6ca7e method [public void com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.on(org.sonatype.nexus.repository.storage.ComponentCreatedEvent)] java.lang.NullPointerException: null at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.maintainAggregateInfo(NugetLocalGalleryFacetSupport.java:611) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.maintainAggregateInfo(NugetLocalGalleryFacetSupport.java:597) 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.NugetLocalGalleryFacetSupport.maintainAggregateInfo(NugetLocalGalleryFacetSupport.java:576) at com.sonatype.nexus.repository.nuget.internal.NugetLocalGalleryFacetSupport.on(NugetLocalGalleryFacetSupport.java:562) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at sun.reflect.GeneratedMethodAccessor308.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) 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:316) at org.sonatype.nexus.orient.entity.EntityHook.flushEvents(EntityHook.java:289) at org.sonatype.nexus.orient.entity.EntityHook.onAfterTxCommit(EntityHook.java:174) 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:183) at sun.reflect.GeneratedMethodAccessor86.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:193) 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.$Proxy203.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.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport$FeedLoader$1.consume(NugetRemoteGalleryFacetSupport.java:395) 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:391) at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport.passQueryToRemoteRepos(NugetRemoteGalleryFacetSupport.java:326) at com.sonatype.nexus.repository.nuget.internal.NugetRemoteGalleryFacetSupport.feed(NugetRemoteGalleryFacetSupport.java:205) at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.feed(NugetFeedHandler.java:69) at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.doHandle(NugetFeedHandler.java:49) at com.sonatype.nexus.repository.nuget.internal.AbstractNugetHandler.handle(AbstractNugetHandler.java:46) at com.sonatype.nexus.repository.nuget.internal.NugetFeedHandler.handle(NugetFeedHandler.java:1) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.LastDownloadedHandler.handle(LastDownloadedHandler.java:54) 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.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: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:210) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:172) 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.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:80) 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:101) 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:1634) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) 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:257) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) 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:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) 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:531) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680) at java.lang.Thread.run(Thread.java:748) {noformat} h4. Expected NPE should be avoided.",1
+"NEXUS-19618","04/08/2019 20:20:43","Expensive, error prone check done for content validation of checksums","Currently, the validation of checksum file content is going through the tika mime type evaluation layer. This is an expensive check, and is error prone for checksums, since they can potentially start with the same magic byte patterns as many different file formats. See -NEXUS-19018- for a specific example of this. We should simply do a check that the file contains only hex digits, and the right number of them. A simple regex match would work for this. Example: When a Remove Maven snapshots task runs ( or any administrative task like Cleanup Policies) , rebuilds the checksum for a rebuilt maven-metadata.xml file, the generated md5, can fail the entire task: {noformat} 2019-04-06 04:33:07,677-0400 ERROR [quartz-2-thread-13] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - Failed to run task 'Remove Maven snapshots from maven-snapshots' on repository 'maven-snapshots' org.sonatype.nexus.repository.InvalidContentException: Detected content type [audio/x-caf], but expected [text/plain]: com/example/csi/callback/engine/4.6.1.0-GA-SNAPSHOT/maven-metadata.xml.md5 at org.sonatype.nexus.repository.storage.DefaultContentValidator.determineContentType(DefaultContentValidator.java:95) at org.sonatype.nexus.repository.maven.internal.MavenContentValidator.determineContentType(MavenContentValidator.java:79) at org.sonatype.nexus.repository.storage.StorageTxImpl.determineContentType(StorageTxImpl.java:961) at org.sonatype.nexus.repository.storage.StorageTxImpl.buildStorageHeaders(StorageTxImpl.java:707) at org.sonatype.nexus.repository.storage.StorageTxImpl.createBlob(StorageTxImpl.java:679) at sun.reflect.GeneratedMethodAccessor329.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.StateGuardAspect$1.invoke(StateGuardAspect.java:69) at com.sun.proxy.$Proxy232.createBlob(Unknown Source) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.doPut(MavenFacetImpl.java:238) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:45) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.put(MavenFacetImpl.java:202) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataUtils.write(MetadataUtils.java:109) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataUpdater.write(MetadataUpdater.java:202) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataUpdater.lambda$0(MetadataUpdater.java:105) at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:196) at org.sonatype.nexus.transaction.Operations.call(Operations.java:146) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataUpdater.update(MetadataUpdater.java:89) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataUpdater.processMetadata(MetadataUpdater.java:72) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker.lambda$2(MetadataRebuilder.java:461) 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:415) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker.rebuildMetadata(MetadataRebuilder.java:382) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder.rebuild(MetadataRebuilder.java:120) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder.deleteAndRebuild(MetadataRebuilder.java:240) at org.sonatype.nexus.repository.maven.internal.hosted.MavenHostedFacetImpl.deleteMetadata(MavenHostedFacetImpl.java:129) at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl.removeSnapshots(RemoveSnapshotsFacetImpl.java:141) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask.execute(RemoveSnapshotsTask.java:72) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask.execute(RemoveSnapshotsTask.java:61) 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:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 2019-04-06 04:33:07,678-0400 WARN [quartz-2-thread-13] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskJob - Task 10f37d14-fdbc-44bd-8d8f-459c68d1238e : 'remove snapshots (keep 2)' [repository.maven.remove-snapshots] execution failure org.sonatype.goodies.common.MultipleFailures$MultipleFailuresException: Failed to run task 'Remove Maven snapshots from maven-snapshots'; 1 failure at org.sonatype.goodies.common.MultipleFailures.maybePropagate(MultipleFailures.java:95) at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:84) 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.InvalidContentException: Detected content type [audio/x-caf], but expected [text/plain]: com/example/csi/callback/engine/4.6.1.0-GA-SNAPSHOT/maven-metadata.xml.md5 at org.sonatype.nexus.repository.storage.DefaultContentValidator.determineContentType(DefaultContentValidator.java:95) at org.sonatype.nexus.repository.maven.internal.MavenContentValidator.determineContentType(MavenContentValidator.java:79) at org.sonatype.nexus.repository.storage.StorageTxImpl.determineContentType(StorageTxImpl.java:961) at org.sonatype.nexus.repository.storage.StorageTxImpl.buildStorageHeaders(StorageTxImpl.java:707) at org.sonatype.nexus.repository.storage.StorageTxImpl.createBlob(StorageTxImpl.java:679) at sun.reflect.GeneratedMethodAccessor329.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.StateGuardAspect$1.invoke(StateGuardAspect.java:69) at com.sun.proxy.$Proxy232.createBlob(Unknown Source) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.doPut(MavenFacetImpl.java:238) at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:45) at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.put(MavenFacetImpl.java:202) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataUtils.write(MetadataUtils.java:109) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataUpdater.write(MetadataUpdater.java:202) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataUpdater.lambda$0(MetadataUpdater.java:105) at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:196) at org.sonatype.nexus.transaction.Operations.call(Operations.java:146) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataUpdater.update(MetadataUpdater.java:89) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataUpdater.processMetadata(MetadataUpdater.java:72) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker.lambda$2(MetadataRebuilder.java:461) 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:415) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker.rebuildMetadata(MetadataRebuilder.java:382) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder.rebuild(MetadataRebuilder.java:120) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder.deleteAndRebuild(MetadataRebuilder.java:240) at org.sonatype.nexus.repository.maven.internal.hosted.MavenHostedFacetImpl.deleteMetadata(MavenHostedFacetImpl.java:129) at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl.removeSnapshots(RemoveSnapshotsFacetImpl.java:141) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask.execute(RemoveSnapshotsTask.java:72) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask.execute(RemoveSnapshotsTask.java:61) at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:73) ... 12 common frames omitted {noformat} h4. Expected - A failure processing a single asset inside the RemoveSnapshotsTask should not stop/fail the entire task. It should keep going and process as many assets as it can ( possible separate issue ). - We certainly should *not be performing any validation* of our own generated hash files. - do not do mime type of any hash files, even proxied remotes or uploaded into NXRM - instead use a simpler hash file format detection validation algorithm using a regex or similar - NXRM 2 did that, NXRM 3 should adopt something similar",0
+"NEXUS-19702","04/15/2019 18:54:54","Regression: Yum metadata leaks between trees in a hosted yum repository."," Set up a hosted yum repository in Nexus Repo 3.16.0 with ""repodata depth"" of ""1"". Deploy rpm files to it under two separate directories, such as: {noformat} tools/noarch/my-webapp-1.0.0.rpm tools/noarch/my-webapp-1.0.1.rpm tools-dev/noarch/my-webapp-1.0.2.rpm tools-dev/noarch/my-webapp-1.0.3.rpm {noformat} Now download the primary.xml.gz file from the ""tools/repodata"" directory. You'll find that it contains all of the rpm files. *Expected*: Only rpm files in the same tree as the ""repodata"" directory should be included in its metadata. I also tested on 3.11.0, and this bug does not occur in that version.",1
+"NEXUS-19733","04/18/2019 14:30:37","UnsupportedOperationException: Maintenance method 'getDatabaseStatus' or 'getDatabaseRole' is only supported in clustered mode when generating support zip","Generating a support zip in 3.16.0 puts 2 giant stack traces in logs. Don't do that. {noformat} 2019-04-18 13:05:37,842+0000 WARN [qtp557899631-2397] admin org.sonatype.nexus.jmx.MBean - Failed to get attribute: DatabaseRole java.lang.reflect.InvocationTargetException: null 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.jmx.reflect.ReflectionMBeanAttribute.getValue(ReflectionMBeanAttribute.java:99) at org.sonatype.nexus.jmx.MBean.getAttribute(MBean.java:116) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:647) at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678) at javax.management.MBeanServer$getAttribute$1.call(Unknown Source) at org.sonatype.nexus.internal.atlas.customizers.JmxCustomizer$1$_generate_closure1$_closure6.doCall(JmxCustomizer.groovy:71) at sun.reflect.GeneratedMethodAccessor1447.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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at groovy.lang.Closure.call(Closure.java:434) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1980) at org.codehaus.groovy.runtime.dgm$160.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128) at org.sonatype.nexus.internal.atlas.customizers.JmxCustomizer$1$_generate_closure1.doCall(JmxCustomizer.groovy:66) 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.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.UnsupportedOperationException: Maintenance method 'getDatabaseRole' is only supported in clustered mode at com.sonatype.nexus.hazelcast.internal.orient.DatabaseMaintenanceServiceImpl.whenClustered(DatabaseMaintenanceServiceImpl.java:292) at com.sonatype.nexus.hazelcast.internal.orient.DatabaseMaintenanceServiceImpl.getDatabaseRole(DatabaseMaintenanceServiceImpl.java:162) at com.sonatype.nexus.hazelcast.internal.orient.DatabaseMaintenanceBean.getDatabaseRole(DatabaseMaintenanceBean.java:46) ... 199 common frames omitted 2019-04-18 13:05:37,843+0000 WARN [qtp557899631-2397] admin org.sonatype.nexus.jmx.MBean - Failed to get attribute: DatabaseStatus java.lang.reflect.InvocationTargetException: null 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.jmx.reflect.ReflectionMBeanAttribute.getValue(ReflectionMBeanAttribute.java:99) at org.sonatype.nexus.jmx.MBean.getAttribute(MBean.java:116) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:647) at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678) at javax.management.MBeanServer$getAttribute$1.call(Unknown Source) at org.sonatype.nexus.internal.atlas.customizers.JmxCustomizer$1$_generate_closure1$_closure6.doCall(JmxCustomizer.groovy:71) at sun.reflect.GeneratedMethodAccessor1447.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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at groovy.lang.Closure.call(Closure.java:434) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1980) at org.codehaus.groovy.runtime.dgm$160.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128) at org.sonatype.nexus.internal.atlas.customizers.JmxCustomizer$1$_generate_closure1.doCall(JmxCustomizer.groovy:66) 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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at groovy.lang.Closure.call(Closure.java:434) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2163) at org.codehaus.groovy.runtime.dgm$165.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128) at org.sonatype.nexus.internal.atlas.customizers.JmxCustomizer$1.generate(JmxCustomizer.groovy:59) at org.sonatype.nexus.supportzip.GeneratedContentSourceSupport.prepare(GeneratedContentSourceSupport.java:51) at org.sonatype.nexus.supportzip.SupportBundle$ContentSource$prepare.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.sonatype.nexus.supportzip.SupportBundle$ContentSource$prepare$0.call(Unknown Source) at org.sonatype.nexus.internal.atlas.SupportZipGeneratorImpl$_generate_closure3.doCall(SupportZipGeneratorImpl.groovy:188) ... at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.UnsupportedOperationException: Maintenance method 'getDatabaseStatus' is only supported in clustered mode at com.sonatype.nexus.hazelcast.internal.orient.DatabaseMaintenanceServiceImpl.whenClustered(DatabaseMaintenanceServiceImpl.java:292) at com.sonatype.nexus.hazelcast.internal.orient.DatabaseMaintenanceServiceImpl.getDatabaseStatus(DatabaseMaintenanceServiceImpl.java:176) at com.sonatype.nexus.hazelcast.internal.orient.DatabaseMaintenanceBean.getDatabaseStatus(DatabaseMaintenanceBean.java:56) ... 199 common frames omitted {noformat}",2
+"NEXUS-19801","04/24/2019 18:52:18","Exception thrown in metadata rebuild stops snapshot removal task completely."," I can't tell what the exact cause of this was, but this exception caused the maven metadata rebuild at the end of a snapshot removal task to stop entirely. The task should not stop because it wasn't able to rebuild one maven-metadata.xml file. The task should properly log the file(s) involved in the failure if an exception occurs so we can find out the cause. {quote} 2019-04-20 09:02:22,325-0400 ERROR [quartz-2-thread-11] *SYSTEM org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask - Failed to run task 'Remove Maven snapshots from maven-snapshots' on repository 'maven-snapshots' java.lang.RuntimeException: java.io.EOFException: input contained no data at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataUpdater.update(MetadataUpdater.java:111) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataUpdater.processMetadata(MetadataUpdater.java:72) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker.lambda$2(MetadataRebuilder.java:461) 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:415) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder$Worker.rebuildMetadata(MetadataRebuilder.java:382) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder.rebuild(MetadataRebuilder.java:120) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataRebuilder.deleteAndRebuild(MetadataRebuilder.java:240) at org.sonatype.nexus.repository.maven.internal.hosted.MavenHostedFacetImpl.deleteMetadata(MavenHostedFacetImpl.java:129) at org.sonatype.nexus.repository.maven.internal.RemoveSnapshotsFacetImpl.removeSnapshots(RemoveSnapshotsFacetImpl.java:141) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask.execute(RemoveSnapshotsTask.java:72) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at org.sonatype.nexus.repository.maven.tasks.RemoveSnapshotsTask.execute(RemoveSnapshotsTask.java:61) 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:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.io.EOFException: input contained no data at org.codehaus.plexus.util.xml.pull.MXParser.fillBuf(MXParser.java:3037) at org.codehaus.plexus.util.xml.pull.MXParser.more(MXParser.java:3080) at org.codehaus.plexus.util.xml.pull.MXParser.parseProlog(MXParser.java:1451) at org.codehaus.plexus.util.xml.pull.MXParser.nextImpl(MXParser.java:1436) at org.codehaus.plexus.util.xml.pull.MXParser.next(MXParser.java:1131) at org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader.read(MetadataXpp3Reader.java:913) at org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader.read(MetadataXpp3Reader.java:519) at org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader.read(MetadataXpp3Reader.java:548) at org.sonatype.nexus.repository.maven.internal.MavenModels.readMetadata(MavenModels.java:83) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataUtils.read(MetadataUtils.java:84) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataUpdater.lambda$0(MetadataUpdater.java:93) at org.sonatype.nexus.transaction.OperationPoint.proceed(OperationPoint.java:64) at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:196) at org.sonatype.nexus.transaction.Operations.call(Operations.java:146) at org.sonatype.nexus.repository.maven.internal.hosted.metadata.MetadataUpdater.update(MetadataUpdater.java:89) ... 39 common frames omitted {quote} ",3
+"NEXUS-19811","04/25/2019 16:55:24","Offline/Misconfigured blob store should be flagged in UI","Follow on to NEXUS-18103. When a blob store can't start correctly NXRM now starts correctly and allows reconfiguration. However, it's not apparent from the UI that the blob store has a problem. NXRM should flag the blob store in the UI as offline.",1
+"NEXUS-19858","05/01/2019 20:13:29","No confirmation when promoting a blob store.","Fire up Nexus 3.16.1 with default configuration, go to ""repository --> blob stores"". Click on the default blob store, and then hit ""promote to group"". No warning is given, the blob store is immediately promoted. This operation cannot be undone because the new group blobstore is in use by 7 repositories, and the promoted blobstore is a member of the group. It is entirely too easy to make this irreversible configuration change by mistake. *Expected*: A confirmation should be given before performing an operation which cannot be undone.",2
+"NEXUS-19891","05/07/2019 10:19:50","Yum repository configured through script API cache not working","when creating a yum proxy; according to [https://support.sonatype.com/hc/en-us/articles/115010182627-Understanding-Caching-Configuration] setting *maximum metadata age to 0* should make sure that new versions are always found. I have ran the following tests scenario: * create a small repository with *my.1.rpm* * create proxy in nexus * install using this proxy: works fine * now add *my.2.rpm* in the repository * try to update; yum/zypper says no new versions are to be found (not even after forcing refresh,...) -Note that when I set *maximum metadata age to 1* and I wait one minute, then yum/zypper does find the new package. However I would like to set this to 0 in order to never have to wait a minute. Yet that configuration does not seem to work; the nexus cache is never invalidated somehow.- *EDIT* I have been able to pin down the problem more specifically: I create the proxy in nexus using the script API (a major hassle by the way). The repository seems correctly created but doesn't seem to work perfectly well unless I change something manually. The exact same configuration entered manually in the UI works fine. * API configured repo: ** I use python to do something similar to this: *** curl -X POST -u admin:admin123 --header 'Content-Type: application/json' [http://localhost:8081/service/rest/v1/script] -d '\{""name"":""test"",""type"":""groovy"",""content"":""repository.createYumProxy('\''test'\'', '\''http://repository:8080/'\'')""}' *** curl -X POST -u admin:admin123 --header ""Content-Type: text/plain"" '[http://127.0.0.1:8081/service/rest/v1/script/test/run'] ** the exact script that I post (more readable here than with all those escaped quotes): *** repository.createYumProxy('\{name}', '\{url}'); *** repository.getRepositoryManager().get('\{name}').getConfiguration().getAttributes().'proxy'.'contentMaxAge' = 0; *** repository.getRepositoryManager().get('\{name}').getConfiguration().getAttributes().'proxy'.'metadataMaxAge' = 0; *** repository.getRepositoryManager().get('\{name}').getConfiguration().getAttributes().'negativeCache'.'timeToLive' = 0; *** repository.getRepositoryManager().get('\{name}').getConfiguration().getAttributes().'cleanup' = ['policyName': null]; * manually configured repo: ** *create yum (proxy)* ** name: test ** url: [http://repository:8080|http://repository:8080/] ** maximum component age: 0 ** maximum metadata age: 0 ** not found cache TTL: 0 ** *create repository* I don't see a single difference between the manually configured repository and the one I configured using the script API. Yet the manually configured repository is correctly functional. *EDIT2* using the script API again to fetch the repository attributes I found that a manually configured repository was slightly different from the one configured through the API: * API configured repo: ** httpclient:[connection:[blocked:false, autoBlock:true]], proxy:[remoteUrl:http://repository:8080/, contentMaxAge:0, metadataMaxAge:0], negativeCache:[enabled:true, timeToLive:0], storage:[blobStoreName:default, strictContentTypeValidation:true] * manually configured repo: ** httpclient:[blocked:false, autoBlock:true], proxy:[remoteUrl:http://repository:8080/, contentMaxAge:0.0, metadataMaxAge:0.0], routingRules:[routingRuleId:null], negativeCache:[enabled:true, timeToLive:0.0], storage:[blobStoreName:default, strictContentTypeValidation:true], cleanup:[policyName:None] * so I enhanced my script to create a proxy repository through the API like this: ** repository.createYumProxy('\{name}', '\{url}') ** repository.getRepositoryManager().get('\{name}').getConfiguration().getAttributes().'httpclient' = repository.getRepositoryManager().get('\{name}').getConfiguration().getAttributes().'httpclient'.'connection' ** repository.getRepositoryManager().get('\{name}').getConfiguration().getAttributes().'routingRules' = ['routingRuleId':'null'] ** repository.getRepositoryManager().get('\{name}').getConfiguration().getAttributes().'proxy'.'contentMaxAge' = 0.0 ** repository.getRepositoryManager().get('\{name}').getConfiguration().getAttributes().'proxy'.'metadataMaxAge' = 0.0 ** repository.getRepositoryManager().get('\{name}').getConfiguration().getAttributes().'negativeCache'.'timeToLive' = 0.0 ** repository.getRepositoryManager().get('\{name}').getConfiguration().getAttributes().'cleanup' = ['policyName':'None'] * now both a manually configured repository give exactly the same response (except for the order of the attributes). Yet still the cache of the repository configured through the API seems never to expire... *EDIT3:* **I have attached a complete test scenario to this ticket; running *docker-compose up* ** will run the tests. The tests will fail because the newest version of the rpm cannot be installed. If you want to inspect and/or run the tests manually; then change the COMMAND in the Dockerfile to sleep; and you can then run the tests manually and inspect the test container.",0
+"NEXUS-19900","05/08/2019 09:56:53","Cleanup service task failing with NPE","Cleanup service task fails consistently on our nexus repository. I have tried deleting it and restarting the service to recreate it. It always end up in the same state Log from the general log {code:java} 2019-05-08 10:40:45,108+0200 INFO [qtp9548576-163] jsp org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Cleanup service' [repository.cleanup] runNow 2019-05-08 10:40:45,109+0200 INFO [qtp9548576-163] jsp org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Cleanup service' [repository.cleanup] state change WAITING -> RUNNING 2019-05-08 10:40:45,161+0200 INFO [quartz-3-thread-2] *SYSTEM org.sonatype.nexus.cleanup.internal.task.CleanupTask - Task log: /nexus-data/log/tasks/repository.cleanup-20190508104045152.log 2019-05-08 10:40:45,162+0200 INFO [quartz-3-thread-2] *SYSTEM org.sonatype.nexus.cleanup.internal.task.CleanupTask - Starting cleanup 2019-05-08 10:40:45,169+0200 WARN [quartz-3-thread-2] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskJob - Task 605b2ab3-008a-4d3a-9168-aadb3ef7976b : 'Cleanup service' [repository.cleanup] execution failure java.lang.NullPointerException: null at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:882) at org.sonatype.nexus.cleanup.internal.storage.orient.OrientCleanupPolicyEntityAdapter.get(OrientCleanupPolicyEntityAdapter.java:133) at org.sonatype.nexus.cleanup.internal.storage.orient.OrientCleanupPolicyStorage.lambda$3(OrientCleanupPolicyStorage.java:95) at org.sonatype.nexus.orient.transaction.OrientOperations.lambda$1(OrientOperations.java:56) 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.orient.transaction.OrientOperations.call(OrientOperations.java:56) at org.sonatype.nexus.cleanup.internal.storage.orient.OrientCleanupPolicyStorage.get(OrientCleanupPolicyStorage.java:95) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.cleanup.internal.service.CleanupServiceImpl.findPolicy(CleanupServiceImpl.java:128) at org.sonatype.nexus.cleanup.internal.service.CleanupServiceImpl.cleanup(CleanupServiceImpl.java:93) at org.sonatype.nexus.cleanup.internal.service.CleanupServiceImpl.lambda$0(CleanupServiceImpl.java:83) at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:407) at org.sonatype.nexus.cleanup.internal.service.CleanupServiceImpl.cleanup(CleanupServiceImpl.java:81) at org.sonatype.nexus.cleanup.internal.task.CleanupTask.execute(CleanupTask.java:43) 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.quartz.internal.QuartzThreadPool.lambda$0(QuartzThreadPool.java:143) 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) 2019-05-08 10:40:45,171+0200 INFO [quartz-3-thread-2] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Cleanup service' [repository.cleanup] state change RUNNING -> WAITING (FAILED) {code} Log from the specific task execution log file {code:java} 2019-05-08 10:40:45,155+0200 INFO [quartz-3-thread-2] *SYSTEM org.sonatype.nexus.cleanup.internal.task.CleanupTask - Task information: 2019-05-08 10:40:45,158+0200 INFO [quartz-3-thread-2] *SYSTEM org.sonatype.nexus.cleanup.internal.task.CleanupTask - ID: 605b2ab3-008a-4d3a-9168-aadb3ef7976b 2019-05-08 10:40:45,158+0200 INFO [quartz-3-thread-2] *SYSTEM org.sonatype.nexus.cleanup.internal.task.CleanupTask - Type: repository.cleanup 2019-05-08 10:40:45,158+0200 INFO [quartz-3-thread-2] *SYSTEM org.sonatype.nexus.cleanup.internal.task.CleanupTask - Name: Cleanup service 2019-05-08 10:40:45,158+0200 INFO [quartz-3-thread-2] *SYSTEM org.sonatype.nexus.cleanup.internal.task.CleanupTask - Description: Run repository cleanup 2019-05-08 10:40:45,162+0200 INFO [quartz-3-thread-2] *SYSTEM org.sonatype.nexus.cleanup.internal.task.CleanupTask - Starting cleanup 2019-05-08 10:40:45,168+0200 ERROR [quartz-3-thread-2] *SYSTEM org.sonatype.nexus.cleanup.internal.task.CleanupTask - Failed to run task 'Run repository cleanup' java.lang.NullPointerException: null at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:882) at org.sonatype.nexus.cleanup.internal.storage.orient.OrientCleanupPolicyEntityAdapter.get(OrientCleanupPolicyEntityAdapter.java:133) at org.sonatype.nexus.cleanup.internal.storage.orient.OrientCleanupPolicyStorage.lambda$3(OrientCleanupPolicyStorage.java:95) at org.sonatype.nexus.orient.transaction.OrientOperations.lambda$1(OrientOperations.java:56) 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.orient.transaction.OrientOperations.call(OrientOperations.java:56) at org.sonatype.nexus.cleanup.internal.storage.orient.OrientCleanupPolicyStorage.get(OrientCleanupPolicyStorage.java:95) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.cleanup.internal.service.CleanupServiceImpl.findPolicy(CleanupServiceImpl.java:128) at org.sonatype.nexus.cleanup.internal.service.CleanupServiceImpl.cleanup(CleanupServiceImpl.java:93) at org.sonatype.nexus.cleanup.internal.service.CleanupServiceImpl.lambda$0(CleanupServiceImpl.java:83) at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:407) at org.sonatype.nexus.cleanup.internal.service.CleanupServiceImpl.cleanup(CleanupServiceImpl.java:81) at org.sonatype.nexus.cleanup.internal.task.CleanupTask.execute(CleanupTask.java:43) 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.quartz.internal.QuartzThreadPool.lambda$0(QuartzThreadPool.java:143) 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) 2019-05-08 10:40:45,168+0200 INFO [quartz-3-thread-2] *SYSTEM org.sonatype.nexus.cleanup.internal.task.CleanupTask - Task complete {code} I realize this is not a support channel, but I hope this is something that can help getting the bug we are seeing fixed.",0
+"NEXUS-19955","05/17/2019 16:51:29","GroupFacetImpl#isStale should not fail request if CacheInfo is missing","GroupFacetImpl#isStale should be more lenient in its checking of whether CacheInfo is missing. Instead, it should assume in both group/proxy code that the asset is stale if CacheInfo is missing, and log a warning. [https://github.com/sonatype/nexus-public/blob/f4316cbb68f776d4af2dafe1aca146c138783e50/components/nexus-repository/src/main/java/org/sonatype/nexus/repository/group/GroupFacetImpl.java#L242] Example of failed request: {quote}org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: GET /repository/xxx/yyy java.lang.IllegalStateException: Missing: org.sonatype.nexus.repository.cache.CacheInfojava.lang.IllegalStateException: Missing: org.sonatype.nexus.repository.cache.CacheInfo at com.google.common.base.Preconditions.checkState(Preconditions.java:504) at org.sonatype.nexus.common.collect.AttributesMap.require(AttributesMap.java:207) at org.sonatype.nexus.repository.group.GroupFacetImpl.isStale(GroupFacetImpl.java:243) at org.sonatype.nexus.repository.npm.internal.NpmGroupFacet.getFromCache(NpmGroupFacet.java:222) at org.sonatype.nexus.repository.npm.internal.NpmGroupFacet$getFromCache.call(Unknown Source) at org.sonatype.nexus.repository.npm.internal.NpmGroupPackageHandler.buildMergedPackageRoot(NpmGroupPackageHandler.groovy:68) {quote} *Update*: I've attached a patch which fixes this issue for Nexus Repo 3.18.1-01. To apply this patch, download the attached jar and replace this file in the installation with it: {quote} nexus-3.18.1-01/system/org/sonatype/nexus/nexus-repository/3.18.1-01/nexus-repository-3.18.1-01.jar {quote} Then restart Nexus Repo. The sha1 checksum of the attached jar is: fc6d69a387e60370aed07d15fb8c6318602351ea",0
+"NEXUS-20029","05/29/2019 07:36:10","nxrm3-maven-plugin does not deploy pom","When using the plugin with {{mvn install nxrm3:staging-deploy -Dtag=1.2.3}} I see that the actual artifact (jar file) of my project is uploaded to my Nexus repository. However, the {{pom.xml}} of my project is missing in the Nexus repository and it looks like it was not uploaded. Is this a bug or am I missing something in my configuration (I haven't specified a {{packaging}} type in my pom)? For reference, I'm using the plugin with the following configuration: {code:xml} org.sonatype.pluginsnxrm3-maven-plugin1.0.2......staging-reposource-repodest-repodefault-deploydeploydeploy {code}",5
+"NEXUS-20246","06/17/2019 16:45:18","clarify which databases are exported per NXRM version by task ""Admin - Export databases for backup""","After updating from Nexus 3.15.2 to version 3.16.1 I discovered that only 4 databases are exported by the task _""Admin - Export databases for backup""_: * security * acccesslog * config * component But the [help.sonatype|https://help.sonatype.com/repomanager3/backup-and-restore/configure-and-run-the-backup-task] page says that the task should also export databases: * audit * analytics All of the 6 databases were exported by the same task before the update to Nexus 3.16.1. *For the Nexus 3.16.1 is exporting only 4 databases is an issue or a feautre?* Task log: {code:java} 2019-06-17 16:23:45,710+0200 INFO [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - Task information: 2019-06-17 16:23:45,714+0200 INFO [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - ID: 51d726eb-743a-41de-b5dc-62888c2dfab2 2019-06-17 16:23:45,714+0200 INFO [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - Type: db.backup 2019-06-17 16:23:45,714+0200 INFO [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - Name: Backup pour refresh 2019-06-17 16:23:45,714+0200 INFO [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - Description: Admin - Export databases for backup 2019-06-17 16:23:45,716+0200 INFO [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - task named 'Backup pour refresh' database backup to location backup_for_refresh 2019-06-17 16:23:45,754+0200 INFO [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.quartz.internal.QuartzSchedulerSPI - Scheduler put into stand-by mode 2019-06-17 16:23:45,760+0200 INFO [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskJob - Task not cancelable: 'Backup pour refresh' [db.backup] 2019-06-17 16:23:45,761+0200 WARN [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.scheduling.internal.TaskActivation - Unable to cancel task: Backup pour refresh 2019-06-17 16:23:45,887+0200 INFO [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - database backup of accesslog starting 2019-06-17 16:23:45,909+0200 INFO [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - database backup of config starting 2019-06-17 16:23:45,910+0200 INFO [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - database backup of component starting 2019-06-17 16:23:45,910+0200 INFO [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - database backup of security starting 2019-06-17 16:23:46,985+0200 INFO [dbbackup-10-thread-4] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupRunner - database backup of security completed successfully 2019-06-17 16:23:47,386+0200 INFO [dbbackup-10-thread-1] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupRunner - database backup of accesslog completed successfully 2019-06-17 16:23:47,578+0200 INFO [dbbackup-10-thread-2] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupRunner - database backup of config completed successfully 2019-06-17 16:26:27,672+0200 INFO [dbbackup-10-thread-3] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupRunner - database backup of component completed successfully 2019-06-17 16:26:27,681+0200 INFO [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.quartz.internal.QuartzSchedulerSPI - Scheduler put into ready mode 2019-06-17 16:26:27,681+0200 INFO [quartz-3-thread-18] *SYSTEM org.sonatype.nexus.internal.backup.DatabaseBackupTask - Task complete {code} ",1
+"NEXUS-20281","06/19/2019 12:27:02","""java.io.IOException: Write end dead"" occurs when group members do not use the same blobstore","When requesting components from a group repository that contains member repos configured with different blob stores, an ""org.sonatype.nexus.blobstore.api.BlobStoreException: java.io.IOException: Write end dead, Cause: Write end dead"" error can randomly occur causing build/install failure. *Reproduce (using NPM):* 1. Create 2 (file-based) blob stores e.g. store_A and store_B 2. Create the following repo setup: NPM_Group (store_A): [NPM_Hosted (store_A), NPM_Proxy (store_B)] 3. Upload some components to the hosted repo. 4. Perform an npm install against the group repo that will request components from both member repos. *Expected:* Install completes with all required components served. *Actual:* Install fails with ""org.sonatype.nexus.blobstore.api.BlobStoreException: java.io.IOException: Write end dead, Cause: Write end dead"" e.g. {code:java} > npm install npm ERR! code E500 npm ERR! 500 javax.servlet.ServletException: org.sonatype.nexus.blobstore.api.BlobStoreException: BlobId: 5a53f62c-7712-434f-a785-bd60f1800ff3, java.io.IOException: Write end dead, Cause: Write end dead: xxxyyy@1.0.0 {code} {code:java} 127.0.0.1 - - [19/Jun/2019:11:40:39 +0100] ""GET /repository/ccl-npm/xxxyyy HTTP/1.1"" 500 - 2059 1056 {code} {code:java} org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: GET /repository/ccl-npm/xxxyyy org.sonatype.nexus.blobstore.api.BlobStoreException: BlobId: 5a53f62c-7712-434f-a785-bd60f1800ff3, java.io.IOException: Write end dead, Cause: Write end dead at org.sonatype.nexus.blobstore.file.FileBlobStore.tryCreate(FileBlobStore.java:364) at org.sonatype.nexus.blobstore.file.FileBlobStore.create(FileBlobStore.java:300) at org.sonatype.nexus.blobstore.file.FileBlobStore.doCreate(FileBlobStore.java:281) at org.sonatype.nexus.blobstore.BlobStoreSupport.create(BlobStoreSupport.java:92) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.blobstore.BlobStoreSupport.create(BlobStoreSupport.java:79) at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272) at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) at org.sonatype.nexus.repository.storage.BlobTx.create(BlobTx.java:72) at org.sonatype.nexus.repository.storage.StorageTxImpl.createBlob(StorageTxImpl.java:609) at sun.reflect.GeneratedMethodAccessor298.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:272) 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.$Proxy212.createBlob(Unknown Source) at org.sonatype.nexus.repository.npm.internal.NpmFacetUtils.storeContent(NpmFacetUtils.java:131) at org.sonatype.nexus.repository.npm.internal.NpmFacetUtils.savePackageRoot(NpmFacetUtils.java:389) at org.sonatype.nexus.repository.npm.internal.NpmGroupFacet.savePackageRootToCache(NpmGroupFacet.java:288) 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.npm.internal.NpmGroupFacet.saveToCache(NpmGroupFacet.java:273) at org.sonatype.nexus.repository.npm.internal.NpmGroupFacet.buildMergedPackageRoot(NpmGroupFacet.java:269) at org.sonatype.nexus.repository.npm.internal.NpmGroupFacet.lambda$0(NpmGroupFacet.java:172) at org.sonatype.nexus.common.io.CooperatingFuture.performCall(CooperatingFuture.java:122) at com.sonatype.nexus.hazelcast.internal.io.DistributedCooperatingFuture.performCall(DistributedCooperatingFuture.java:50) at org.sonatype.nexus.common.io.CooperatingFuture.call(CooperatingFuture.java:64) at org.sonatype.nexus.common.io.ScopedCooperationFactorySupport$ScopedCooperation.cooperate(ScopedCooperationFactorySupport.java:99) at org.sonatype.nexus.repository.npm.internal.NpmGroupFacet.buildPackageRoot(NpmGroupFacet.java:162) at org.sonatype.nexus.repository.npm.internal.NpmGroupFacet$buildPackageRoot$0.call(Unknown Source) at org.sonatype.nexus.repository.npm.internal.NpmGroupPackageHandler.buildMergedPackageRoot(NpmGroupPackageHandler.groovy:77) at sun.reflect.GeneratedMethodAccessor303.invoke(Unknown Source) 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:177) at org.sonatype.nexus.repository.npm.internal.NpmGroupPackageHandler.doGet(NpmGroupPackageHandler.groovy:57) at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:93) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.LastDownloadedHandler.handle(LastDownloadedHandler.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.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: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:212) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:174) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:126) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ... Caused by: java.io.IOException: Write end dead at java.io.PipedInputStream.read(PipedInputStream.java:310) at java.io.PipedInputStream.read(PipedInputStream.java:377) at org.sonatype.nexus.common.hash.MultiHashingInputStream.read(MultiHashingInputStream.java:66) at com.google.common.io.CountingInputStream.read(CountingInputStream.java:63) at java.security.DigestInputStream.read(DigestInputStream.java:161) 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:109) at org.sonatype.nexus.blobstore.file.internal.SimpleFileOperations.create(SimpleFileOperations.java:61) at org.sonatype.nexus.blobstore.file.FileBlobStore.lambda$0(FileBlobStore.java:281) at org.sonatype.nexus.blobstore.file.FileBlobStore.tryCreate(FileBlobStore.java:334) ... 143 common frames omitted {code} Issue not observed when repos are using the same blob store.",5
+"NEXUS-20552","07/23/2019 14:51:14","Repair - Reconcile component database from blobstore task dry run option can block download of hosted assets which do not have an owning component","h4. Problem Summary Some repository formats allow storing asset records without an owning component. When the Dry Run option of the Repair - Reconcile component database from blobstore task is used, logic is triggered that incorrectly deletes such asset records from the component database. The related blobs are seemingly not deleted from the blobstore ( ie. they are recoverable ) but the assets are no longer downloadable after being deleted from the database. Recover the incorrectly deleted asset records by running a Repair - Reconcile component database from blobstore task, without the Dry Run option enabled. h4. Sample Reproduce for Yum Hosted repo 1. Create a yum-hosted repo at zero depth 2. Deploy an rpm file into it. I used [http://mirror.centos.org/centos/7/os/x86_64/Packages/389-ds-base-1.3.8.4-15.el7.x86_64.rpm] and this command: {noformat} curl -v -u admin:admin123 ""http://localhost:8081/repository/yum-hosted/os/x86_64/Packages/PackageKit-glib-1.1.10-1.el7.centos.x86_64.rpm"" --upload-file PackageKit-glib-1.1.10-1.el7.centos.x86_64.rpm --request PUT {noformat} 3. Attempt to download the RPM file at the same path you uploaded it. This should work with 200 response. 4. After 60 seconds)expected), the Browse and Search views show the repodata/* files are generated. Attempt to download these metadata files - it works. 5. Create a Repair - Reconcile component database from blobstore task. *Select the Dry Run option.* Run the task. 6. *Bug 1*: Logging reports that an RPM file would have been restored by the task: {noformat} 2019-07-23 10:24:03,879-0300 INFO [quartz-3-thread-2] *SYSTEM org.sonatype.nexus.blobstore.restore.RestoreMetadataTask - ::DRY RUN:: Actions will be logged, but no changes will be made. 2019-07-23 10:24:03,923-0300 INFO [quartz-3-thread-2] *SYSTEM com.sonatype.nexus.blobstore.restore.internal.YumRestoreBlobStrategy - ::DRY RUN:: Restored asset, blob store: default, repository: yum-hosted, path: os/x86_64/Packages/PackageKit-glib-1.1.10-1.el7.centos.x86_64.rpm, blob name: os/x86_64/Packages/PackageKit-glib-1.1.10-1.el7.centos.x86_64.rpm, blob id: 7f3dc2bf-c00b-4d8c-bafb-4e5670ac9bcc {noformat} Why would it restore that file? The file downloads fine, is a valid RPM and there are no inconsistencies between blobstore and database. 7. 60 seconds after the reconcile task finishes, the YUM metadata is rebuilt automatically - supposedly from the manipulation which did not happen? ( ie dry run ): {noformat} 2019-07-23 10:24:03,949-0300 INFO [quartz-3-thread-2] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'reconcile' [blobstore.rebuildComponentDB] state change RUNNING -> WAITING (OK) 2019-07-23 10:25:03,929-0300 INFO [event-6-thread-17] *SYSTEM org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl - Rebuilding yum metadata for repository yum-hosted 2019-07-23 10:25:03,954-0300 INFO [event-6-thread-17] *SYSTEM org.sonatype.nexus.repository.yum.internal.createrepo.CreateRepoFacetImpl - Finished rebuilding yum metadata for repository yum-hosted {noformat} 8. Now you are in the following state: * the RPM blob file is still in the blob store, not marked soft-deleted or changed in any way from when it was first uploaded * the Browse view only shows os/x86_64/Packages empty node ( normal according to docs after running reconcile ) * the Search view for yum-hosted is empty ( normal according to docs after running reconcile ) * *Bug 2:* attempts to download yum-hosted metadata files or the rpm file all fail with 404 9. Run the Reconcile component database from blobstore task again, this time without the Dry Run option selected. After 60 seconds yum metadata is rebuilt and repodata files and the rpm is downloadable. The dry run option is essentially acting like it is manipulating the database in the inverse of reconciling. h4. Expected - dry run should not trigger any other tasks, or act like it actually did anything other than log what it would do - reconcile task had no business manipulating a perfectly good and working RPM, even if this was not dry run - rpms that are not soft-deleted or manipulated visibly should still be downloadable from the yum-hosted repo, regardless of the presence of metadata",2
+"NEXUS-20640","07/26/2019 15:17:28","docker push may fail with blob upload unknown due to race condition","We have several reports, that in rare cases, docker pushes to NXRM hosted repos may fail with messages similar to: {quote} 48983fe960c3: Preparing 128dd347f60c: Preparing e1a204bf4760: Preparing 28f6517e2463: Preparing d9ff549177a9: Preparing 28f6517e2463: Layer already exists 128dd347f60c: Layer already exists d9ff549177a9: Layer already exists e1a204bf4760: Layer already exists 48983fe960c3: Pushed *blob upload unknown* ##[error]blob upload unknown ##[error]/usr/bin/docker failed with return code: 1 {quote} {noformat:title=3.16.1 nexus.log messages} 2019-07-25 16:47:13,420-0700 WARN [qtp884065834-20671] username org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/b7654fa4-5b64-4db2-adab-7f5d1159b658/0 (F:\nexus3\blobs\primary blob store\content\directpath\nexus-repository-docker\b7654fa4-5b64-4db2-adab-7f5d1159b658\0.properties), reason: Docker upload cleaned up. 2019-07-25 16:47:13,420-0700 WARN [qtp884065834-20671] username org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/b7654fa4-5b64-4db2-adab-7f5d1159b658/1564098432951 (F:\nexus3\blobs\primary blob store\content\directpath\nexus-repository-docker\b7654fa4-5b64-4db2-adab-7f5d1159b658\1564098432951.properties), reason: Docker upload cleaned up. 2019-07-25 16:47:13,420-0700 WARN [qtp884065834-20671] username org.sonatype.nexus.blobstore.file.FileBlobStore - Attempt to access soft-deleted blob path$nexus-repository-docker/b7654fa4-5b64-4db2-adab-7f5d1159b658/1564098433295 (F:\nexus3\blobs\primary blob store\content\directpath\nexus-repository-docker\b7654fa4-5b64-4db2-adab-7f5d1159b658\1564098433295.properties), reason: Docker upload cleaned up. 2019-07-25 16:47:13,420-0700 WARN [qtp884065834-20671] username org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl - Failed to complete upload java.lang.IllegalStateException: Missing upload with uuid: b7654fa4-5b64-4db2-adab-7f5d1159b658 at org.sonatype.nexus.repository.docker.internal.UploadManagerImpl.ensureGetUpload(UploadManagerImpl.java:126) at org.sonatype.nexus.repository.docker.internal.UploadManagerImpl.complete(UploadManagerImpl.java:85) at org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl.completeBlobUpload(DockerHostedFacetImpl.java:585) at org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl$$EnhancerByGuice$$43e6bc99.CGLIB$completeBlobUpload$15() at org.sonatype.nexus.repository.docker.internal.DockerHostedFacetImpl$$EnhancerByGuice$$43e6bc99$$FastClassByGuice$$b3a8c7a0.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.docker.internal.DockerHostedFacetImpl$$EnhancerByGuice$$43e6bc99.completeBlobUpload() at org.sonatype.nexus.repository.docker.internal.DockerHostedFacet$completeBlobUpload$8.call(Unknown Source) at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure5.doCall(V2Handlers.groovy:150) at sun.reflect.GeneratedMethodAccessor423.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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy181.handle(Unknown Source) 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.security.SecurityHandler.handle(SecurityHandler.java:52) 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:298) at sun.reflect.GeneratedMethodAccessor128.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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy181.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:90) at sun.reflect.GeneratedMethodAccessor127.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:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy181.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:212) at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:174) 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.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:80) 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:112) 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:101) 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:1602) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) 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:257) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1588) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1557) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:239) 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:502) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) at java.lang.Thread.run(Thread.java:748) {noformat} {code:title=3.161 Audit Log entries} {""timestamp"":""2019-07-25 16:47:13,388-0700"",""nodeId"":""A15B4527-0B17ADD5-D28C7AC1-EF2D5D16-ADAE52AE"",""initiator"":""username/172.20.8.6"",""domain"":""repository.asset"",""type"":""created"",""context"":""v2/-/blobs/sha256:a4ff2e7a414c9476f7edcdb69a93ba0f81f975912a7e51db8173784c50b2a7b4"",""attributes"":{""repository.name"":""docker-internal"",""format"":""docker"",""name"":""v2/-/blobs/sha256:a4ff2e7a414c9476f7edcdb69a93ba0f81f975912a7e51db8173784c50b2a7b4""}} {""timestamp"":""2019-07-25 16:47:13,748-0700"",""nodeId"":""A15B4527-0B17ADD5-D28C7AC1-EF2D5D16-ADAE52AE"",""initiator"":""username/172.20.8.6"",""domain"":""repository.asset"",""type"":""updated"",""context"":""v2/-/blobs/sha256:a4ff2e7a414c9476f7edcdb69a93ba0f81f975912a7e51db8173784c50b2a7b4"",""attributes"":{""repository.name"":""docker-internal"",""format"":""docker"",""name"":""v2/-/blobs/sha256:a4ff2e7a414c9476f7edcdb69a93ba0f81f975912a7e51db8173784c50b2a7b4""}} {code} h4. Initial Analysis This appears to occur when two zero byte chunks for two different layers are uploaded to the same image namespace at the exact same time. Predicting when this could happen is near impossible. h4. Workaround The only workaround at this time is to repeat the same docker push - in the case of CI builds this is especially troublesome, but has been reported to workaround the initial failure.",0
+"NEXUS-20705","08/01/2019 20:41:33","pypi proxy remote simple indexes with absolute URLs are not rewritten correctly causing the pip client to bypass nxrm","1. Create a PyPi proxy repository to https://pypi.rasa.com 2. Execute an install: {noformat} > pip install --index-url http://localhost:8081/repository/rasa/simple rasa-x==0.19.5 DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. Looking in indexes: http://localhost:8081/repository/rasa/simple Collecting rasa-x==0.19.5 User for localhost:8081: admin Password: Downloading https://pypi.rasa.com/api/package/rasa-x/rasa-x-0.19.5.tar.gz (1.8MB) 100% |████████████████████████████████| 1.8MB 1.4MB/s Installing build dependencies ... error Complete output from command /usr/local/opt/python@2/bin/python2.7 /usr/local/lib/python2.7/site-packages/pip install --ignore-installed --no-user --prefix /private/var/folders/w6/y8296l093llf7sl1pm50fr540000gn/T/pip-build-env-HqkGa6/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i http://localhost:8081/repository/rasa/simple -- setuptools>=30.3.0 wheel setuptools_scm==3.2.0: DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. Looking in indexes: http://localhost:8081/repository/rasa/simple Collecting setuptools>=30.3.0 .... {noformat} The problem is the pip client tries to access other hosts ( ""Downloading https://pypi.rasa.com/api/package/rasa-x/rasa-x-0.19.5.tar.gz"" ) to install packages. Loading this page: http://localhost:8081/repository/rasa/simple/rasa-x Will return HTML with absolute URLs to other hosts: {code:xml} Links for rasa-x
Links for rasa-x
rasa-x-0.19.0.tar.gz rasa-x-0.19.0a8.dev31+g18fd4db.tar.gz rasa-x-0.19.0a8.dev41+g1abdee3.tar.gz rasa-x-0.19.0a8.dev42+g7e791dc.tar.gz ... {code} h4. Expected A pip client properly configured to access NXRM PyPi repos should always send requests for packages to the configured index/indexUrl repository. The simple index that NXRM returns to the client should contain URLs mapped to repository from which it is served. ",1
+"NEXUS-20708","08/01/2019 23:32:03","Upgrade wizard always prompts to disable anonymous access","When upgrading to Nexus 3.18.0 from a previously configured version, the upgrade wizard always prompts about enabling anonymous access. Why is this done? If the instance was previously configured to allow anonymous, we should respect that setting. Someone who isn't looking closely or doesn't understand could accidentally disable anonymous access. In most organizations, this would result in a ton of builds breaking. *Expected:* In the wizard, if anonymous access had been enabled prior to the upgrade, then the wizard should default to having anonymous access enabled (and should be disabled if anonymous access had been disabled). For new installs, anonymous access can be defaulted to disabled. ",0
+"NEXUS-20861","08/09/2019 23:13:07","Deleting a nuget package from a proxy repository removes its version from group level metadata","Create a proxy repository to [https://www.powershellgallery.com/api/v2/] Create a nuget group repository ""nuget-group"" and add the proxy repository into it. Download: [http://localhost:8081/repository/nuget-group/FindPackagesById()?id=%27PowerShellGet%27&$skip=0&$top=40] Observe that version 2.0.0 is in the metadata. Download: [http://localhost:8081/repository/nuget-group/PowerShellGet/2.0.0] Now delete the PowerShell-2.0.0.nupkg repository from the proxy, and download the group level metadata again: [http://localhost:8081/repository/nuget-group/FindPackagesById()?id=%27PowerShellGet%27&$skip=0&$top=40] Notice that version 2.0.0 is no longer present in the metadata. This will make subequent download attempts of that version through the group using NuGet client fail. Expiring the group level cache fixes this problem. *Expected*: Removing a nuget package from a proxy repository should not remove its version from the metadata ",1
+"NEXUS-20871","08/13/2019 01:09:16","zero-byte layers uploaded using docker push fail strict content type validation","Docker push may upload zero-byte layers - *this is normal.* This is allowed according to Docker API and a variation of which was allowed in NEXUS-9847. When NXRM has Strict Content Type Validation enabled for the hosted Docker repository, then the content type of the layer cannot be interpreted and therefore evaluated by NXRM. The docker push will fail on a zero byte layer and docker push will report an error. regular log levels reveal: {noformat} 2019-08-01 09:53:59,056+0200 WARN [qtp1994670066-22108] deployment org.sonatype.nexus.repository.storage.StorageTxImpl - An exception occurred determining the content type of asset v2/-/blobs/sha256:f803448ea1da14544cab107f8ca326a88dd21ce05550489c9d97fc74754a8439 in repository docker-private-snapshots 2019-08-01 09:53:59,056+0200 WARN [qtp1994670066-22108] deployment org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: PUT /v2/example/example/blobs/uploads/f2b72013-550d-467a-a13f-17eaac663206: 400 - Invalid docker content v2/-/blobs/sha256:f803448ea1da14544cab107f8ca326a88dd21ce05550489c9d97fc74754a8439 {noformat} Failures at TRACE level logging reveals: {noformat} 2019-08-07 17:04:01,707+0200 TRACE [qtp1994670066-27948] deployment org.sonatype.nexus.repository.docker.internal.DockerContentValidator - Invalid JSON file: v2/-/blobs/sha256:1b86268eaafd954d79fcabd3a66b4dcad424730ecc1d98e13f6ea38c4e7abbd4. Content will be written to disk for manual inspect at: D:\Repositories\nexus-3\tmp\docker-content-validation-failures6737706513019391325 com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input at [Source: (BufferedInputStream); line: 1, column: 0] at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59) at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4133) at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3988) at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3065) {noformat} The examined file in the tmp directory is zero-bytes and the Content-Length header for the docker push is also zero.",3
+"NEXUS-20964","08/27/2019 15:14:11","[Helm Features] Cleanup policy facet should be added for hosted and proxy Helm repositories","Accepted criteria: * User should be able to set up a cleanup policy for hosted/proxy Helm repository",2
+"NEXUS-21579","10/15/2019 14:05:15","[R format] regression test full format","Regression test full R format when all tickets are finished. *Technical notes* * Merged into master of nexus-repository-r * Merged into master of nexus-internal",3
+"NEXUS-22268","12/24/2019 10:16:22","NullPointer appears if run cleanup for hosted created via REST","*Steps to reproduce:* 1. Create repository using REST e.g. for helm {code:java} curl -u admin:admin123 \ -X POST --header 'Content-Type: application/json' \ http://localhost:8081/service/rest/beta/repositories/helm/hosted \ -d '{ ""name"": ""h3232-hosted"", ""online"": true, ""storage"": { ""blobStoreName"": ""default"", ""strictContentTypeValidation"": true, ""writePolicy"": ""ALLOW"" }}'{code} 2. Run cleanup policy task *Expected:* No errors appear *Actual results:* NullPointer appears in the log. {code:java} 2019-12-24 11:06:43,267+0200 INFO [qtp1195943845-205] admin org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Cleanup service' [repository.cleanup] runNow2019-12-24 11:06:43,267+0200 INFO [qtp1195943845-205] admin org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Cleanup service' [repository.cleanup] runNow2019-12-24 11:06:43,269+0200 INFO [qtp1195943845-205] admin org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Cleanup service' [repository.cleanup] state change WAITING -> RUNNING2019-12-24 11:06:43,343+0200 INFO [quartz-3-thread-7] *SYSTEM org.sonatype.nexus.cleanup.internal.task.CleanupTask - Task log: /Users/aornatovskyy/nexus/nexus-internal/target/sonatype-work/nexus3/log/tasks/repository.cleanup-20191224110643332.log2019-12-24 11:07:32,779+0200 WARN [quartz-3-thread-7] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskJob - Task 71acb02a-a375-46c4-93df-5365ec20dd25 : 'Cleanup service' [repository.cleanup] execution failurejava.lang.NullPointerException: null at org.sonatype.nexus.cleanup.internal.service.CleanupServiceImpl.findPolicies(CleanupServiceImpl.java:161) at org.sonatype.nexus.cleanup.internal.service.CleanupServiceImpl.cleanup(CleanupServiceImpl.java:102) at org.sonatype.nexus.cleanup.internal.service.CleanupServiceImpl.lambda$0(CleanupServiceImpl.java:92) at org.sonatype.nexus.cleanup.internal.service.CleanupServiceImpl$$Lambda$573.0000000000000000.accept(Unknown Source) at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:407) at org.sonatype.nexus.cleanup.internal.service.CleanupServiceImpl.cleanup(CleanupServiceImpl.java:90) at org.sonatype.nexus.cleanup.internal.task.CleanupTask.execute(CleanupTask.java:46) at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:100) at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:143) 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.quartz.internal.QuartzThreadPool.lambda$0(QuartzThreadPool.java:143) at org.sonatype.nexus.quartz.internal.QuartzThreadPool$$Lambda$568.0000000000000000.run(Unknown Source) 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:819) {code}",1
+"NEXUS-22714","02/10/2020 13:00:05","Update h.s.c docs to make it clear which formats do/don't have HA-C support","*Acceptance criteria* * The following section needs updating to include the latest formats [https://help.sonatype.com/repomanager3/high-availability#HighAvailability-KnownIssuesandLimitations |https://help.sonatype.com/repomanager3/high-availability#HighAvailability-KnownIssuesandLimitations ] (Missing formats: Cocoapods, Conda, R, Helm, P2, Conan) * Add a new column to https://help.sonatype.com/repomanager3/formats that says whether the format has HA-C support or not. (Formats without HA-C: Apt, Go, Cocoapods, Conda, R, Helm, P2, Conan) ",1
+"NEXUS-23048","03/05/2020 07:56:25","Problem proxying NuGet packages hosted by GitHub Packages","* ,create a new NuGet (proxy) repository ** name it ""agents-net"" ** use [https://nuget.pkg.github.com/agents-net/index.json] as Remote storage URL ** configure authentication with GitHub username / personal access token => repo is available at [http://SERVERURL/repository/agents-net/|https://serverurl/repository/agents-net/] * add NuGet package source in Visual Studio ** [http://SERVERURL/repository/agents-net/index.json|https://serverurl/repository/agents-net/index.json] * create new project in Visual Studio or use an existing one ** Manage NuGet Packages for the project ** select new package source ** select browse tab *** check ""include prerelease"" => VS shows error * in Output / Package Manager the following error is shown ""[Agents.Net] Failed to retrieve metadata from source 'http://.../repository/agents-net/v3/query/1?q=&skip=0&take=26&prerelease=true&semVerLevel=2.0.0'. Response status code does not indicate success: 500 (javax.servlet.ServletException: java.lang.NullPointerException)."" * Log View shows stacktrace to NullPointerException (see also attached log file) ",1
+"NEXUS-23352","03/30/2020 19:44:27","Conan integration in 3.22.0 does not handle Header Only packages","I am unable to upload header only conan pacakges, I get the following error: {noformat} ERROR: Error uploading file: conan_export.tgz, ''conan_export.tgz'' ERROR: Error uploading file: conan_sources.tgz, ''conan_sources.tgz'' {noformat} Those files are not generaed with header only packages. If I touch them in the package local cache (to create empty ones), the upload works. I was using the community supported plugin previsously and I never had the problem.",0