You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ay...@apache.org on 2012/03/02 00:54:35 UTC

svn commit: r1296001 - in /cxf/branches/2.5.x-fixes: ./ common/common/src/main/java/org/apache/cxf/staxutils/transform/OutTransformWriter.java

Author: ay
Date: Thu Mar  1 23:54:34 2012
New Revision: 1296001

URL: http://svn.apache.org/viewvc?rev=1296001&view=rev
Log:
Merged revisions 1295952 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1295952 | ay | 2012-03-01 23:28:52 +0100 (Thu, 01 Mar 2012) | 1 line
  
  [CXF-4150] modified the previous fix to avoid jaxrs systests regression erros
........

Modified:
    cxf/branches/2.5.x-fixes/   (props changed)
    cxf/branches/2.5.x-fixes/common/common/src/main/java/org/apache/cxf/staxutils/transform/OutTransformWriter.java

Propchange: cxf/branches/2.5.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Mar  1 23:54:34 2012
@@ -1 +1 @@
-/cxf/trunk:1295026,1295466,1295504,1295714
+/cxf/trunk:1295026,1295466,1295504,1295714,1295952

Propchange: cxf/branches/2.5.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.5.x-fixes/common/common/src/main/java/org/apache/cxf/staxutils/transform/OutTransformWriter.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/common/common/src/main/java/org/apache/cxf/staxutils/transform/OutTransformWriter.java?rev=1296001&r1=1296000&r2=1296001&view=diff
==============================================================================
--- cxf/branches/2.5.x-fixes/common/common/src/main/java/org/apache/cxf/staxutils/transform/OutTransformWriter.java (original)
+++ cxf/branches/2.5.x-fixes/common/common/src/main/java/org/apache/cxf/staxutils/transform/OutTransformWriter.java Thu Mar  1 23:54:34 2012
@@ -20,6 +20,8 @@ package org.apache.cxf.staxutils.transfo
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -41,6 +43,7 @@ public class OutTransformWriter extends 
     private QNamesMap attributesMap;
     private Map<QName, ElementProperty> appendMap = new HashMap<QName, ElementProperty>(5);
     private Map<String, String> nsMap = new HashMap<String, String>(5);
+    private List<Set<String>> writtenUris = new LinkedList<Set<String>>();
     
     private Set<QName> dropElements;
     private Stack<List<ParsingEvent>> pushedAheadEvents = new Stack<List<ParsingEvent>>();
@@ -93,7 +96,8 @@ public class OutTransformWriter extends 
         
         uri = value != null ? value : uri;
         
-        if (prefix.equals(getPrefix(uri))) {
+        if (writtenUris.get(0).contains(uri) 
+            && (prefix.length() == 0 || prefix.equals(getPrefix(uri)))) {
             return;
         }
         
@@ -105,6 +109,7 @@ public class OutTransformWriter extends 
             }
             super.writeNamespace(prefix, uri);
         }
+        writtenUris.get(0).add(uri);
     }
     
     @Override
@@ -113,6 +118,13 @@ public class OutTransformWriter extends 
         if (matchesDropped(false)) {
             return;
         }
+        Set<String> s;
+        if (writtenUris.isEmpty()) {
+            s = new HashSet<String>();
+        } else {
+            s = new HashSet<String>(writtenUris.get(0));
+        }
+        writtenUris.add(0, s);
         
         final QName theName = new QName(uri, local, prefix);
         final ElementProperty appendProp = appendMap.remove(theName);
@@ -232,7 +244,9 @@ public class OutTransformWriter extends 
         } else if (dropDepth > 0) {
             dropDepth = 0;
         }
-
+        if (!writtenUris.isEmpty()) {
+            writtenUris.remove(0);
+        }
         QName theName = elementsStack.pop();
         final boolean dropped = dropElements.contains(theName);
         if (!dropped) {