public boolean resetLeaderElectionId()

in src/main/java/org/apache/sling/discovery/oak/pinger/OakViewChecker.java [244:286]


    public boolean resetLeaderElectionId() {
        ResourceResolver resourceResolver = null;
        try{
            final String myClusterNodePath = getLocalClusterNodePath();
            resourceResolver = getResourceResolver();
            if (resourceResolver==null) {
                logger.warn("resetLeaderElectionId: could not login, new leaderElectionId will be calculated upon next heartbeat only!");
                return false;
            }
            String newLeaderElectionId = newLeaderElectionId();

            final Resource resource = ResourceHelper.getOrCreateResource(
                    resourceResolver, myClusterNodePath);
            final ModifiableValueMap resourceMap = resource.adaptTo(ModifiableValueMap.class);

            resourceMap.put(PROPERTY_ID_RUNTIME, runtimeId);
            // SLING-4765 : store more infos to be able to be more verbose on duplicate slingId/ghost detection
            String slingHomePath = "n/a";
            if (slingSettingsService != null && slingSettingsService.getSlingHomePath() != null) {
                slingHomePath = slingSettingsService.getSlingHomePath();
            }
            resourceMap.put(PROPERTY_ID_SLING_HOME_PATH, slingHomePath);
            final String endpointsAsString = getEndpointsAsString();
            resourceMap.put(PROPERTY_ID_ENDPOINTS, endpointsAsString);

            Calendar leaderElectionCreatedAt = Calendar.getInstance();
            resourceMap.put("leaderElectionId", newLeaderElectionId);
            resourceMap.put("leaderElectionIdCreatedAt", leaderElectionCreatedAt);

            logger.info("resetLeaderElectionId: storing my runtimeId: {}, endpoints: {}, sling home path: {}, new leaderElectionId: {}, created at: {}",
                    new Object[]{runtimeId, endpointsAsString, slingHomePath, newLeaderElectionId, leaderElectionCreatedAt});
            resourceResolver.commit();
        } catch (LoginException e) {
            logger.error("resetLeaderElectionid: could not login: "+e, e);
        } catch (PersistenceException e) {
            logger.error("resetLeaderElectionid: got PersistenceException: "+e, e);
        } finally {
            if (resourceResolver!=null) {
                resourceResolver.close();
            }
        }
        return true;
    }