X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FShellCache.java;h=7e28285ef785afbcbe7fb67b8e9de2a610786a32;hb=6a0938d8f6fdf9dbc45f03384a3cd83efeef022c;hp=33e033c8ad19b1fb911a3ab52b6d734ba3a775bd;hpb=4696ccf25ac020842b6072cc11a93b1555542013;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/data/ShellCache.java b/src/main/java/net/pterodactylus/sone/data/ShellCache.java index 33e033c..7e28285 100644 --- a/src/main/java/net/pterodactylus/sone/data/ShellCache.java +++ b/src/main/java/net/pterodactylus/sone/data/ShellCache.java @@ -63,6 +63,7 @@ public class ShellCache { * The ID of the object * @param object * The object to store + * @return The real object, or the shell if there is no real object yet */ @SuppressWarnings("unchecked") public T put(String id, T object) { @@ -88,9 +89,11 @@ public class ShellCache { */ public T get(String id) { if (!objectCache.containsKey(id)) { - Shell shell = shellCreator.createShell(id); - shellCache.put(id, shell); - return shell.getShelled(); + if (!shellCache.containsKey(id)) { + Shell shell = shellCreator.createShell(id); + shellCache.put(id, shell); + } + return shellCache.get(id).getShelled(); } return objectCache.get(id); }