- /* parse known Sones. */
- SimpleXML knownSonesXml = soneXml.getNode("known-sones");
- if (knownSonesXml == null) {
- /* TODO - mark Sone as bad. */
- logger.log(Level.WARNING, "Downloaded Sone %s has no known Sones!", new Object[] { sone });
- return null;
- }
-
- Set<Sone> knownSones = new HashSet<Sone>();
- for (SimpleXML knownSoneXml : knownSonesXml.getNodes("known-sone")) {
- String knownSoneId = knownSoneXml.getValue("sone-id", null);
- String knownSoneKey = knownSoneXml.getValue("sone-key", null);
- String knownSoneName = knownSoneXml.getValue("sone-name", null);
- if ((knownSoneId == null) || (knownSoneKey == null) || (knownSoneName == null)) {
- /* TODO - mark Sone as bad. */
- logger.log(Level.WARNING, "Downloaded known Sone for Sone %s with missing data! ID: %s, Key: %s, Name: %s", new Object[] { sone, knownSoneId, knownSoneKey, knownSoneName });
- return null;
- }
- try {
- knownSones.add(core.getSone(knownSoneId).setRequestUri(new FreenetURI(knownSoneKey)).setName(knownSoneName));
- } catch (MalformedURLException mue1) {
- /* TODO - mark Sone as bad. */
- logger.log(Level.WARNING, "Downloaded known Sone for Sone %s with invalid key: %s", new Object[] { sone, knownSoneKey });
- return null;
- }
- }
-
- /* okay, apparently everything was parsed correctly. Now import. */
- /* atomic setter operation on the Sone. */
- synchronized (sone) {
- sone.setProfile(profile);
- sone.setPosts(posts);
- sone.setReplies(replies);
- sone.setLikePostIds(likedPostIds);
- sone.setModificationCounter(0);
- }
-
- /* add all known Sones to core for downloading. */
- for (Sone knownSone : knownSones) {
- core.addSone(knownSone);
- }
-
- } catch (IOException ioe1) {
- logger.log(Level.WARNING, "Could not read XML file from " + originalSone + "!", ioe1);
- return null;
- } finally {
- if (xmlBucket != null) {
- xmlBucket.free();
- }
- Closer.close(xmlInputStream);
+ /* okay, apparently everything was parsed correctly. Now import. */
+ /* atomic setter operation on the Sone. */
+ synchronized (sone) {
+ sone.setProfile(profile);
+ sone.setPosts(posts);
+ sone.setReplies(replies);
+ sone.setLikePostIds(likedPostIds);
+ sone.setLikeReplyIds(likedReplyIds);