class FindAndDeleteGarbageInPersistenceJob
        extends VisorJob<CacheFindGarbageCommandArg, FindAndDeleteGarbageInPersistenceJobResult> {
        /** */
        private static final long serialVersionUID = 0L;

        /**
         * @param arg Argument.
         * @param debug Debug.
         */
        protected FindAndDeleteGarbageInPersistenceJob(CacheFindGarbageCommandArg arg, boolean debug) {
            super(arg, debug);
        }

        /** {@inheritDoc} */
        @Override protected FindAndDeleteGarbageInPersistenceJobResult run(CacheFindGarbageCommandArg arg)
            throws IgniteException {<FILL_FUNCTION_BODY>}

        /** {@inheritDoc} */
        @Override public String toString() {
            return S.toString(FindAndDeleteGarbageInPersistenceJob.class, this);
        }
    }

            try {
                FindAndDeleteGarbageInPersistenceClosure closure =
                    new FindAndDeleteGarbageInPersistenceClosure(arg.groups(), arg.delete());

                ignite.context().resource().injectGeneric(closure);

                return closure.call();
            }
            catch (Exception e) {
                throw new IgniteException(e);
            }
        
<methods>public non-sealed void <init>() ,public Map<? extends org.apache.ignite.compute.ComputeJob,org.apache.ignite.cluster.ClusterNode> map(List<org.apache.ignite.cluster.ClusterNode>, VisorTaskArgument<org.apache.ignite.internal.management.cache.CacheFindGarbageCommandArg>) ,public final org.apache.ignite.internal.management.cache.FindAndDeleteGarbageInPersistenceTaskResult reduce(List<org.apache.ignite.compute.ComputeJobResult>) ,public org.apache.ignite.compute.ComputeJobResultPolicy result(org.apache.ignite.compute.ComputeJobResult, List<org.apache.ignite.compute.ComputeJobResult>) <variables>protected boolean debug,protected transient org.apache.ignite.internal.IgniteEx ignite,protected long start,protected org.apache.ignite.internal.management.cache.CacheFindGarbageCommandArg taskArg