Problem to invoke createDataStoreGarbageCollector() in JCASessionHandle object
------------------------------------------------------------------------------

                 Key: JCR-1496
                 URL: https://issues.apache.org/jira/browse/JCR-1496
             Project: Jackrabbit
          Issue Type: Bug
          Components: jackrabbit-jca
    Affects Versions: 1.4
         Environment: all
            Reporter: Juan Fernandez-Corugedo


It's imposible to execute the followin code:

import org.apache.jackrabbit.core.data.GarbageCollector;
...
GarbageCollector gc;
SessionImpl si = (SessionImpl)session;
gc = si.createDataStoreGarbageCollector();

// optional (if you want to implement a progress bar / output):
gc.setScanEventListener(this);
gc.scan();
gc.stopScan();

// could be a separate button, if multiple repositories use the same data store:
gc.deleteUnused();

It throws a ClassCastException, because with JCA, the session object is of type 
JCASessionHandle.

I have solve this bug by changing the private method getSession() of the 
JCASessionHandle class to public. 

CURRENT IMPLEMENTATION:
private Session getSession() {
        return mc.getSession(this);
}

MODIFICATION:
public Session getSession() {
        return mc.getSession(this);
}

And the final code look's like this:

SessionImpl si = 
(SessionImpl)((org.apache.jackrabbit.jca.JCASessionHandle)session).getSession();


¿There are other solution more clean?

Greetings.






-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to