This is an automated email from the ASF dual-hosted git repository.

rec pushed a commit to branch 
bugfix/UIMA-6385-Potential-resource-key-clash-in-environments-with-multiple-classloaders
in repository https://gitbox.apache.org/repos/asf/uima-uimafit.git

commit 7ec91f06938e5e578777db795ef56c1e3a29a8ed
Author: Richard Eckart de Castilho <r...@apache.org>
AuthorDate: Thu Oct 28 18:29:20 2021 +0200

    [UIMA-6385] Potential resource key clash in environments with multiple 
classloaders
    
    - Disambiguate the static disambiguator via its identity hash code (which 
should by unique for the entire JVM when there are multiple static 
disambiguators in different classloaders for some reason)
---
 .../main/java/org/apache/uima/fit/factory/ExternalResourceFactory.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/uimafit-core/src/main/java/org/apache/uima/fit/factory/ExternalResourceFactory.java
 
b/uimafit-core/src/main/java/org/apache/uima/fit/factory/ExternalResourceFactory.java
index 20b1f5c..fa98531 100644
--- 
a/uimafit-core/src/main/java/org/apache/uima/fit/factory/ExternalResourceFactory.java
+++ 
b/uimafit-core/src/main/java/org/apache/uima/fit/factory/ExternalResourceFactory.java
@@ -19,6 +19,7 @@
 
 package org.apache.uima.fit.factory;
 
+import static java.lang.System.identityHashCode;
 import static java.util.Arrays.asList;
 import static java.util.Collections.emptyMap;
 import static org.apache.uima.UIMAFramework.getResourceSpecifierFactory;
@@ -1303,7 +1304,7 @@ public final class ExternalResourceFactory {
   }
 
   static String uniqueResourceKey(String aKey) {
-    return aKey + '-' + DISAMBIGUATOR.getAndIncrement();
+    return aKey + '-' + identityHashCode(DISAMBIGUATOR) + '-' + 
DISAMBIGUATOR.getAndIncrement();
   }
 
   /**

Reply via email to