GERONIMOTCK-133 Add logic to allow YOKO endure invalid value type tag sent from RI, a new system property org.apache.yoko.ignoreInvalidValueTag introduced

git-svn-id: https://svn.apache.org/repos/asf/geronimo/yoko/trunk@1360561 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/yoko-core/src/main/java/org/apache/yoko/orb/OB/ValueReader.java b/yoko-core/src/main/java/org/apache/yoko/orb/OB/ValueReader.java
index 4fb0a34..e6aa2af 100644
--- a/yoko-core/src/main/java/org/apache/yoko/orb/OB/ValueReader.java
+++ b/yoko-core/src/main/java/org/apache/yoko/orb/OB/ValueReader.java
@@ -1076,7 +1076,18 @@
     	}
         ClassCreationStrategy strategy = new ClassCreationStrategy(this, in_,
                 clz);
-        return read(strategy);
+        java.io.Serializable result = null;
+        try {
+            result = read(strategy);
+        } catch (org.omg.CORBA.MARSHAL marshalex) {
+            logger.severe(marshalex.getMessage() + " at pos=" + (in_.buf_.pos_- 4));
+            if (System.getProperty("org.apache.yoko.ignoreInvalidValueTag").equalsIgnoreCase("true")) {
+                result = read(strategy);
+            } else {
+                throw marshalex;
+            }
+        }
+        return result;
     }
 
     public java.io.Serializable readValueBox(