Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4236554

RepositoryId.createForAnyType does not handle some IDLTypes.

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P1 P1
    • rmi-iiop_fcs
    • rmi-iiop_fcs
    • other-libs
    • None
    • iiop_fcs
    • sparc
    • solaris_1
    • Not verified

        The following code in RepositoryId.createForAnyType():

                if (type.isArray())
                    return createSequenceRepID(type);
                else if (/*(!isRMIIDLType(type)) &&*/
                IDLEntity.class.isAssignableFrom(type))
                {
                    try{
                   return get_instance_of_helper(type).get_id();
                    }
                    catch(Throwable t) {
                   return createForIDLType(type, 1, 0);
                    }

                is not returning the correct repid for some IDLEntity types that are not
                valuetypes. This is because the get_instance_of_helper() method returns
                a ValueHelper instance. For non-valuetype helpers, there is no such
                thing, so this method throws an exception. The logic catches this and
                calls createforIDLType, but this does not return the correct repid if a
                #pragma prefix was used in the original IDL.

              duke J. Duke
              duke J. Duke
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: