Updated Branches:
  refs/heads/camel-2.11.x 2e8b16583 -> a52f9b235
  refs/heads/camel-2.12.x 18a6cb180 -> a4020d71c


CAMEL-7125 Fixed the issue that tokenizeXml fails when attributes have a slash 
in them


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/a4020d71
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a4020d71
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a4020d71

Branch: refs/heads/camel-2.12.x
Commit: a4020d71c58032b8eca3a7146b95fb1d30bb447e
Parents: 18a6cb1
Author: Willem Jiang <willem.ji...@gmail.com>
Authored: Fri Feb 7 17:01:22 2014 +0800
Committer: Willem Jiang <willem.ji...@gmail.com>
Committed: Fri Feb 7 17:20:04 2014 +0800

----------------------------------------------------------------------
 .../apache/camel/support/TokenXMLExpressionIterator.java  |  2 +-
 .../org/apache/camel/processor/SplitTokenizerTest.java    | 10 +++++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/a4020d71/camel-core/src/main/java/org/apache/camel/support/TokenXMLExpressionIterator.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/support/TokenXMLExpressionIterator.java
 
b/camel-core/src/main/java/org/apache/camel/support/TokenXMLExpressionIterator.java
index 3048c64..ba21a71 100644
--- 
a/camel-core/src/main/java/org/apache/camel/support/TokenXMLExpressionIterator.java
+++ 
b/camel-core/src/main/java/org/apache/camel/support/TokenXMLExpressionIterator.java
@@ -47,7 +47,7 @@ import org.apache.camel.util.ObjectHelper;
 public class TokenXMLExpressionIterator extends ExpressionAdapter {
     private static final Pattern NAMESPACE_PATTERN = 
Pattern.compile("xmlns(:\\w+|)\\s*=\\s*('[^']+'|\"[^\"]+\")");
     private static final String SCAN_TOKEN_NS_PREFIX_REGEX = 
"([^:<>]{1,15}?:|)";
-    private static final String SCAN_BLOCK_TOKEN_REGEX_TEMPLATE = 
"<{0}(\\s+[^/^>]*)?/>|<{0}(\\s+[^>]*)?>(?:(?!(</{0}\\s*>)).)*</{0}\\s*>";
+    private static final String SCAN_BLOCK_TOKEN_REGEX_TEMPLATE = 
"<{0}(\\s+[^>]*)?/>|<{0}(\\s+[^>]*)?>(?:(?!(</{0}\\s*>)).)*</{0}\\s*>";
     private static final String SCAN_PARENT_TOKEN_REGEX_TEMPLATE = 
"<{0}(\\s+[^>]*\\s*)?>";
     
     protected final String tagToken;

http://git-wip-us.apache.org/repos/asf/camel/blob/a4020d71/camel-core/src/test/java/org/apache/camel/processor/SplitTokenizerTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/processor/SplitTokenizerTest.java 
b/camel-core/src/test/java/org/apache/camel/processor/SplitTokenizerTest.java
index c583bc8..cd3e44f 100644
--- 
a/camel-core/src/test/java/org/apache/camel/processor/SplitTokenizerTest.java
+++ 
b/camel-core/src/test/java/org/apache/camel/processor/SplitTokenizerTest.java
@@ -71,6 +71,15 @@ public class SplitTokenizerTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
     }
     
+    public void testSplitTokenizerEWithSlash() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:split");
+        String xml = "<persons><person attr='/' /></persons>";
+        mock.expectedBodiesReceived("<person attr='/' />");
+        template.sendBody("direct:e", xml);
+        mock.assertIsSatisfied();
+        assertMockEndpointsSatisfied();
+    }
+    
     public void testSplitTokenizerF() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:split");
         mock.expectedBodiesReceived("<person name=\"Claus\"/>", 
"<person>James</person>", "<person>Willem</person>");
@@ -113,7 +122,6 @@ public class SplitTokenizerTest extends ContextTestSupport {
                         // it will call the 
ObjectHelper.evaluateValuePredicate()
                         .filter().simple("${body}")
                             .to("mock:split");
-                
               
             }
         };

Reply via email to