Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-39681

Creating a pipeline with a duplicate name returns a 500 error

    XMLWordPrintable

    Details

    • Epic Link:
    • Sprint:
      tasman
    • Similar Issues:

      Description

      Repro Steps:

      1. Make a request to create a repo from Github

      cbrmbp:blueocean cmeyers$ curl -v -u cmeyers:cmeyers -H 'Content-Type: application/json' http://localhost:8080/jenkins/blue/rest/organizations/jenkins/pipelines/  -d '{ "name" : "test-1", "creatorId" : "io.jenkins.blueocean.blueocean_github_pipeline.GithubPipelineCreatorImpl", "scmConfig" : { "credentialId": "10182e26-a313-43d4-9226-afa6bcb856eb", "config": { "orgName": "cliffmeyers", "repos" : [ "jenkinsfile-experiments" ] } } }'
      
      *   Trying ::1...
      * Connected to localhost (::1) port 8080 (#0)
      * Server auth using Basic with user 'cmeyers'
      > POST /jenkins/blue/rest/organizations/jenkins/pipelines/ HTTP/1.1
      > Host: localhost:8080
      > Authorization: Basic Y21leWVyczpjbWV5ZXJz
      > User-Agent: curl/7.43.0
      > Accept: */*
      > Content-Type: application/json
      > Content-Length: 266
      > 
      * upload completely sent off: 266 out of 266 bytes
      < HTTP/1.1 201 Created
      < Date: Fri, 11 Nov 2016 20:48:11 GMT
      < X-Content-Type-Options: nosniff
      < Stapler-Trace-001: -> evaluate(<hudson.model.Hudson@1f3c9546> :hudson.model.Hudson,"/blue/rest/organizations/jenkins/pipelines")
      < Stapler-Trace-002: -> evaluate(((StaplerProxy)<hudson.model.Hudson@1f3c9546>).getTarget(),"/blue/rest/organizations/jenkins/pipelines")
      < Stapler-Trace-003: -> evaluate(<hudson.model.Hudson@1f3c9546>.getDynamic("blue",...),"/rest/organizations/jenkins/pipelines")
      < Stapler-Trace-004: -> evaluate(<io.jenkins.blueocean.service.embedded.BlueOceanRootAction@184a72e8> :io.jenkins.blueocean.service.embedded.BlueOceanRootAction,"/rest/organizations/jenkins/pipelines")
      < Stapler-Trace-005: -> evaluate(((StaplerProxy)<io.jenkins.blueocean.service.embedded.BlueOceanRootAction@184a72e8>).getTarget(),"/rest/organizations/jenkins/pipelines")
      < X-Blueocean-Refresher: S4eAlkDJibjPcDbmJRYFc7iJxNQ=
      < Stapler-Trace-006: -> evaluate(<io.jenkins.blueocean.BlueOceanUI@1ff90977> :io.jenkins.blueocean.BlueOceanUI,"/rest/organizations/jenkins/pipelines")
      < Stapler-Trace-007: -> evaluate(<io.jenkins.blueocean.BlueOceanUI@1ff90977>.getDynamic("rest",...),"/organizations/jenkins/pipelines")
      < Stapler-Trace-008: -> evaluate(<io.jenkins.blueocean.rest.ApiHead@daceec4> :io.jenkins.blueocean.rest.ApiHead,"/organizations/jenkins/pipelines")
      < Stapler-Trace-009: -> evaluate(<io.jenkins.blueocean.rest.ApiHead@daceec4>.getDynamic("organizations",...),"/jenkins/pipelines")
      < Stapler-Trace-010: -> evaluate(<io.jenkins.blueocean.service.embedded.rest.OrganizationContainerImpl@6dd2417c> :io.jenkins.blueocean.service.embedded.rest.OrganizationContainerImpl,"/jenkins/pipelines")
      < Stapler-Trace-011: -> evaluate(<io.jenkins.blueocean.service.embedded.rest.OrganizationContainerImpl@6dd2417c>.getDynamic("jenkins",...),"/pipelines")
      < Stapler-Trace-012: -> evaluate(<io.jenkins.blueocean.service.embedded.rest.OrganizationImpl@42b23f66> :io.jenkins.blueocean.service.embedded.rest.OrganizationImpl,"/pipelines")
      < Stapler-Trace-013: -> evaluate(<io.jenkins.blueocean.service.embedded.rest.OrganizationImpl@42b23f66>.getPipelines(),"")
      < Stapler-Trace-014: -> evaluate(<io.jenkins.blueocean.service.embedded.rest.PipelineContainerImpl@1e3c2d8a> :io.jenkins.blueocean.service.embedded.rest.PipelineContainerImpl,"")
      < Stapler-Trace-015: -> <io.jenkins.blueocean.service.embedded.rest.PipelineContainerImpl@1e3c2d8a>.list(...)
      < Stapler-Trace-016: -> <io.jenkins.blueocean.service.embedded.rest.PipelineContainerImpl@1e3c2d8a>.create(...)
      < Location: http://localhost:8080/jenkins/blue/rest/organizations/jenkins/pipelines/test-1/
      < X-Jenkins: 2.7.1
      < X-Jenkins-Session: bd37a504
      < Content-Type: application/json;charset=UTF-8
      < Content-Length: 954
      < Server: Jetty(9.2.15.v20160210)
      < 
      * Connection #0 to host localhost left intact
      {"_class":"io.jenkins.blueocean.rest.impl.pipeline.OrganizationFolderPipelineImpl","_links":{"pipelines":{"_class":"io.jenkins.blueocean.rest.hal.Link","href":"/blue/rest/organizations/jenkins/pipelines/test-1/pipelines/"},"self":{"_class":"io.jenkins.blueocean.rest.hal.Link","href":"/blue/rest/organizations/jenkins/pipelines/test-1/"},"actions":{"_class":"io.jenkins.blueocean.rest.hal.Link","href":"/blue/rest/organizations/jenkins/pipelines/test-1/actions/"},"runs":{"_class":"io.jenkins.blueocean.rest.hal.Link","href":"/blue/rest/organizations/jenkins/pipelines/test-1/runs/"},"queue":{"_class":"io.jenkins.blueocean.rest.hal.Link","href":"/blue/rest/organizations/jenkins/pipelines/test-1/queue/"}},"actions":[],"displayName":"Cliff Meyers","fullDisplayName":"Cliff%20Meyers","fullName":"test-1","name":"test-1","organization":"jenkins","permissions":{"create":true,"read":true,"start":true,"stop":true},"numberOfFolders":0,"numberOfPipelines":0}
      

      The request is successful.

      2. Create another repo but specify the same name, e.g. test-1

      cbrmbp:blueocean cmeyers$ curl -v -u cmeyers:cmeyers -H 'Content-Type: application/json' http://localhost:8080/jenkins/blue/rest/organizations/jenkins/pipelines/  -d '{ "name" : "test-1", "creatorId" : "io.jenkins.blueocean.blueocean_github_pipeline.GithubPipelineCreatorImpl", "scmConfig" : { "credentialId": "10182e26-a313-43d4-9226-afa6bcb856eb", "config": { "orgName": "cliffmeyers", "repos" : [ "blueocean-pr-testing" ] } } }'
      
      *   Trying ::1...
      * Connected to localhost (::1) port 8080 (#0)
      * Server auth using Basic with user 'cmeyers'
      > POST /jenkins/blue/rest/organizations/jenkins/pipelines/ HTTP/1.1
      > Host: localhost:8080
      > Authorization: Basic Y21leWVyczpjbWV5ZXJz
      > User-Agent: curl/7.43.0
      > Accept: */*
      > Content-Type: application/json
      > Content-Length: 263
      > 
      * upload completely sent off: 263 out of 263 bytes
      < HTTP/1.1 500 Server Error
      < Date: Fri, 11 Nov 2016 20:48:42 GMT
      < X-Content-Type-Options: nosniff
      < Stapler-Trace-001: -> evaluate(<hudson.model.Hudson@1f3c9546> :hudson.model.Hudson,"/blue/rest/organizations/jenkins/pipelines")
      < Stapler-Trace-002: -> evaluate(((StaplerProxy)<hudson.model.Hudson@1f3c9546>).getTarget(),"/blue/rest/organizations/jenkins/pipelines")
      < Stapler-Trace-003: -> evaluate(<hudson.model.Hudson@1f3c9546>.getDynamic("blue",...),"/rest/organizations/jenkins/pipelines")
      < Stapler-Trace-004: -> evaluate(<io.jenkins.blueocean.service.embedded.BlueOceanRootAction@184a72e8> :io.jenkins.blueocean.service.embedded.BlueOceanRootAction,"/rest/organizations/jenkins/pipelines")
      < Stapler-Trace-005: -> evaluate(((StaplerProxy)<io.jenkins.blueocean.service.embedded.BlueOceanRootAction@184a72e8>).getTarget(),"/rest/organizations/jenkins/pipelines")
      < X-Blueocean-Refresher: S4eAlkDJibjPcDbmJRYFc7iJxNQ=
      < Stapler-Trace-006: -> evaluate(<io.jenkins.blueocean.BlueOceanUI@1ff90977> :io.jenkins.blueocean.BlueOceanUI,"/rest/organizations/jenkins/pipelines")
      < Stapler-Trace-007: -> evaluate(<io.jenkins.blueocean.BlueOceanUI@1ff90977>.getDynamic("rest",...),"/organizations/jenkins/pipelines")
      < Stapler-Trace-008: -> evaluate(<io.jenkins.blueocean.rest.ApiHead@daceec4> :io.jenkins.blueocean.rest.ApiHead,"/organizations/jenkins/pipelines")
      < Stapler-Trace-009: -> evaluate(<io.jenkins.blueocean.rest.ApiHead@daceec4>.getDynamic("organizations",...),"/jenkins/pipelines")
      < Stapler-Trace-010: -> evaluate(<io.jenkins.blueocean.service.embedded.rest.OrganizationContainerImpl@6dd2417c> :io.jenkins.blueocean.service.embedded.rest.OrganizationContainerImpl,"/jenkins/pipelines")
      < Stapler-Trace-011: -> evaluate(<io.jenkins.blueocean.service.embedded.rest.OrganizationContainerImpl@6dd2417c>.getDynamic("jenkins",...),"/pipelines")
      < Stapler-Trace-012: -> evaluate(<io.jenkins.blueocean.service.embedded.rest.OrganizationImpl@42b23f66> :io.jenkins.blueocean.service.embedded.rest.OrganizationImpl,"/pipelines")
      < Stapler-Trace-013: -> evaluate(<io.jenkins.blueocean.service.embedded.rest.OrganizationImpl@42b23f66>.getPipelines(),"")
      < Stapler-Trace-014: -> evaluate(<io.jenkins.blueocean.service.embedded.rest.PipelineContainerImpl@71a9bf72> :io.jenkins.blueocean.service.embedded.rest.PipelineContainerImpl,"")
      < Stapler-Trace-015: -> <io.jenkins.blueocean.service.embedded.rest.PipelineContainerImpl@71a9bf72>.list(...)
      < Stapler-Trace-016: -> <io.jenkins.blueocean.service.embedded.rest.PipelineContainerImpl@71a9bf72>.create(...)
      < Stapler-Trace-017: -> evaluate(<hudson.model.Hudson@1f3c9546> :hudson.model.Hudson,"/oops")
      < Stapler-Trace-018: -> evaluate(((StaplerProxy)<hudson.model.Hudson@1f3c9546>).getTarget(),"/oops")
      < Stapler-Trace-019: -> jenkins/model/Jenkins/oops.jelly on <hudson.model.Hudson@1f3c9546>
      < Expires: Thu, 01 Jan 1970 00:00:00 GMT
      < Cache-Control: no-cache,no-store,must-revalidate
      < X-Hudson-Theme: default
      < Content-Type: text/html;charset=UTF-8
      < Set-Cookie: JSESSIONID.c9ee16f3=vsuty4jnl6es1u10v6qsn83y3;Path=/jenkins;HttpOnly
      < X-Hudson: 1.395
      < X-Jenkins: 2.7.1
      < X-Jenkins-Session: bd37a504
      < X-Hudson-CLI-Port: 62969
      < X-Jenkins-CLI-Port: 62969
      < X-Jenkins-CLI2-Port: 62969
      < X-Frame-Options: sameorigin
      < X-Instance-Identity: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAshmnrLKmTOVMobCQWzIodjGATvbeLWHu6SnAtjVExnL0uPDdhY18reH6MpcXG1p4jjp08x8BdQUI0ybowchY7t+pAO/nIKwRSe5XkdluKZhvNQVMS9IetqyTsnrje1ikVa2mz5kqdrXaR/Ay6p6HcRx/4HehqUWnPecpF/mtldeX7W3NwMk1X2Ty0XGdwAEA231a2ejK0A246Od8ebA1zkhrmZztZlEF+JKdjgAN+Rtk4tYJqWdh8e8IWCGnmt8lWPhl2uhdLEsCQUp2p9qq3RBhD7cevnbusF9Q741v/oeZ6d5h4lyY136X/8ZxsuJKtQ0NovxBfTlA5qdX2CWcpQIDAQAB
      < X-SSH-Endpoint: localhost:62968
      < Content-Length: 17311
      < Server: Jetty(9.2.15.v20160210)
      < 
      
      
      
      
        
        <!DOCTYPE html><html><head resURL="/jenkins/static/bd37a504" data-rooturl="/jenkins" data-resurl="/jenkins/static/bd37a504">
          
      
          <title>Jenkins [Jenkins]</title><link rel="stylesheet" href="/jenkins/static/bd37a504/css/layout-common.css" type="text/css" /><link rel="stylesheet" href="/jenkins/static/bd37a504/css/style.css" type="text/css" /><link rel="stylesheet" href="/jenkins/static/bd37a504/css/color.css" type="text/css" /><link rel="stylesheet" href="/jenkins/static/bd37a504/css/responsive-grid.css" type="text/css" /><link rel="shortcut icon" href="/jenkins/static/bd37a504/favicon.ico" type="image/vnd.microsoft.icon" /><link color="black" rel="mask-icon" href="/jenkins/images/mask-icon.svg" /><script>var isRunAsTest=false; var rootURL="/jenkins"; var resURL="/jenkins/static/bd37a504";</script><script src="/jenkins/static/bd37a504/scripts/prototype.js" type="text/javascript"></script><script src="/jenkins/static/bd37a504/scripts/behavior.js" type="text/javascript"></script><script src='/jenkins/adjuncts/bd37a504/org/kohsuke/stapler/bind.js' type='text/javascript'></script><script src="/jenkins/static/bd37a504/scripts/yui/yahoo/yahoo-min.js"></script><script src="/jenkins/static/bd37a504/scripts/yui/dom/dom-min.js"></script><script src="/jenkins/static/bd37a504/scripts/yui/event/event-min.js"></script><script src="/jenkins/static/bd37a504/scripts/yui/animation/animation-min.js"></script><script src="/jenkins/static/bd37a504/scripts/yui/dragdrop/dragdrop-min.js"></script><script src="/jenkins/static/bd37a504/scripts/yui/container/container-min.js"></script><script src="/jenkins/static/bd37a504/scripts/yui/connection/connection-min.js"></script><script src="/jenkins/static/bd37a504/scripts/yui/datasource/datasource-min.js"></script><script src="/jenkins/static/bd37a504/scripts/yui/autocomplete/autocomplete-min.js"></script><script src="/jenkins/static/bd37a504/scripts/yui/menu/menu-min.js"></script><script src="/jenkins/static/bd37a504/scripts/yui/element/element-min.js"></script><script src="/jenkins/static/bd37a504/scripts/yui/button/button-min.js"></script><script src="/jenkins/static/bd37a504/scripts/yui/storage/storage-min.js"></script><script src="/jenkins/static/bd37a504/scripts/hudson-behavior.js" type="text/javascript"></script><script src="/jenkins/static/bd37a504/scripts/sortable.js" type="text/javascript"></script><script>crumb.init("", "");</script><link rel="stylesheet" href="/jenkins/static/bd37a504/scripts/yui/container/assets/container.css" type="text/css" /><link rel="stylesheet" href="/jenkins/static/bd37a504/scripts/yui/assets/skins/sam/skin.css" type="text/css" /><link rel="stylesheet" href="/jenkins/static/bd37a504/scripts/yui/container/assets/skins/sam/container.css" type="text/css" /><link rel="stylesheet" href="/jenkins/static/bd37a504/scripts/yui/button/assets/skins/sam/button.css" type="text/css" /><link rel="stylesheet" href="/jenkins/static/bd37a504/scripts/yui/menu/assets/skins/sam/menu.css" type="text/css" /><link rel="search" href="/jenkins/opensearch.xml" type="application/opensearchdescription+xml" title="Jenkins" /><meta name="ROBOTS" content="INDEX,NOFOLLOW" /><script src="/jenkins/static/bd37a504/scripts/yui/cookie/cookie-min.js"></script><link rel='stylesheet' href='/jenkins/adjuncts/bd37a504/io/jenkins/blueocean/try.css' type='text/css' /><script src='/jenkins/adjuncts/bd37a504/io/jenkins/blueocean/try.js' type='text/javascript'></script><script src="/jenkins/static/bd37a504/jsbundles/page-init.js" type="text/javascript"></script></head><body data-model-type="hudson.model.Hudson" id="jenkins" class="yui-skin-sam jenkins-2.7.1 two-column" data-version="2.7.1"><a href="#skip2content" class="skiplink">Skip to content</a><div id="page-head"><div id="header"><div class="logo"><a id="jenkins-home-link" href="/jenkins/"><img src="/jenkins/static/bd37a504/images/headshot.png" alt="title" id="jenkins-head-icon" /><img src="/jenkins/static/bd37a504/images/title.png" alt="title" width="139" id="jenkins-name-icon" height="34" /></a></div><div class="login"> <a href="/jenkins/login?from=%2Fjenkins%2Fblue%2Frest%2Forganizations%2Fjenkins%2Fpipelines%2F"><b>log in</b></a>
          |
          <a href="/jenkins/signup"><b>sign up</b></a></div><div class="searchbox hidden-xs"><form method="get" name="search" action="/jenkins/search/" style="position:relative;" class="no-json"><div id="search-box-minWidth"></div><div id="search-box-sizer"></div><div id="searchform"><input name="q" placeholder="search" id="search-box" class="has-default-text" /> <a href="http://wiki.jenkins-ci.org/display/JENKINS/Search+Box"><img src="/jenkins/static/bd37a504/images/16x16/help.png" style="width: 16px; height: 16px; " class="icon-help icon-sm" /></a><div id="search-box-completion"></div><script>createSearchBox("/jenkins/search/");</script></div></form></div></div><div id="breadcrumbBar"><tr id="top-nav"><td id="left-top-nav" colspan="2"><link rel='stylesheet' href='/jenkins/adjuncts/bd37a504/lib/layout/breadcrumbs.css' type='text/css' /><script src='/jenkins/adjuncts/bd37a504/lib/layout/breadcrumbs.js' type='text/javascript'></script><div class="top-sticker noedge"><div class="top-sticker-inner"><div id="right-top-nav"></div><ul id="breadcrumbs"><li class="item"><a href="/jenkins/" class="model-link inside">Jenkins</a></li><li href="/jenkins/" class="children"></li></ul><div id="breadcrumb-menu-target"></div></div></div></td></tr></div></div><div id="page-body" class="clear"><div id="side-panel"><div class="task"><a href="http://jenkins-ci.org/" class="task-icon-link"><img src="/jenkins/static/bd37a504/images/24x24/next.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-next icon-md" /></a> <a href="http://jenkins-ci.org/" class="task-link">Jenkins project</a></div><div class="task"><a href="http://issues.jenkins-ci.org/" class="task-icon-link"><img src="/jenkins/static/bd37a504/images/24x24/gear2.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-gear2 icon-md" /></a> <a href="http://issues.jenkins-ci.org/" class="task-link">Bug tracker</a></div><div class="task"><a href="http://jenkins-ci.org/content/mailing-lists" class="task-icon-link"><img src="/jenkins/static/bd37a504/images/24x24/search.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-search icon-md" /></a> <a href="http://jenkins-ci.org/content/mailing-lists" class="task-link">Mailing Lists</a></div><div class="task"><a href="https://twitter.com/jenkinsci" class="task-icon-link"><img src="/jenkins/static/bd37a504/images/24x24/user.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-user icon-md" /></a> <a href="https://twitter.com/jenkinsci" class="task-link">Twitter: @jenkinsci</a></div></div><div id="main-panel"><a name="skip2content"></a><h1 style="text-align: center"><img src="/jenkins/static/bd37a504/images/rage.png" width="154" height="179" /><span style="font-size:50px"> Oops!</span></h1><div id="error-description"><p>A problem occurred while processing the request.
              Please check <a href="https://issues.jenkins-ci.org/">our bug tracker</a> to see if a similar problem has already been reported.
              If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem.
              If you think this is a new issue, please file a new issue.
              When you file an issue, make sure to add the entire stack trace, along with the version of Jenkins and relevant plugins.
              <a href="http://jenkins-ci.org/content/mailing-lists">The users list</a> might be also useful in understanding what has happened.</p><h2>Stack trace</h2><pre style="margin:2em; clear:both">javax.servlet.ServletException: java.lang.IllegalArgumentException: Project of the name test-1 already exists
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.MetaClass$3.doDispatch(MetaClass.java:196)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:686)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
      	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:812)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
      	at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:206)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      	at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:49)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	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.success(BasicHeaderProcessor.java:140)
      	at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:82)
      	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:76)
      	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
      	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
      	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
      	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
      	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
      	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
      	at org.eclipse.jetty.server.Server.handle(Server.java:499)
      	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
      	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
      	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.IllegalArgumentException: Project of the name test-1 already exists
      	at hudson.model.ItemGroupMixIn.createProject(ItemGroupMixIn.java:320)
      	at jenkins.model.Jenkins.createProject(Jenkins.java:2644)
      	at io.jenkins.blueocean.service.embedded.rest.AbstractPipelineCreatorImpl.create(AbstractPipelineCreatorImpl.java:32)
      	at io.jenkins.blueocean.blueocean_github_pipeline.GithubPipelineCreatorImpl.create(GithubPipelineCreatorImpl.java:59)
      	at io.jenkins.blueocean.rest.model.BluePipelineContainer.create(BluePipelineContainer.java:43)
      	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.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:324)
      	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:167)
      	at org.kohsuke.stapler.SelectionInterceptedFunction$Adapter.invoke(SelectionInterceptedFunction.java:36)
      	at org.kohsuke.stapler.verb.HttpVerbInterceptor.invoke(HttpVerbInterceptor.java:48)
      	at org.kohsuke.stapler.SelectionInterceptedFunction.bindAndInvoke(SelectionInterceptedFunction.java:26)
      	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:100)
      	at org.kohsuke.stapler.IndexDispatcher.dispatch(IndexDispatcher.java:26)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	... 78 more
      </pre></div></div></div><footer><div class="container-fluid"><div class="row"><div class="col-md-6" id="footer"></div><div class="col-md-18"><span class="page_generated">Page generated: Nov 11, 2016 3:48:42 PM EST</span><span class="rest_api"><a href="api/">REST API</a></span><span class="jenkins_ver"><a href="http://jenkins-ci.org/">Jenkins ver. 2.7.1</a></span><div id="l10n-dialog" class="dialog"></div><div id="l10n-footer" style="display:none; float:left"><a href="#" onclick="return showTranslationDialog();"><img src="/jenkins/static/bd37a504/plugin/translation/flags.png" />
            Help us localize this page
          </a></div><script>var footer = document.getElementById('l10n-footer');
          var f = document.getElementById('footer');
          f.insertBefore(footer,f.firstChild);
          footer.style.display="block";
      
          var translation={}; 
          translation.bundles = "Cbk0LZg11bbB6PucNTFC8LSpOzBukTjyFp+WOsTu3GAPZMTIM3QmpUXkKKmHGhn3F8O2dCUjQmiThzTMRYtvPq0FkaOHU83n6YskD+GZZrDEnfHRfvMeb8Dcq7IRqeXdN9YP3D2CUsRAEnLKuWUTSPITMwMFLzEnDM08zWnYkhXiadL6aqCngTJbQ3YPCBzWZblTu5sAOETynf1yj3tssQfrLS0hWtrQMXab4bGCQZm2zNeo46+PoZyuA96cXkgEOm5Bp0dbXcm7yLIAAEO8ewBf9bfBsolyAPZVSP75siSQTYDF4t75jY8RXu0WzYm3cXmGDpIcesgck1ONEqi7wJ+8H1RkDMmxTdPndYaqcUCBCZF94/dtWvvzvIOzV3sCNgjX5fJD4z6ogCgVShvWyAZ+EI8CRv8LhVb9BqnE6INHwzseZ0IIo0LUEePYz//cHHGMps5XGQjDKNIVJ5Hy9T/ub/t7zg6Uz893Yh0flAHLnV7uQHmABKWaoySxSU/S8i/0QQTlzlAN073wNtvSwZp7QUhSIv42PUc4PMFVvmM=";
          translation.detectedLocale = "";
      
          function showTranslationDialog() {
            if(!translation.launchDialog)
              loadScript("/jenkins/static/bd37a504/plugin/translation/dialog.js");
            else
              translation.launchDialog();
            return false; 
      * Connection #0 to host localhost left intact
          }</script></div></div></div></footer></body></html>
      cbrmbp:blueocean cmeyers$ 
      

      Note the 500 error above.

        Attachments

          Issue Links

            Activity

            Hide
            cliffmeyers Cliff Meyers added a comment -

            We should probably use 400 for this. Long-term we will probably need a way to specify additional information about the error in the response body (error code or similar). I don't know if we want to take that on right now, but if it's easy then maybe worth doing.

            If it's not too much trouble, perhaps we should verify that we return a 404 if we try to create a Git repo with a bad URL or a Github repo with invalid orgName or repoNames.

            Show
            cliffmeyers Cliff Meyers added a comment - We should probably use 400 for this. Long-term we will probably need a way to specify additional information about the error in the response body (error code or similar). I don't know if we want to take that on right now, but if it's easy then maybe worth doing. If it's not too much trouble, perhaps we should verify that we return a 404 if we try to create a Git repo with a bad URL or a Github repo with invalid orgName or repoNames.
            Hide
            vivek Vivek Pandey added a comment -

            Cliff Meyers yeah 400 for duplicate name. I am going to fix it as part of https://github.com/jenkinsci/blueocean-plugin/pull/573, its a WIP and fixing it as part of that is better than doing it in separate PR. I am going to close this issue and create a task in PR 573.

            Show
            vivek Vivek Pandey added a comment - Cliff Meyers yeah 400 for duplicate name. I am going to fix it as part of https://github.com/jenkinsci/blueocean-plugin/pull/573 , its a WIP and fixing it as part of that is better than doing it in separate PR. I am going to close this issue and create a task in PR 573.
            Hide
            vivek Vivek Pandey added a comment -

            Sorry Cliff Meyers I asked you to open this but its easier to fix it as part of JENKINS-38847. I am closing this one.

            Show
            vivek Vivek Pandey added a comment - Sorry Cliff Meyers I asked you to open this but its easier to fix it as part of JENKINS-38847 . I am closing this one.

              People

              • Assignee:
                vivek Vivek Pandey
                Reporter:
                cliffmeyers Cliff Meyers
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: