[RTFACT-10656] Jarsigner on Artifactory Online is not found Created: 27/Jun/16  Updated: 07/Nov/18  Resolved: 12/Jul/16

Status: Resolved
Project: Artifactory Binary Repository
Component/s: AOL
Affects Version/s: None
Fix Version/s: 4.10.0

Type: Bug Priority: High
Reporter: Andrei Komarov Assignee: Doron Meirfeld
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Duplicate
is duplicated by RTFACT-14627 Jarsigner is not found for Artifactor... In Progress

 Description   

Java version: 1.8.0_74-b02

Reproduction:
Set up jarsigning in an Artifactory online and try using it, you'll see the output below, can be also reproduced with an on-prem instance by removing the 'jarsigner' tool from Java's ../bin/ directory:

2016-06-26 22:33:14,181 [http-nio-8082-exec-2] [INFO ] (o.a.a.w.JarSigner   :65) - Executing: jarsigner -keystore /data/aolback/homes/andreik/data/tmp/work/acme-dev -storepass password -keypass password -signedjar /data/aolback/homes/andreik/data/tmp/work/tosign4303338267663362213.jar.signed.jar /data/aolback/homes/andreik/data/tmp/work/tosign4303338267663362213.jar acme-dev
2016-06-26 22:33:14,188 [http-nio-8082-exec-2] [ERROR] (o.a.a.w.JarSigningInterceptor:79) - Failed to sign jar
java.io.IOException: Cannot run program "jarsigner": error=2, No such file or directory
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) ~[na:1.8.0_74]
	at java.lang.Runtime.exec(Runtime.java:620) ~[na:1.8.0_74]
	at java.lang.Runtime.exec(Runtime.java:450) ~[na:1.8.0_74]
	at java.lang.Runtime.exec(Runtime.java:347) ~[na:1.8.0_74]
	at org.artifactory.addon.webstart.JarSigner.sign(JarSigner.java:66) ~[artifactory-addon-webstart-4.8.2.jar:na]
	at org.artifactory.addon.webstart.JarSigningInterceptor.signJar(JarSigningInterceptor.java:143) ~[artifactory-addon-webstart-4.8.2.jar:na]
	at org.artifactory.addon.webstart.JarSigningInterceptor.onBeforeReturn(JarSigningInterceptor.java:77) ~[artifactory-addon-webstart-4.8.2.jar:na]
	at org.artifactory.addon.webstart.WebstartVirtualRepo.interceptBeforeReturn(WebstartVirtualRepo.java:61) [artifactory-addon-webstart-4.8.2.jar:na]
	at org.artifactory.repo.virtual.VirtualRepoDownloadStrategy.getInfo(VirtualRepoDownloadStrategy.java:138) [artifactory-core-4.8.2.jar:na]
	at org.artifactory.repo.virtual.VirtualRepo.getInfo(VirtualRepo.java:375) [artifactory-core-4.8.2.jar:na]
	at org.artifactory.engine.DownloadServiceImpl.process(DownloadServiceImpl.java:198) [artifactory-core-4.8.2.jar:na]
	at sun.reflect.GeneratedMethodAccessor470.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.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.request.aop.RequestAdvice.invoke(RequestAdvice.java:67) [artifactory-core-4.8.2.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.$Proxy484.process(Unknown Source) [na:na]
	at org.artifactory.webapp.servlet.RepoFilter.doDownload(RepoFilter.java:250) [artifactory-web-application-4.8.2.jar:na]
	at org.artifactory.webapp.servlet.RepoFilter.execute(RepoFilter.java:175) [artifactory-web-application-4.8.2.jar:na]
	at org.artifactory.webapp.servlet.RepoFilter.doFilter(RepoFilter.java:91) [artifactory-web-application-4.8.2.jar:na]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [catalina.jar:8.0.32]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [catalina.jar:8.0.32]
	at org.artifactory.webapp.servlet.AccessFilter.useAuthentication(AccessFilter.java:380) [artifactory-web-application-4.8.2.jar:na]
	at org.artifactory.webapp.servlet.AccessFilter.authenticateAndExecute(AccessFilter.java:266) [artifactory-web-application-4.8.2.jar:na]
	at org.artifactory.webapp.servlet.AccessFilter.doFilterInternal(AccessFilter.java:197) [artifactory-web-application-4.8.2.jar:na]
	at org.artifactory.webapp.servlet.AccessFilter.doFilter(AccessFilter.java:157) [artifactory-web-application-4.8.2.jar:na]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [catalina.jar:8.0.32]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [catalina.jar:8.0.32]
	at org.artifactory.webapp.servlet.RequestFilter.doFilter(RequestFilter.java:61) [artifactory-web-application-4.8.2.jar:na]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [catalina.jar:8.0.32]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [catalina.jar:8.0.32]
	at org.artifactory.webapp.servlet.ArtifactoryFilter.doFilter(ArtifactoryFilter.java:111) [artifactory-web-application-4.8.2.jar:na]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [catalina.jar:8.0.32]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [catalina.jar:8.0.32]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) [catalina.jar:8.0.32]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) [catalina.jar:8.0.32]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) [catalina.jar:8.0.32]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [catalina.jar:8.0.32]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) [catalina.jar:8.0.32]
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:676) [catalina.jar:8.0.32]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) [catalina.jar:8.0.32]
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) [tomcat-coyote.jar:8.0.32]
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) [tomcat-coyote.jar:8.0.32]
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) [tomcat-coyote.jar:8.0.32]
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) [tomcat-coyote.jar:8.0.32]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_74]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_74]
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:8.0.32]
	at java.lang.Thread.run(Thread.java:745) [na:1.8.0_74]
Caused by: java.io.IOException: error=2, No such file or directory
	at java.lang.UNIXProcess.forkAndExec(Native Method) ~[na:1.8.0_74]
	at java.lang.UNIXProcess.<init>(UNIXProcess.java:248) ~[na:1.8.0_74]
	at java.lang.ProcessImpl.start(ProcessImpl.java:134) ~[na:1.8.0_74]
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) ~[na:1.8.0_74]


 Comments   
Comment by Doron Meirfeld [ 12/Jul/16 ]

We added jdk/bin to the path of each AOL in the default file.

Generated at Wed Aug 21 13:12:10 UTC 2019 using JIRA 7.6.3#76005-sha1:8a4e38d34af948780dbf52044e7aafb13a7cae58.