((abstractDynAny) other.discriminator).listener = other;
((AbstractAny) other.discriminator).listener = other;
  public DynAny copy()  {    try      {        gnuDynUnion other =          new gnuDynUnion(official_type, final_type, factory, orb);        other.discriminator = discriminator.copy();        ((abstractDynAny) other.discriminator).listener = other;        if (array.length == 1)          {            other.array = new DynAny[] { other.discriminator };          }        else          {            other.array =              new DynAny[] { other.discriminator, array [ 1 ].copy() };          }        return other;      }    catch (InconsistentTypeCode ex)      {        throw new Unexpected(ex);      }  }