title: Jenkins Cannot deploy to artifactory (database constraint error)
body: <p>I am using Artifactory  OSS v4.5.1, Jenkins v1.648, Gradle v2.9, on Ubuntu 14.04</p>
  
  <p>I am using artifactory plugin for jenkins v2.4.7 to deploy an artifact generated by gradle build script</p>
  
  <p>When I run gradle artifactoryPublish by hand, everything is ok, but when i try to deploy from jenkins, the jar file deploys fine, but the build info cause an error</p>
  
  <p>here is jenkins console output:</p>
  
  <pre><code>Jenkins Artifactory Plugin version: 2.4.7
  Jenkins Artifactory Plugin version: 2.4.7
  [Gradle] - Launching build.
  [workspace] $ gradle jar artifactoryPublish
  [buildinfo] Properties file found at '/tmp/buildInfo1752901429055581915.properties'
  :compileJava UP-TO-DATE
  :processResources UP-TO-DATE
  :classes UP-TO-DATE
  :jar UP-TO-DATE
  :generatePomFileForMavenJavaPublication
  :artifactoryPublish
  Deploying artifact: http://localhost:8081/artifactory/gradle-local/org/commerceforge/estore/0.0.1/estore-0.0.1.jar
  Deploying build descriptor to: http://localhost:8081/artifactory/api/build
  Build successfully deployed. Browse it in Artifactory under http://localhost:8081/artifactory/webapp/builds/Tradenity/21
  
  BUILD SUCCESSFUL
  
  Total time: 11.237 secs
  
  This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.9/userguide/gradle_daemon.html
  Build step 'Invoke Gradle script' changed build result to SUCCESS
  Deploying build info to: http://localhost:8081/artifactory/api/build
  ERROR: Could not publish build-info: Failed to send build descriptor : HTTP response code: 500. HTTP response message: Internal Server Error
  java.io.IOException: Could not publish build-info: Failed to send build descriptor : HTTP response code: 500. HTTP response message: Internal Server Error
      at org.jfrog.build.extractor.clientConfiguration.client.ArtifactoryBuildInfoClient.sendBuildInfo(ArtifactoryBuildInfoClient.java:244)
      at org.jfrog.hudson.generic.GenericBuildInfoDeployer.deploy(GenericBuildInfoDeployer.java:62)
      at org.jfrog.hudson.generic.ArtifactoryGenericConfigurator$1.tearDown(ArtifactoryGenericConfigurator.java:344)
      at hudson.model.Build$BuildExecution.doRun(Build.java:173)
      at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
      at hudson.model.Run.execute(Run.java:1738)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      at hudson.model.ResourceController.execute(ResourceController.java:98)
      at hudson.model.Executor.run(Executor.java:410)
  Finished: FAILURE
  </code></pre>
  
  <p>when i refer to artifactory log, it seems like a database eror:</p>
  
  <pre><code>2016-03-01 12:05:22,150 [http-nio-8081-exec-3] [INFO ] (o.a.e.UploadServiceImpl:453) - Deploy to 'gradle-local:org/commerceforge/estore/0.0.1/estore-0.0.1.jar' Content-Length: 0
  2016-03-01 12:05:24,120 [http-nio-8081-exec-1] [INFO ] (o.a.r.r.c.BuildResource:296) - Adding build 'Tradenity #22'
  2016-03-01 12:05:24,302 [http-nio-8081-exec-1] [INFO ] (o.a.r.r.c.BuildResource:313) - Added build 'Tradenity #22'
  2016-03-01 12:05:24,686 [http-nio-8081-exec-2] [INFO ] (o.a.r.r.c.BuildResource:296) - Adding build 'Tradenity #22'
  2016-03-01 12:05:24,749 [http-nio-8081-exec-2] [ERROR] (o.a.r.c.e.GlobalExceptionMapper:46) - Could not insert build Build{version='1.0.1', name='Tradenity', number='22', type=GENERIC, buildAgent=Generic/Generic, agent=hudson/1.648, started='2016-03-01T12:05:06.642+0200', durationMillis=18018, principal='anonymous', artifactoryPrincipal='admin', artifactoryPluginVersion='2.4.7', url='http://localhost:8088/job/Tradenity/22/', parentName='null', parentNumber='null', vcsRevision='7fdaa715b604d2a27eed956af5560a06a1d6ebe8', vcsUrl='null', parentBuildId='null', licenseControl=org.jfrog.build.api.LicenseControl@399632b2, buildRetention=org.jfrog.build.api.BuildRetention@26e7505f, runParameters=null, modules=[org.jfrog.build.api.Module@39c3f4dc], statuses=null, buildDependencies=[], issues=null, governance=org.jfrog.build.api.Governance@533a0edd}
  org.artifactory.storage.StorageException: Could not insert build Build{version='1.0.1', name='Tradenity', number='22', type=GENERIC, buildAgent=Generic/Generic, agent=hudson/1.648, started='2016-03-01T12:05:06.642+0200', durationMillis=18018, principal='anonymous', artifactoryPrincipal='admin', artifactoryPluginVersion='2.4.7', url='http://localhost:8088/job/Tradenity/22/', parentName='null', parentNumber='null', vcsRevision='7fdaa715b604d2a27eed956af5560a06a1d6ebe8', vcsUrl='null', parentBuildId='null', licenseControl=org.jfrog.build.api.LicenseControl@399632b2, buildRetention=org.jfrog.build.api.BuildRetention@26e7505f, runParameters=null, modules=[org.jfrog.build.api.Module@39c3f4dc], statuses=null, buildDependencies=[], issues=null, governance=org.jfrog.build.api.Governance@533a0edd}
      at org.artifactory.storage.db.build.service.BuildStoreServiceImpl.addBuild(BuildStoreServiceImpl.java:122) ~[artifactory-storage-db-4.5.1.jar:na]
      at org.artifactory.build.BuildServiceImpl.addBuild(BuildServiceImpl.java:193) ~[artifactory-core-4.5.1.jar:na]
      at sun.reflect.GeneratedMethodAccessor375.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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) ~[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE]
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) ~[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE]
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE]
      at org.artifactory.storage.fs.lock.aop.LockingAdvice.invoke(LockingAdvice.java:76) ~[artifactory-storage-common-4.5.1.jar:na]
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE]
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) ~[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE]
      at com.sun.proxy.$Proxy98.addBuild(Unknown Source) ~[na:na]
      at org.artifactory.build.BuildServiceImpl.addBuild(BuildServiceImpl.java:172) ~[artifactory-core-4.5.1.jar:na]
      at sun.reflect.GeneratedMethodAccessor374.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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) ~[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE]
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) ~[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE]
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE]
      at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) ~[spring-tx-4.1.5.RELEASE.jar:4.1.5.RELEASE]
      at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281) ~[spring-tx-4.1.5.RELEASE.jar:4.1.5.RELEASE]
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.1.5.RELEASE.jar:4.1.5.RELEASE]
      at org.artifactory.storage.fs.lock.aop.LockingAdvice.invoke(LockingAdvice.java:74) ~[artifactory-storage-common-4.5.1.jar:na]
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE]
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) ~[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE]
      at com.sun.proxy.$Proxy98.addBuild(Unknown Source) ~[na:na]
      at org.artifactory.rest.resource.ci.BuildResource.addBuild(BuildResource.java:305) ~[artifactory-rest-4.5.1.jar:na]
      at sun.reflect.GeneratedMethodAccessor373.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 com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) ~[jersey-server-1.19.jar:1.19]
      at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$VoidOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:167) ~[jersey-server-1.19.jar:1.19]
      at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) ~[jersey-server-1.19.jar:1.19]
      at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302) ~[jersey-server-1.19.jar:1.19]
      at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) ~[jersey-server-1.19.jar:1.19]
      at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) ~[jersey-server-1.19.jar:1.19]
      at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) ~[jersey-server-1.19.jar:1.19]
      at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542) [jersey-server-1.19.jar:1.19]
      at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473) [jersey-server-1.19.jar:1.19]
      at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419) [jersey-server-1.19.jar:1.19]
      at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409) [jersey-server-1.19.jar:1.19]
      at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409) [jersey-servlet-1.19.jar:1.19]
      at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558) [jersey-servlet-1.19.jar:1.19]
      at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733) [jersey-servlet-1.19.jar:1.19]
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) [servlet-api.jar:na]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) [catalina.jar:8.0.22]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:8.0.22]
      at org.artifactory.webapp.servlet.RepoFilter.execute(RepoFilter.java:198) [artifactory-web-application-4.5.1.jar:na]
      at org.artifactory.webapp.servlet.RepoFilter.doFilter(RepoFilter.java:89) [artifactory-web-application-4.5.1.jar:na]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) [catalina.jar:8.0.22]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:8.0.22]
      at org.artifactory.webapp.servlet.AccessFilter.useAuthentication(AccessFilter.java:334) [artifactory-web-application-4.5.1.jar:na]
      at org.artifactory.webapp.servlet.AccessFilter.authenticateAndExecute(AccessFilter.java:234) [artifactory-web-application-4.5.1.jar:na]
      at org.artifactory.webapp.servlet.AccessFilter.doFilterInternal(AccessFilter.java:190) [artifactory-web-application-4.5.1.jar:na]
      at org.artifactory.webapp.servlet.AccessFilter.doFilter(AccessFilter.java:156) [artifactory-web-application-4.5.1.jar:na]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) [catalina.jar:8.0.22]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:8.0.22]
      at org.artifactory.webapp.servlet.RequestFilter.doFilter(RequestFilter.java:65) [artifactory-web-application-4.5.1.jar:na]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) [catalina.jar:8.0.22]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:8.0.22]
      at org.artifactory.webapp.servlet.ArtifactoryFilter.doFilter(ArtifactoryFilter.java:109) [artifactory-web-application-4.5.1.jar:na]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) [catalina.jar:8.0.22]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:8.0.22]
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) [catalina.jar:8.0.22]
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) [catalina.jar:8.0.22]
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) [catalina.jar:8.0.22]
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [catalina.jar:8.0.22]
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) [catalina.jar:8.0.22]
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) [catalina.jar:8.0.22]
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) [tomcat-coyote.jar:8.0.22]
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668) [tomcat-coyote.jar:8.0.22]
      at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521) [tomcat-coyote.jar:8.0.22]
      at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478) [tomcat-coyote.jar:8.0.22]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_66]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_66]
      at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:8.0.22]
      at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66]
  Caused by: java.sql.SQLIntegrityConstraintViolationException: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'BUILDS_NAME_NUMBER_DATE_IDX' defined on 'BUILDS'.
      at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeLargeUpdate(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.artifactory.storage.db.util.JdbcHelper.executeUpdate(JdbcHelper.java:160) ~[artifactory-storage-db-4.5.1.jar:na]
      at org.artifactory.storage.db.build.dao.BuildsDao.createBuild(BuildsDao.java:65) ~[artifactory-storage-db-4.5.1.jar:na]
      at org.artifactory.storage.db.build.service.BuildStoreServiceImpl.addBuild(BuildStoreServiceImpl.java:119) ~[artifactory-storage-db-4.5.1.jar:na]
      ... 76 common frames omitted
  Caused by: org.apache.derby.iapi.error.StandardException: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'BUILDS_NAME_NUMBER_DATE_IDX' defined on 'BUILDS'.
      at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.sql.execute.IndexChanger.insertAndCheckDups(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.sql.execute.IndexChanger.doInsert(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.sql.execute.IndexChanger.insert(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.sql.execute.IndexSetChanger.insert(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source) ~[derby-10.11.1.1.jar:na]
      at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source) ~[derby-10.11.1.1.jar:na]
      ... 83 common frames omitted
  </code></pre>