[ 
https://issues.apache.org/jira/browse/SLING-6618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15907111#comment-15907111
 ] 

Konrad Windszus edited comment on SLING-6618 at 3/13/17 10:26 AM:
------------------------------------------------------------------

[~karlpauls] The workaround is quite verbose as it requires to always use the 
workspace name with {{Repository.login}} (although the default should be used 
everywhere). For the short-term I would rather like to rely on the workaround 
from 
https://fisheye.apache.org/browse/jackrabbit/commons/filevault/trunk/vault-davex/src/main/java/org/apache/jackrabbit/vault/davex/DAVExRepositoryFactory.java?u=-1&r1=1765204&r2=1775225
 which allows to pass in a default workspace name. That would be extracted from 
the URI. That way the fix would just be a one-liner in {{RepositoryUtils}} for 
the constant {{WEBDAV_URL_LOCATIONS}}:
{{crx/-/jcr:root}} would just become {{crx/crx.default/jcr:root}}.
So instead of applying the fix as is I would wait for the next FileVault 
release (Vote going on in 
http://www.mail-archive.com/dev@jackrabbit.apache.org/msg37864.html) and then 
just modify the {{WEBDAV_URL_LOCATIONS}}.

I think the right long-term fix would be 
https://issues.apache.org/jira/browse/JCR-4120. Maybe you can try to push for 
that a bit, so this is part of the next Jackrabbit release and can subsequently 
be integrated in Jackrabbit FileVault.


was (Author: kwin):
[~karlpauls] The workaround is quite verbose as it requires to always use the 
workspace name with {{Repository.login}} (although the default should be used 
everywhere). For the midterm I would rather like to rely on the workaround from 
https://fisheye.apache.org/browse/jackrabbit/commons/filevault/trunk/vault-davex/src/main/java/org/apache/jackrabbit/vault/davex/DAVExRepositoryFactory.java?u=-1&r1=1765204&r2=1775225
 which allows to pass in a default workspace name. That would be extracted from 
the URI. That way the fix would just be a one-liner in {{RepositoryUtils}} for 
the constant {{WEBDAV_URL_LOCATIONS}}:
{{crx/-/jcr:root}} would just become {{crx/crx.default/jcr:root}}.

I think the right long-term fix would be 
https://issues.apache.org/jira/browse/JCR-4120. Maybe you can try to push for 
that a bit, so this is part of the next Jackrabbit release and can subsequently 
be integrated in Jackrabbit FileVault.

> Specify crx.default as workspace for AEM servers
> ------------------------------------------------
>
>                 Key: SLING-6618
>                 URL: https://issues.apache.org/jira/browse/SLING-6618
>             Project: Sling
>          Issue Type: Bug
>          Components: IDE
>    Affects Versions: Sling Eclipse IDE 1.0.10
>            Reporter: Karl Pauls
>            Assignee: Karl Pauls
>             Fix For: Sling Eclipse IDE 1.2.0
>
>         Attachments: SLING-6618.patch
>
>
> The current impl-vlt does try to connect to two different repository urls - 
> one for sling and one for crx. In the case of the latter, it apparently needs 
> to subsequently give the default workspace name (crx.default) to the login 
> method - otherwise, trying to connect to the AEM server fails with 
> "precondition failed" messages.
> The full stack trace of the according {{RepositoryException}} looks like this
> {code}
> javax.jcr.lock.LockException: Precondition Failed
>       at 
> org.apache.jackrabbit.spi2dav.ExceptionConverter.generate(ExceptionConverter.java:109)
>       at 
> org.apache.jackrabbit.spi2dav.ExceptionConverter.generate(ExceptionConverter.java:51)
>       at 
> org.apache.jackrabbit.spi2dav.ExceptionConverter.generate(ExceptionConverter.java:45)
>       at 
> org.apache.jackrabbit.spi2dav.RepositoryServiceImpl.obtain(RepositoryServiceImpl.java:809)
>       at 
> org.apache.jackrabbit.spi2dav.RepositoryServiceImpl.obtain(RepositoryServiceImpl.java:753)
>       at 
> org.apache.jackrabbit.spi2davex.RepositoryServiceImpl.obtain(RepositoryServiceImpl.java:307)
>       at 
> org.apache.jackrabbit.jcr2spi.RepositoryImpl.login(RepositoryImpl.java:151)
>       at 
> org.apache.jackrabbit.commons.AbstractRepository.login(AbstractRepository.java:144)
>       at 
> org.apache.sling.ide.jcr.RepositoryUtils.getRepositoryAddress(RepositoryUtils.java:84)
>       at 
> org.apache.sling.ide.jcr.RepositoryUtils.getRepository(RepositoryUtils.java:44)
>       at 
> org.apache.sling.ide.impl.vlt.VltRepository.connect(VltRepository.java:70)
>       at 
> org.apache.sling.ide.impl.vlt.VltRepositoryFactory.connectRepository(VltRepositoryFactory.java:69)
>       at 
> org.apache.sling.ide.eclipse.core.ServerUtil.connectRepository(ServerUtil.java:146)
>       at 
> org.apache.sling.ide.eclipse.core.internal.SlingLaunchpadBehaviour.start(SlingLaunchpadBehaviour.java:95)
>       at 
> org.apache.sling.ide.eclipse.core.internal.SlingLaunchpadLaunchConfigurationDelegate.launch(SlingLaunchpadLaunchConfigurationDelegate.java:45)
>       at 
> org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
>       at 
> org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
>       at 
> org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:731)
>       at 
> org.eclipse.wst.server.core.internal.Server.startImpl2(Server.java:3541)
>       at 
> org.eclipse.wst.server.core.internal.Server.startImpl(Server.java:3477)
>       at 
> org.eclipse.wst.server.core.internal.Server$StartJob.run(Server.java:367)
>       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
> Caused by: org.apache.jackrabbit.webdav.DavException: Precondition Failed
>       at 
> org.apache.jackrabbit.webdav.client.methods.DavMethodBase.getResponseException(DavMethodBase.java:162)
>       at 
> org.apache.jackrabbit.webdav.client.methods.DavMethodBase.getResponseBodyAsMultiStatus(DavMethodBase.java:91)
>       at 
> org.apache.jackrabbit.spi2dav.RepositoryServiceImpl.obtain(RepositoryServiceImpl.java:781)
>       ... 18 more
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to