Konrad Windszus created JCR-4313:
------------------------------------
Summary: SPI2DAV: Consider proxy environment variables for http
client
Key: JCR-4313
URL: https://issues.apache.org/jira/browse/JCR-4313
Project: Jackrabbit Content Repository
Issue Type: Bug
Components: jackrabbit-spi2dav
Affects Versions: 2.17.3
Reporter: Konrad Windszus
It is currently impossible to use a proxy with spi2dav. E.g. when using vlt-rcp
(which internally relies on spi2dav) I get the following error because the
proxy set via the Java default environment variables is not considered:
{code}
12:52:56 [DEBUG] Opening connection {}-><somehost>:4502
12:52:56 [DEBUG] http-outgoing-0: Shutdown connection
12:52:56 [DEBUG] Connection discarded
12:52:56 [DEBUG] Connection released: [id: 0][route: {}-><somehost>:4502][total
kept alive: 0; route allocated: 0 of 20; total allocated: 0 of 20]
12:52:56 [DEBUG] Cancelling request execution
12:52:56 [ERROR] Error while retrieving src repository
<somehost>:4502/crx/server/-/jcr:root/<some repo path>:
javax.jcr.RepositoryException: java.net.UnknownHostException: <somehost>:
System error
{code}
The stacktrace till the HTTP client is retrieved looks like this
{code}
at
org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:939)
at
org.apache.jackrabbit.spi2dav.RepositoryServiceImpl.getClient(RepositoryServiceImpl.java:530)
at
org.apache.jackrabbit.spi2dav.RepositoryServiceImpl.executeRequest(RepositoryServiceImpl.java:2802)
at
org.apache.jackrabbit.spi2dav.RepositoryServiceImpl.getRepositoryDescriptors(RepositoryServiceImpl.java:692)
at
org.apache.jackrabbit.jcr2spi.RepositoryImpl.<init>(RepositoryImpl.java:82)
at
org.apache.jackrabbit.jcr2spi.RepositoryImpl.create(RepositoryImpl.java:95)
at
org.apache.jackrabbit.jcr2spi.Jcr2spiRepositoryFactory.getRepository(Jcr2spiRepositoryFactory.java:163)
at
org.apache.jackrabbit.client.RepositoryFactoryImpl.getRepository(RepositoryFactoryImpl.java:75)
at
org.apache.jackrabbit.vault.davex.DAVExRepositoryFactory.createRepository(DAVExRepositoryFactory.java:110)
at
org.apache.jackrabbit.vault.util.RepositoryProvider.createRepository(RepositoryProvider.java:65)
at
org.apache.jackrabbit.vault.util.RepositoryProvider.getRepository(RepositoryProvider.java:52)
at
org.apache.jackrabbit.vault.util.RepositoryCopier.copy(RepositoryCopier.java:197)
at org.apache.jackrabbit.vault.cli.CmdRcp.doExecute(CmdRcp.java:70)
at
org.apache.jackrabbit.vault.cli.AbstractVaultCommand.doExecute(AbstractVaultCommand.java:46)
at
org.apache.jackrabbit.vault.cli.AbstractVaultCommand.doExecute(AbstractVaultCommand.java:33)
at
org.apache.jackrabbit.vault.util.console.commands.AbstractCommand.execute(AbstractCommand.java:37)
at
org.apache.jackrabbit.vault.util.console.ExecutionContext.doExecute(ExecutionContext.java:171)
at
org.apache.jackrabbit.vault.util.console.ExecutionContext.execute(ExecutionContext.java:132)
at
org.apache.jackrabbit.vault.util.console.AbstractApplication.execute(AbstractApplication.java:302)
at
org.apache.jackrabbit.vault.cli.VaultFsApp.execute(VaultFsApp.java:614)
{code}
The basic problem is that the {{Jcr2spiRepositoryFactory}} does not allow to
explicitly configure a proxy via programmatic configuration nor does it
internally consider the regular environment variables (compare with
https://stackoverflow.com/questions/5165126/without-changing-code-how-to-force-httpclient-to-use-proxy-by-environment-varia).
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)