You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2010/04/07 12:40:37 UTC
svn commit: r931494 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/util/ObjectHelper.java
test/java/org/apache/camel/converter/ObjectHelperTest.java
test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java
Author: davsclaus
Date: Wed Apr 7 10:40:37 2010
New Revision: 931494
URL: http://svn.apache.org/viewvc?rev=931494&view=rev
Log:
CAMEL-2622: Fixed createIterator and hasNext. Thanks to Sergey Zolotaryov for the patch.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ObjectHelperTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java?rev=931494&r1=931493&r2=931494&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java Wed Apr 7 10:40:37 2010
@@ -467,15 +467,16 @@ public final class ObjectHelper {
return list.iterator();
} else if (value instanceof NodeList) {
// lets iterate through DOM results after performing XPaths
- final NodeList nodeList = (NodeList)value;
+ final NodeList nodeList = (NodeList) value;
return CastUtils.cast(new Iterator<Node>() {
int idx = -1;
public boolean hasNext() {
- return ++idx < nodeList.getLength();
+ return (idx + 1) < nodeList.getLength();
}
public Node next() {
+ idx++;
return nodeList.item(idx);
}
@@ -500,10 +501,11 @@ public final class ObjectHelper {
public boolean hasNext() {
// empty string should not be regarded as having next
- return ++idx == 0 && ObjectHelper.isNotEmpty(s);
+ return idx + 1 == 0 && ObjectHelper.isNotEmpty(s);
}
public String next() {
+ idx++;
return s;
}
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ObjectHelperTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ObjectHelperTest.java?rev=931494&r1=931493&r2=931494&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ObjectHelperTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ObjectHelperTest.java Wed Apr 7 10:40:37 2010
@@ -18,7 +18,11 @@ package org.apache.camel.converter;
import java.util.Iterator;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
import junit.framework.TestCase;
+
import org.apache.camel.util.ObjectHelper;
/**
@@ -84,4 +88,31 @@ public class ObjectHelperTest extends Te
assertEquals(false, it.hasNext());
}
+ public void testIteratorIdempotentNext() {
+ Iterator<Object> it = ObjectHelper.createIterator("a");
+ assertTrue(it.hasNext());
+ assertTrue(it.hasNext());
+ it.next();
+ assertFalse(it.hasNext());
+ }
+
+ public void testIteratorIdempotentNextWithNodeList() {
+ NodeList nodeList = new NodeList() {
+
+ public Node item(int index) {
+ return null;
+ }
+
+ public int getLength() {
+ return 1;
+ }
+ };
+
+ Iterator<Object> it = ObjectHelper.createIterator(nodeList);
+ assertTrue(it.hasNext());
+ assertTrue(it.hasNext());
+ it.next();
+ assertFalse(it.hasNext());
+ }
+
}
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java?rev=931494&r1=931493&r2=931494&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomProducerServicePoolTest.java Wed Apr 7 10:40:37 2010
@@ -37,7 +37,7 @@ public class CustomProducerServicePoolTe
private static int counter;
- private class MyEndpoint extends DefaultEndpoint {
+ private final class MyEndpoint extends DefaultEndpoint {
private MyEndpoint(String endpointUri, CamelContext camelContext) {
super(endpointUri, camelContext);
@@ -61,7 +61,7 @@ public class CustomProducerServicePoolTe
}
}
- private class MyProducer extends DefaultProducer implements ServicePoolAware {
+ private final class MyProducer extends DefaultProducer implements ServicePoolAware {
public MyProducer(Endpoint endpoint) {
super(endpoint);