[
https://issues.apache.org/jira/browse/SLING-3554?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Carsten Ziegeler resolved SLING-3554.
-------------------------------------
Resolution: Won't Fix
> createDataStoreGarbageCollector returns null
> --------------------------------------------
>
> Key: SLING-3554
> URL: https://issues.apache.org/jira/browse/SLING-3554
> Project: Sling
> Issue Type: Bug
> Components: JCR
> Affects Versions: JCR Jackrabbit Server 2.1.2
> Environment: Any
> Reporter: Hugh Mc Guinness
> Priority: Major
>
> Using a reference to a SlingServerRepository, calling
> createDataStoreGarbageCollector() returns null. This prevents the datastore
> garbage collector from being run.
> The problem appears to stem from a refactor where this code:
> {code:title=SlingServerRepository.java|borderStyle=solid}
> public DataStoreGarbageCollector createDataStoreGarbageCollector() throws
> RepositoryException {
> RepositoryImpl repository = (RepositoryImpl) getRepository();
> if (repository != null) {
> return repository.createDataStoreGarbageCollector();
> }
> throw new RepositoryException("Repository couldn't be acquired");
> }
> {code}
> was changed to this code:
> {code:title=SlingServerRepository.java|borderStyle=solid}
> public DataStoreGarbageCollector createDataStoreGarbageCollector() throws
> RepositoryException {
> final Repository base = this.getRepository();
> if (base instanceof RepositoryManager) {
> return ((RepositoryManager)
> base).createDataStoreGarbageCollector();
> }
> return null;
> }
> {code}
> The problem here is that this method exists in two places, the
> RepositoryManager interface and the RepositoryImpl class. The Repository
> object being referenced above is not a RepositoryManager but it is a
> RepositoryImpl.
> For the project I'm using Sling for I custom built using the following
> modification which works fine however you may wish to leave out the reference
> to RepositoryManager entirely:
> {code:title=SlingServerRepository.java|borderStyle=solid}
> public DataStoreGarbageCollector createDataStoreGarbageCollector() throws
> RepositoryException {
> final Repository base = this.getRepository();
> if (base instanceof RepositoryManager) {
> return ((RepositoryManager)
> base).createDataStoreGarbageCollector();
> } else if (base instanceof RepositoryImpl) {
> return ((RepositoryImpl)
> base).createDataStoreGarbageCollector();
> }
> return null;
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)