You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by fr...@apache.org on 2006/12/08 21:45:05 UTC

svn commit: r484770 - in /incubator/tuscany/java/sdo/impl/src: main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java test/java/org/apache/tuscany/sdo/test/XPathTestCase.java

Author: frankb
Date: Fri Dec  8 12:45:04 2006
New Revision: 484770

URL: http://svn.apache.org/viewvc?view=rev&rev=484770
Log:
Fix for TUSCANY-935

Modified:
    incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java
    incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XPathTestCase.java

Modified: incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java?view=diff&rev=484770&r1=484769&r2=484770
==============================================================================
--- incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java (original)
+++ incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java Fri Dec  8 12:45:04 2006
@@ -2123,20 +2123,26 @@
      */ 
     protected void setIndex(int index)
     {
-      if(index < 0) {
-        // The index value should be greater than 0.  An index value which is too high will result in
-        // an index out of bounds generated later on accessing the data.
+      if (index < 0) {
+        // The index value should not be less than 0.
         runtimeException = new IndexOutOfBoundsException("Index value is too low");
         setEObject(null);
         return;
       }
-      this.index = index;
       if (!FeatureMapUtil.isMany(eObject, feature))
       {
-        runtimeException = new IndexOutOfBoundsException("Index applies only to multi-valued features.");
+        runtimeException = new IndexOutOfBoundsException("Index applies only to multi-valued features");
         setEObject(null);
         return;
       }
+      int size = ((List) eObject.eGet(feature)).size();
+      if (index >= size)
+      {
+        // The index value should be less than size.
+        runtimeException = new IndexOutOfBoundsException("Index value should have been less than " + size);
+        setEObject(null);
+      }
+      this.index = index;
     }
 
     protected void process(String pathString)

Modified: incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XPathTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XPathTestCase.java?view=diff&rev=484770&r1=484769&r2=484770
==============================================================================
--- incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XPathTestCase.java (original)
+++ incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XPathTestCase.java Fri Dec  8 12:45:04 2006
@@ -23,13 +23,12 @@
 import java.io.InputStream;
 import java.net.URL;
 
-import org.apache.tuscany.sdo.util.SDOUtil;
-
 import junit.framework.TestCase;
 
+import org.apache.tuscany.sdo.util.SDOUtil;
+
 import commonj.sdo.DataObject;
 import commonj.sdo.helper.HelperContext;
-import commonj.sdo.helper.TypeHelper;
 import commonj.sdo.helper.XMLDocument;
 import commonj.sdo.helper.XMLHelper;
 import commonj.sdo.helper.XSDHelper;
@@ -92,13 +91,12 @@
 
         DataObject noFolder = null;
 
-//        TODO fix this case to return null
-//        try {
-//            noFolder = root.getDataObject("Folder[3]");
-//            assertNull(noFolder);
-//        } catch (Exception e) {
-//            assertFalse("bad indexing generated exception" + e, true);
-//        }
+        try {
+            noFolder = root.getDataObject("Folder[3]");
+            assertNull(noFolder);
+        } catch (Exception e) {
+            assertFalse("bad indexing generated exception" + e, true);
+        }
 
         try {
             noFolder = root.getDataObject("Folder[0]");
@@ -107,13 +105,12 @@
             assertFalse("bad indexing generated exception" + e, true);
         }
 
-//      TODO fix this case to return null
-//        try {
-//            noFolder = root.getDataObject("Folder.2");
-//            assertNull(noFolder);
-//        } catch (Exception e) {
-//            assertFalse("bad indexing generated exception" + e, true);
-//        }
+        try {
+            noFolder = root.getDataObject("Folder.2");
+            assertNull(noFolder);
+        } catch (Exception e) {
+            assertFalse("bad indexing generated exception" + e, true);
+        }
 
         try {
             noFolder = root.getDataObject("Folder.-1");



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org