Merge branch 'master' of https://github.com/apache/incubator-nlpcraft
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCConversation.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCConversation.java
index 94b7013..b990851 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCConversation.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCConversation.java
@@ -86,9 +86,14 @@
     void clearDialog(Predicate<String/* Intent ID. */> filter);
 
     /**
-     * // TODO:
-     * Gets synchronized user data map, which will be automatically cleared after model timeout.
-     * @return Data.
+     * Gets modifiable user data container that can be to store user data in the conversation.
+     * Note that this data will expire the same as other elements in the conversation (i.e. tokens and
+     * previously matched intents).
+     * <p>
+     * Note that you should obtain the user data container on every intent callback invocation to make
+     * sure that expiration policy takes an effect. Do not cache the returned object elsewhere.
+     *
+     * @return Mutable user data container. The returned map is safe for concurrent modifications.
      */
-    Map<String, Object> getData();
+    Map<String, Object> getUserData();
 }
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversation.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversation.scala
index 4823648..365f4b4 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversation.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversation.scala
@@ -285,5 +285,5 @@
     /**
       *
       */
-    def getData: util.Map[String, Object] = data
+    def getUserData: util.Map[String, Object] = data
 }
\ No newline at end of file
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
index 4a3581c..3e6ff92 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
@@ -563,7 +563,7 @@
                 override def getDialogFlow: util.List[String] = NCDialogFlowManager.getDialogFlow(usrId, mdlId, span).asJava
                 override def clearStm(filter: Predicate[NCToken]): Unit = conv.clearTokens(filter)
                 override def clearDialog(filter: Predicate[String]): Unit = NCDialogFlowManager.clear(usrId, mdlId, span)
-                override def getData: util.Map[String, Object] = conv.getData
+                override def getUserData: util.Map[String, Object] = conv.getUserData
             }
 
             override def isOwnerOf(tok: NCToken): Boolean = allVars.contains(tok)