You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2011/11/30 11:48:54 UTC

svn commit: r1208374 - /tuscany/sca-java-2.x/trunk/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/ParserPool.java

Author: antelder
Date: Wed Nov 30 10:48:53 2011
New Revision: 1208374

URL: http://svn.apache.org/viewvc?rev=1208374&view=rev
Log:
Work around for Java bug with map entry setValue

Modified:
    tuscany/sca-java-2.x/trunk/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/ParserPool.java

Modified: tuscany/sca-java-2.x/trunk/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/ParserPool.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/ParserPool.java?rev=1208374&r1=1208373&r2=1208374&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/ParserPool.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/dom/ParserPool.java Wed Nov 30 10:48:53 2011
@@ -43,8 +43,11 @@ public abstract class ParserPool<V> {
         while (true) {
             for (Map.Entry<V, Boolean> e : objects.entrySet()) {
                 if (Boolean.FALSE.equals(e.getValue())) {
-                    e.setValue(Boolean.TRUE); // in use
-                    return e.getKey();
+                    // setValue fails on some Harmony based JDKs, see https://issues.apache.org/jira/browse/HARMONY-6419
+                    //e.setValue(Boolean.TRUE); // in use
+                    V key = e.getKey();
+                    objects.put(key, Boolean.TRUE); // in use
+                    return key;
                 }
             }
             if (objects.size() < maxSize) {