Author: olli Date: Fri Oct 23 12:02:50 2015 New Revision: 1710190 URL: http://svn.apache.org/viewvc?rev=1710190&view=rev Log: SLING-5190 factor out of SlingSettingsServiceImpl a Sling ID util
* fix logging and adjust exception handling Modified: sling/trunk/bundles/extensions/settings/src/main/java/org/apache/sling/settings/impl/SlingIdUtil.java sling/trunk/bundles/extensions/settings/src/main/java/org/apache/sling/settings/impl/SlingSettingsServiceImpl.java Modified: sling/trunk/bundles/extensions/settings/src/main/java/org/apache/sling/settings/impl/SlingIdUtil.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/settings/src/main/java/org/apache/sling/settings/impl/SlingIdUtil.java?rev=1710190&r1=1710189&r2=1710190&view=diff ============================================================================== --- sling/trunk/bundles/extensions/settings/src/main/java/org/apache/sling/settings/impl/SlingIdUtil.java (original) +++ sling/trunk/bundles/extensions/settings/src/main/java/org/apache/sling/settings/impl/SlingIdUtil.java Fri Oct 23 12:02:50 2015 @@ -31,7 +31,7 @@ public class SlingIdUtil { /** * Read the id from a file. */ - static String readSlingId(final File idFile, int maxLength) { + static String readSlingId(final File idFile, int maxLength) throws IOException { if (idFile.exists() && idFile.length() >= maxLength) { DataInputStream dis = null; try { @@ -41,13 +41,7 @@ public class SlingIdUtil { final String rawString = new String(rawBytes, "ISO-8859-1"); // roundtrip to ensure correct format of UUID value - final String id = UUID.fromString(rawString).toString(); - // logger.debug("Got Sling ID {} from file {}", id, idFile); - - return id; - } catch (final Throwable t) { - // logger.error("Failed reading UUID from id file " + idFile - // + ", creating new id", t); + return UUID.fromString(rawString).toString(); } finally { if (dis != null) { try { @@ -62,7 +56,7 @@ public class SlingIdUtil { /** * Write the sling id file. */ - static void writeSlingId(final File idFile, final String id) { + static void writeSlingId(final File idFile, final String id) throws IOException { idFile.delete(); idFile.getParentFile().mkdirs(); DataOutputStream dos = null; @@ -71,8 +65,6 @@ public class SlingIdUtil { dos = new DataOutputStream(new FileOutputStream(idFile)); dos.write(rawBytes, 0, rawBytes.length); dos.flush(); - } catch (final Throwable t) { - // logger.error("Failed writing UUID to id file " + idFile, t); } finally { if (dos != null) { try { Modified: sling/trunk/bundles/extensions/settings/src/main/java/org/apache/sling/settings/impl/SlingSettingsServiceImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/settings/src/main/java/org/apache/sling/settings/impl/SlingSettingsServiceImpl.java?rev=1710190&r1=1710189&r2=1710190&view=diff ============================================================================== --- sling/trunk/bundles/extensions/settings/src/main/java/org/apache/sling/settings/impl/SlingSettingsServiceImpl.java (original) +++ sling/trunk/bundles/extensions/settings/src/main/java/org/apache/sling/settings/impl/SlingSettingsServiceImpl.java Fri Oct 23 12:02:50 2015 @@ -127,12 +127,23 @@ public class SlingSettingsServiceImpl // the osgi framework does not support storing something in the file system throw new RuntimeException("Unable to read from bundle data file."); } - this.slingId = SlingIdUtil.readSlingId(idFile, SLING_ID_LENGTH); + + try { + slingId = SlingIdUtil.readSlingId(idFile, SLING_ID_LENGTH); + logger.info("Read Sling ID {} from file {}", slingId, idFile); + } catch (final Throwable t) { + logger.error("Failed reading Sling ID from file " + idFile, t); + } // no sling id yet or failure to read file: create an id and store if (slingId == null) { slingId = UUID.randomUUID().toString(); - SlingIdUtil.writeSlingId(idFile, this.slingId); + logger.info("Created new Sling ID {}", slingId); + try { + SlingIdUtil.writeSlingId(idFile, slingId); + } catch (final Throwable t) { + logger.error("Failed writing Sling ID to file " + idFile, t); + } } }