throw new MARSHAL("IO exception: " + ex.getMessage());
MARSHAL m = new MARSHAL(); m.initCause(ex); throw m;
  public void read_value(org.omg.CORBA.portable.InputStream input,                         TypeCode a_type                        )                  throws MARSHAL  {    try      {        int kind = a_type.kind().value();        // Fixed needs special handling.        if (kind == TCKind._tk_fixed)          {            BigDecimal dec = BigDecimalHelper.read(input, a_type.fixed_scale());            has = new FixedHolder(dec);          }        else          {            has = holderFactory.createHolder(a_type);            if (has == null)            {              // Use the Universal Holder that reads till the end of stream.              // This works with the extract/insert pair of the typical              // Helper.              cdrBufOutput buffer = new cdrBufOutput();              buffer.setOrb(orb);              has = new universalHolder(buffer);            }          }        type(a_type);        has._read(input);      }    catch (BadKind ex)      {        throw new MARSHAL("Bad kind: " + ex.getMessage());      }    catch (IOException ex)      {        throw new MARSHAL("IO exception: " + ex.getMessage());      }  }