You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by ra...@apache.org on 2008/05/18 19:15:25 UTC

svn commit: r657592 - in /xml/security/trunk: CHANGELOG.txt src/org/apache/xml/security/keys/keyresolver/KeyResolver.java

Author: raul
Date: Sun May 18 10:15:25 2008
New Revision: 657592

URL: http://svn.apache.org/viewvc?rev=657592&view=rev
Log:
Fixed bug 44991: Concurrent invocation of KeyInfo.getX509Certificate() occasionally fails. Thanks to Giedrius Noreikis

Modified:
    xml/security/trunk/CHANGELOG.txt
    xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/KeyResolver.java

Modified: xml/security/trunk/CHANGELOG.txt
URL: http://svn.apache.org/viewvc/xml/security/trunk/CHANGELOG.txt?rev=657592&r1=657591&r2=657592&view=diff
==============================================================================
--- xml/security/trunk/CHANGELOG.txt (original)
+++ xml/security/trunk/CHANGELOG.txt Sun May 18 10:15:25 2008
@@ -3,6 +3,8 @@
     Fixed bug 44999: DOMException is thrown at XMLSignature creation. Thanks to Giedrius Noreikis.
     Fixed bug 44863: Improved logging in signature handling. Thanks to Wally Dennis.
     Fixed bug 44956: Concurrent creation of a XMLSignature instance produces an ArrayIndexOutOfBoundsException. Thanks to Giedrius Noreikis
+    Fixed bug 44991: Concurrent invocation of KeyInfo.getX509Certificate() occasionally fails. Thanks to Giedrius Noreikis
+    
     
 New in v1.4.2beta2
     Fixed bug 44810: Add support for more XMLDSig algorithms listed in RFC 4051

Modified: xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/KeyResolver.java
URL: http://svn.apache.org/viewvc/xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/KeyResolver.java?rev=657592&r1=657591&r2=657592&view=diff
==============================================================================
--- xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/KeyResolver.java (original)
+++ xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/KeyResolver.java Sun May 18 10:15:25 2008
@@ -123,9 +123,11 @@
            Element element, String BaseURI, StorageResolver storage)
               throws KeyResolverException {
 
-      for (int i = 0; i < KeyResolver._resolverVector.size(); i++) {
+	  // use the old vector to not be hit by updates
+	  List resolverVector = KeyResolver._resolverVector;
+      for (int i = 0; i < resolverVector.size(); i++) {
 		  KeyResolver resolver=
-            (KeyResolver) KeyResolver._resolverVector.get(i);
+            (KeyResolver) resolverVector.get(i);
 
 		  if (resolver==null) {
             Object exArgs[] = {
@@ -165,10 +167,11 @@
    public static final PublicKey getPublicKey(
            Element element, String BaseURI, StorageResolver storage)
               throws KeyResolverException {
-
-      for (int i = 0; i < KeyResolver._resolverVector.size(); i++) {
+	  
+	  List resolverVector = KeyResolver._resolverVector;
+      for (int i = 0; i < resolverVector.size(); i++) {
 		  KeyResolver resolver=
-            (KeyResolver) KeyResolver._resolverVector.get(i);
+            (KeyResolver) resolverVector.get(i);
 
 		  if (resolver==null) {
             Object exArgs[] = {
@@ -186,7 +189,7 @@
          if (cert!=null) {
         	 if (i!=0) {
             	 //update resolver.        		 
-        		 List resolverVector=(List)((ArrayList)_resolverVector).clone();        		   		 
+        		 resolverVector=(List)((ArrayList)_resolverVector).clone();        		   		 
 		  		 Object ob=resolverVector.remove(i);
 		  		 resolverVector.add(0,ob);
    		 		 _resolverVector=resolverVector;