[jboss-remoting-commits] JBoss Remoting SVN: r4047 - in remoting3/trunk: util/src/main/java/org/jboss/cx/remoting/util and 1 other directory.
jboss-remoting-commits at lists.jboss.org
jboss-remoting-commits at lists.jboss.org
Wed Apr 23 18:06:36 EDT 2008
Author: david.lloyd at jboss.com
Date: 2008-04-23 18:06:36 -0400 (Wed, 23 Apr 2008)
New Revision: 4047
Modified:
remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/marshal/CompositeObjectResolver.java
remoting3/trunk/util/src/main/java/org/jboss/cx/remoting/util/CollectionUtil.java
Log:
Fix resolver order
Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/marshal/CompositeObjectResolver.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/marshal/CompositeObjectResolver.java 2008-04-23 17:13:47 UTC (rev 4046)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/marshal/CompositeObjectResolver.java 2008-04-23 22:06:36 UTC (rev 4047)
@@ -26,7 +26,7 @@
}
public Object readResolve(Object object) throws IOException {
- for (ObjectResolver resolver : resolvers) {
+ for (ObjectResolver resolver : CollectionUtil.reverse(resolvers)) {
object = resolver.readResolve(object);
}
return object;
Modified: remoting3/trunk/util/src/main/java/org/jboss/cx/remoting/util/CollectionUtil.java
===================================================================
--- remoting3/trunk/util/src/main/java/org/jboss/cx/remoting/util/CollectionUtil.java 2008-04-23 17:13:47 UTC (rev 4046)
+++ remoting3/trunk/util/src/main/java/org/jboss/cx/remoting/util/CollectionUtil.java 2008-04-23 22:06:36 UTC (rev 4047)
@@ -17,6 +17,7 @@
import java.util.Queue;
import java.util.Set;
import java.util.WeakHashMap;
+import java.util.ListIterator;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ConcurrentHashMap;
@@ -565,4 +566,66 @@
}
}
+
+ public static <T> ListIterator<T> reverse(ListIterator<T> original) {
+ if (original instanceof ReverseListIterator) {
+ return ((ReverseListIterator<T>)original).original;
+ } else {
+ return new ReverseListIterator<T>(original);
+ }
+ }
+
+ public static <T> Iterable<T> reverse(final List<T> list) {
+ return new Iterable<T>() {
+ public Iterator<T> iterator() {
+ return reverse(list.listIterator());
+ }
+ };
+ }
+
+ private static final class ReverseListIterator<T> implements ListIterator<T> {
+
+ private final ListIterator<T> original;
+
+ private ReverseListIterator(final ListIterator<T> original) {
+ this.original = original;
+ }
+
+ public boolean hasNext() {
+ return original.hasPrevious();
+ }
+
+ public T next() {
+ return original.previous();
+ }
+
+ public boolean hasPrevious() {
+ return original.hasNext();
+ }
+
+ public T previous() {
+ return original.next();
+ }
+
+ public int nextIndex() {
+ return original.previousIndex();
+ }
+
+ public int previousIndex() {
+ return original.nextIndex();
+ }
+
+ public void remove() {
+ original.remove();
+ }
+
+ public void set(final T o) {
+ original.set(o);
+ }
+
+ public void add(final T o) {
+ original.add(o);
+ original.previous();
+ }
+ }
}
More information about the jboss-remoting-commits
mailing list