Convert the keys to USK when creating the Sone.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / Core.java
index d0d585f..00dce87 100644 (file)
@@ -128,7 +128,11 @@ public class Core extends AbstractService {
         * @return The Sone, or a {@link Shell} around one
         */
        public Sone getSone(String soneId) {
-               return soneCache.get(soneId);
+               Sone sone = soneCache.get(soneId);
+               if (sone instanceof SoneShell) {
+                       soneCache.put(soneId, sone = ((SoneShell) sone).getShelled());
+               }
+               return sone;
        }
 
        //
@@ -143,6 +147,7 @@ public class Core extends AbstractService {
         */
        public void addSone(Sone sone) {
                if (localSones.add(sone)) {
+                       soneCache.put(sone.getId(), sone);
                        SoneInserter soneInserter = new SoneInserter(freenetInterface, sone);
                        soneInserter.start();
                        soneInserters.put(sone, soneInserter);
@@ -196,7 +201,7 @@ public class Core extends AbstractService {
                Sone sone;
                try {
                        logger.log(Level.FINEST, "Creating new Sone ā€œ%sā€ at %s (%s)ā€¦", new Object[] { name, finalRequestUri, finalInsertUri });
-                       sone = new Sone(UUID.randomUUID(), name, new FreenetURI(finalRequestUri), new FreenetURI(finalInsertUri));
+                       sone = new Sone(UUID.randomUUID(), name, new FreenetURI(finalRequestUri).setKeyType("USK"), new FreenetURI(finalInsertUri).setKeyType("USK"));
                        sone.setProfile(new Profile());
                        /* set modification counter to 1 so it is inserted immediately. */
                        sone.setModificationCounter(1);
@@ -204,7 +209,6 @@ public class Core extends AbstractService {
                } catch (MalformedURLException mue1) {
                        throw new SoneException(Type.INVALID_URI);
                }
-               localSones.add(sone);
                return sone;
        }