From 800c771700515b6a12a0e4eea0637f3da62199b2 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Tue, 23 Mar 2021 21:19:33 +0100 Subject: [PATCH] [sid] Check if there is already a in addOriginId() --- .../smackx/sid/element/OriginIdElement.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/element/OriginIdElement.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/element/OriginIdElement.java index d5f6935da..a50fd99e2 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/element/OriginIdElement.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/element/OriginIdElement.java @@ -1,6 +1,6 @@ /** * - * Copyright 2018 Paul Schaub + * Copyright 2018 Paul Schaub, 2021 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -48,7 +48,12 @@ public class OriginIdElement extends StableAndUniqueIdElement { @Deprecated // TODO: Remove in Smack 4.5. public static OriginIdElement addOriginId(Message message) { - OriginIdElement originId = new OriginIdElement(); + OriginIdElement originId = message.getExtension(OriginIdElement.class); + if (originId != null) { + return originId; + } + + originId = new OriginIdElement(); message.addExtension(originId); // TODO: Find solution to have both the originIds stanzaId and a nice to look at incremental stanzaID. // message.setStanzaId(originId.getId()); @@ -62,7 +67,12 @@ public class OriginIdElement extends StableAndUniqueIdElement { * @return the added origin-id element. */ public static OriginIdElement addTo(MessageBuilder messageBuilder) { - OriginIdElement originId = new OriginIdElement(); + OriginIdElement originId = messageBuilder.getExtension(OriginIdElement.class); + if (originId != null) { + return originId; + } + + originId = new OriginIdElement(); messageBuilder.addExtension(originId); // TODO: Find solution to have both the originIds stanzaId and a nice to look at incremental stanzaID. // message.setStanzaId(originId.getId());