Uploaded image for project: 'Jackrabbit Content Repository'
  1. Jackrabbit Content Repository
  2. JCR-1496

Problem to invoke createDataStoreGarbageCollector() in JCASessionHandle object

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Patch Available
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 1.4
    • Fix Version/s: None
    • Component/s: jackrabbit-jca
    • Labels:
      None
    • Environment:
      all

      Description

      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.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              jfcorugedo Juan Fernandez-Corugedo
            • Votes:
              1 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:

                Time Tracking

                Estimated:
                Original Estimate - 24h
                24h
                Remaining:
                Remaining Estimate - 24h
                24h
                Logged:
                Time Spent - Not Specified
                Not Specified