logger.log(Level.FINE, "Tried to add known local Sone: %s", ownIdentity);
return localSones.get(ownIdentity.getId());
}
- String latestEdition = ownIdentity.getProperty("Sone.LatestEdition");
- final Sone sone = new Sone(ownIdentity).setInsertUri(getSoneUri(ownIdentity.getInsertUri(), latestEdition)).setRequestUri(getSoneUri(ownIdentity.getRequestUri(), latestEdition));
+ final Sone sone;
+ try {
+ sone = new Sone(ownIdentity).setInsertUri(new FreenetURI(ownIdentity.getInsertUri())).setRequestUri(new FreenetURI(ownIdentity.getRequestUri()));
+ sone.setLatestEdition(Numbers.safeParseLong(ownIdentity.getProperty("Sone.LatestEdition"), (long) 0));
+ } catch (MalformedURLException mue1) {
+ logger.log(Level.SEVERE, "Could not convert the Identity’s URIs to Freenet URIs: " + ownIdentity.getInsertUri() + ", " + ownIdentity.getRequestUri(), mue1);
+ return null;
+ }
/* TODO - load posts ’n stuff */
localSones.put(ownIdentity.getId(), sone);
SoneInserter soneInserter = new SoneInserter(this, freenetInterface, sone);
storedSone.setReplies(sone.getReplies());
storedSone.setLikePostIds(sone.getLikedPostIds());
storedSone.setLikeReplyIds(sone.getLikedReplyIds());
- storedSone.updateUris(sone.getRequestUri().getEdition());
+ storedSone.setLatestEdition(sone.getRequestUri().getEdition());
}
saveSone(storedSone);
}
public void saveSone(Sone sone) {
if (!isLocalSone(sone)) {
logger.log(Level.FINE, "Tried to save non-local Sone: %s", sone);
+ return;
+ }
+ if (!(sone.getIdentity() instanceof OwnIdentity)) {
+ logger.log(Level.WARNING, "Local Sone without OwnIdentity found, refusing to save: %s", sone);
+ return;
}
+ identityManager.setProperty((OwnIdentity) sone.getIdentity(), "Sone.LatestEdition", String.valueOf(sone.getLatestEdition()));
/* TODO - implement saving. */
}