diff --git a/src/main/java/net/dv8tion/jda/api/utils/data/etf/ExTermDecoder.java b/src/main/java/net/dv8tion/jda/api/utils/data/etf/ExTermDecoder.java index 1fa4b10466..de0a7469ff 100644 --- a/src/main/java/net/dv8tion/jda/api/utils/data/etf/ExTermDecoder.java +++ b/src/main/java/net/dv8tion/jda/api/utils/data/etf/ExTermDecoder.java @@ -247,7 +247,7 @@ private static Object unpackAtom(ByteBuffer buffer, Charset charset, int length) case "true": return true; case "false": return false; case "nil": return null; - default: return value; + default: return value.intern(); } } diff --git a/src/main/java/net/dv8tion/jda/internal/entities/EntityBuilder.java b/src/main/java/net/dv8tion/jda/internal/entities/EntityBuilder.java index cb5c29f452..61a21bcf33 100644 --- a/src/main/java/net/dv8tion/jda/internal/entities/EntityBuilder.java +++ b/src/main/java/net/dv8tion/jda/internal/entities/EntityBuilder.java @@ -270,10 +270,10 @@ public GuildImpl createGuild(long guildId, DataObject guildJson, TLongObjectMap< guildView.getMap().put(guildId, guildObj); } - guildObj.setFeatures(featuresArray.map(it -> - StreamSupport.stream(it.spliterator(), false) - .map(String::valueOf) - .collect(Collectors.toSet()) + guildObj.setFeatures(featuresArray.map(array -> + array.stream(DataArray::getString) + .map(String::intern) // Prevent allocating the same feature string over and over + .collect(Collectors.toSet()) ).orElse(Collections.emptySet())); SnowflakeCacheViewImpl roleView = guildObj.getRolesView(); diff --git a/src/main/java/net/dv8tion/jda/internal/handle/GuildUpdateHandler.java b/src/main/java/net/dv8tion/jda/internal/handle/GuildUpdateHandler.java index 5d93e0ef86..62b71b27ac 100644 --- a/src/main/java/net/dv8tion/jda/internal/handle/GuildUpdateHandler.java +++ b/src/main/java/net/dv8tion/jda/internal/handle/GuildUpdateHandler.java @@ -31,7 +31,6 @@ import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; -import java.util.stream.StreamSupport; public class GuildUpdateHandler extends SocketHandler { @@ -94,7 +93,7 @@ protected Long handleInternally(DataObject content) if (!content.isNull("features")) { DataArray featureArr = content.getArray("features"); - features = StreamSupport.stream(featureArr.spliterator(), false).map(String::valueOf).collect(Collectors.toSet()); + features = featureArr.stream(DataArray::getString).map(String::intern).collect(Collectors.toSet()); } else {