
The file jacorb.jar in this directory was built by applying the patch below 
to JacORB 2.1, which is available at http://www.jacorb.org/download.html.

Kudos to the JacORB team, for this great open-source ORB.

Special thanks to:

        Gerald Brose, for creating JacORB

        Andre Spiegel, for his work on OBV in JacORB


Francisco

---------------> patchfile begins here <-------------------------------------
--- src/org/jacorb/util/Version.java.r1.23	Mon Feb 16 05:27:58 2004
+++ src/org/jacorb/util/Version.java	Mon Mar  1 11:40:19 2004
@@ -28,9 +28,9 @@
  */
 public final class Version
 {
-    public static final String version = "2.1";
+    public static final String version = "2.1 (JBoss patch 1)";
 
-    public static final String date = "16-Feb-2004";
+    public static final String date = "01-Mar-2004";
 
     public static final String longVersion = version + ", " + date;
 }
--- src/org/jacorb/orb/CDRInputStream.java.r1.79	Wed Jan  7 12:23:16 2004
+++ src/org/jacorb/orb/CDRInputStream.java	Mon Mar  1 11:37:16 2004
@@ -43,7 +43,7 @@
  * Read CDR encoded data
  *
  * @author Gerald Brose, FU Berlin
- * $Id: CDRInputStream.java,v 1.79 2004/01/07 14:23:16 nick.cross Exp $
+ * $Id: CDRInputStream.java,v 1.80 2004/03/01 14:12:22 francisco Exp $
  */
 
 public class CDRInputStream
@@ -2197,6 +2197,7 @@
         String codebase = ((tag & 1) != 0) ? read_codebase() : null;
         chunkedValue = ((tag & 8) != 0);
 
+        int theTag = tag;
         tag = tag & 0xfffffff6;
 
         if (tag == 0x7fffff00)
@@ -2210,7 +2211,9 @@
             return read_multi_typed_value( start_offset, codebase );
         }
         else
-            throw new MARSHAL("unknown value tag: " + Integer.toHexString(tag));
+            throw new MARSHAL("unknown value tag: 0x" + 
+                              Integer.toHexString(theTag) + " (offset=0x" + 
+                              Integer.toHexString(start_offset) + ")");
     }
 
     /**
@@ -2237,6 +2240,7 @@
         String codebase = ((tag & 1) != 0) ? read_codebase() : null;
         chunkedValue = ((tag & 8) != 0);
 
+        int theTag = tag;
         tag = tag & 0xfffffff6;
 
         if (tag == 0x7fffff00)
@@ -2253,7 +2257,9 @@
         }
         else
         {
-            throw new MARSHAL("unknown value tag: " + Integer.toHexString(tag));
+            throw new MARSHAL("unknown value tag: 0x" + 
+                              Integer.toHexString(theTag) + " (offset=0x" + 
+                              Integer.toHexString(start_offset) + ")");
         }
     }
 
@@ -2308,6 +2314,7 @@
         String codebase = ((tag & 1) != 0) ? read_codebase() : null;
         chunkedValue = ((tag & 8) != 0);
 
+        int theTag = tag;
         tag = tag & 0xfffffff6;
 
         if (tag == 0x7fffff00)
@@ -2325,7 +2332,9 @@
         }
         else
         {
-            throw new MARSHAL("unknown value tag: " + Integer.toHexString(tag));
+            throw new MARSHAL("unknown value tag: 0x" + 
+                              Integer.toHexString(theTag) + " (offset=0x" + 
+                              Integer.toHexString(start_offset) + ")");
         }
     }
 
@@ -2355,6 +2364,7 @@
         String codebase = ((tag & 1) != 0) ? read_codebase() : null;
         chunkedValue = ((tag & 8) != 0);
 
+        int theTag = tag;
         tag = tag & 0xfffffff6;
 
         if (tag == 0x7fffff00)
@@ -2377,7 +2387,9 @@
             return read_typed_value(start_offset, codebase);
         }
         else
-            throw new MARSHAL("unknown value tag: " + Integer.toHexString(tag));
+            throw new MARSHAL("unknown value tag: 0x" + 
+                              Integer.toHexString(theTag) + " (offset=0x" + 
+                              Integer.toHexString(start_offset) + ")");
     }
 
     /**
@@ -2639,9 +2651,10 @@
         {
             // a new codebase string
             pos -= 4;
-            int index = pos;
+            index -= 4;
+            int start_offset = pos;
             String codebase = read_string();
-            getCodebaseMap ().put (new Integer(index), codebase);
+            getCodebaseMap ().put (new Integer(start_offset), codebase);
             return codebase;
         }
     }
