glassfish
  1. glassfish
  2. GLASSFISH-15786

IOP00410016: Remote access of appclient over webstart not possible

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 3.1_b40
    • Fix Version/s: 3.1_b41
    • Component/s: orb
    • Labels:
      None
    • Environment:

      ubuntu 10.04, sun_jdk_1.6.0_22, glassfish 3.1_b30 - b40

      Description

      I deploy an ear with an appclient inside, which gets started over the automatic webstart generator. This appclient opens as expected, when it is opened on the server (localhost). But when it gets opened over the network, the initial IIOP connection fails with the following error. The same ear works fine on glassfish 3.0.1.

      As you can see in the error message, it tries to open port 192.168.0.25, which in fact is the IP address of the server.

      SCHWERWIEGEND: IOP00410016: Unable to create IIOP listener on the specified port: 192.168.0.25
      org.omg.CORBA.COMM_FAILURE: SCHWERWIEGEND: IOP00410016: Unable to create IIOP listener on the specified port: 192.168.0.25 vmcid: OMG minor code: 16 completed: No
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
      at java.lang.reflect.Constructor.newInstance(Unknown Source)
      at com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException(CorbaExtension.java:248)
      at com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException(CorbaExtension.java:95)
      at com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.handleFullLogging(WrapperGenerator.java:387)
      at com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.access$400(WrapperGenerator.java:107)
      at com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator$2.invoke(WrapperGenerator.java:511)
      at com.sun.corba.ee.spi.orbutil.proxy.CompositeInvocationHandlerImpl.invoke(CompositeInvocationHandlerImpl.java:99)
      at $Proxy34.createListenerFailed(Unknown Source)
      at com.sun.corba.ee.impl.transport.SocketOrChannelAcceptorImpl.initialize(SocketOrChannelAcceptorImpl.java:98)
      at com.sun.corba.ee.impl.transport.CorbaTransportManagerImpl.getAcceptors(CorbaTransportManagerImpl.java:243)
      at com.sun.corba.ee.impl.legacy.connection.LegacyServerSocketManagerImpl.getAcceptorIterator(LegacyServerSocketManagerImpl.java:163)
      at com.sun.corba.ee.impl.legacy.connection.LegacyServerSocketManagerImpl.legacyIsLocalServerPort(LegacyServerSocketManagerImpl.java:130)
      at com.sun.corba.ee.impl.ior.iiop.IIOPProfileImpl.isLocal(IIOPProfileImpl.java:341)
      at com.sun.corba.ee.impl.transport.CorbaContactInfoListImpl.setLocalSubcontract(CorbaContactInfoListImpl.java:444)
      at com.sun.corba.ee.impl.transport.CorbaContactInfoListImpl.setEffectiveTargetIOR(CorbaContactInfoListImpl.java:277)
      at com.sun.corba.ee.impl.transport.CorbaContactInfoListImpl.setTargetIOR(CorbaContactInfoListImpl.java:219)
      at com.sun.corba.ee.impl.transport.CorbaContactInfoListImpl.<init>(CorbaContactInfoListImpl.java:183)
      at com.sun.corba.ee.spi.transport.TransportDefault$1.create(TransportDefault.java:70)
      at com.sun.corba.ee.impl.orbutil.ORBUtility.makeClientDelegate(ORBUtility.java:803)
      at com.sun.corba.ee.impl.resolver.BootstrapResolverImpl.<init>(BootstrapResolverImpl.java:83)
      at com.sun.corba.ee.spi.resolver.ResolverDefault.makeBootstrapResolver(ResolverDefault.java:89)
      at com.sun.corba.ee.impl.orb.ORBConfiguratorImpl.initializeNaming(ORBConfiguratorImpl.java:363)
      at com.sun.corba.ee.impl.orb.ORBConfiguratorImpl.configure(ORBConfiguratorImpl.java:152)
      at com.sun.corba.ee.impl.orb.ORBImpl.postInit(ORBImpl.java:625)
      at com.sun.corba.ee.impl.orb.ORBImpl.set_parameters(ORBImpl.java:704)
      at com.sun.corba.ee.impl.orb.ORBImpl.setParameters(ORBImpl.java:691)
      at com.sun.corba.ee.spi.osgi.ORBFactory.initialize(ORBFactory.java:107)
      at org.glassfish.enterprise.iiop.impl.GlassFishORBManager.initORB(GlassFishORBManager.java:581)
      at org.glassfish.enterprise.iiop.impl.GlassFishORBManager.getORB(GlassFishORBManager.java:263)
      at org.glassfish.enterprise.iiop.impl.GlassFishORBFactoryImpl.createORB(GlassFishORBFactoryImpl.java:93)
      at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:120)
      at com.sun.enterprise.naming.impl.SerialContext.getORB(SerialContext.java:365)
      at com.sun.enterprise.naming.impl.SerialContext.getProviderCacheKey(SerialContext.java:372)
      at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:402)
      at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:347)
      at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:508)
      at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)
      at javax.naming.InitialContext.lookup(Unknown Source)
      at com.sun.ejb.EjbNamingReferenceManagerImpl.resolveEjbReference(EjbNamingReferenceManagerImpl.java:173)
      at com.sun.enterprise.container.common.impl.ComponentEnvManagerImpl$EjbReferenceProxy.create(ComponentEnvManagerImpl.java:1097)
      at com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:771)
      at com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:740)
      at com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:166)
      at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:502)
      at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)
      at javax.naming.InitialContext.lookup(Unknown Source)
      at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:597)
      at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:468)
      at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.injectClass(InjectionManagerImpl.java:215)
      at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.injectClass(InjectionManagerImpl.java:207)
      at org.glassfish.appclient.client.acc.AppClientContainer$ClientMainClassSetting.getClientMainClass(AppClientContainer.java:619)
      at org.glassfish.appclient.client.acc.AppClientContainer.getMainMethod(AppClientContainer.java:511)
      at org.glassfish.appclient.client.acc.AppClientContainer.completePreparation(AppClientContainer.java:405)
      at org.glassfish.appclient.client.acc.AppClientContainer.prepare(AppClientContainer.java:319)
      at org.glassfish.appclient.client.AppClientFacade.prepareACC(AppClientFacade.java:278)
      at org.glassfish.appclient.client.JWSAppClientContainerMain$ClientRunner.run(JWSAppClientContainerMain.java:167)
      at org.glassfish.appclient.client.JWSAppClientContainerMain.main(JWSAppClientContainerMain.java:132)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at com.sun.javaws.Launcher.executeApplication(Unknown Source)
      at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
      at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
      at com.sun.javaws.Launcher.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
      Caused by: java.net.BindException: Cannot assign requested address: bind
      at sun.nio.ch.Net.bind(Native Method)
      at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
      at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
      at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
      at org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createServerSocket(IIOPSSLSocketFactory.java:293)
      at com.sun.corba.ee.impl.transport.SocketOrChannelAcceptorImpl.initialize(SocketOrChannelAcceptorImpl.java:91)
      ... 57 more

        Activity

        Hide
        Ken Cavanaugh added a comment -

        OK, with that fix, I can reproduce this now. I'll investigate.

        Show
        Ken Cavanaugh added a comment - OK, with that fix, I can reproduce this now. I'll investigate.
        Hide
        Ken Cavanaugh added a comment -

        How bad is its impact? (Severity)
        Regression in in webstart from GF 2.1.

        How often does it happen? (Frequency)
        Happens all the time with the given test.
        I think this one is a sever defect that would break most non-FOLB appclients.

        How much effort is required to fix it?
        There is old, incorrect code in the GlassFishORBManager that sets the ORB server host
        to the ORB initial host. This should never be done, so the fix is to remote the two
        lines of code.

        What is the risk of fixing it? (Risk)
        Low: small change, good test coverage

        Does a work around for the issue exist? Can the workaround be reasonably employed by the end user?
        User could probably do something like -targerserver host:3700,host:3700 to avoid this (as in the test),
        but that seems like a poor workaround.

        If the issue is not fixed should the issue and its workaround (if applicable) be described in the Release Notes?
        yes, but I'd recommend fixing this.

        How long has the bug existed in the product?
        Since the beginning of GF 3.1 FOLB development (roughly 6 months)

        Do regression tests exist for this issue?
        Not sure. There should be coverage in EJB dev, but those tests do not fail.

        Which tests should QA (re)run to verify the fix did not destabilize GlassFish?
        Test case is in this issue.

        When will a tested fix be ready for integration?
        Probably later today (2/4/11)

        Show
        Ken Cavanaugh added a comment - How bad is its impact? (Severity) Regression in in webstart from GF 2.1. How often does it happen? (Frequency) Happens all the time with the given test. I think this one is a sever defect that would break most non-FOLB appclients. How much effort is required to fix it? There is old, incorrect code in the GlassFishORBManager that sets the ORB server host to the ORB initial host. This should never be done, so the fix is to remote the two lines of code. What is the risk of fixing it? (Risk) Low: small change, good test coverage Does a work around for the issue exist? Can the workaround be reasonably employed by the end user? User could probably do something like -targerserver host:3700,host:3700 to avoid this (as in the test), but that seems like a poor workaround. If the issue is not fixed should the issue and its workaround (if applicable) be described in the Release Notes? yes, but I'd recommend fixing this. How long has the bug existed in the product? Since the beginning of GF 3.1 FOLB development (roughly 6 months) Do regression tests exist for this issue? Not sure. There should be coverage in EJB dev, but those tests do not fail. Which tests should QA (re)run to verify the fix did not destabilize GlassFish? Test case is in this issue. When will a tested fix be ready for integration? Probably later today (2/4/11)
        Hide
        Chris Kasso added a comment -

        Approved for RC2.

        Show
        Chris Kasso added a comment - Approved for RC2.
        Hide
        Ken Cavanaugh added a comment -

        Fixed in rev 44924.

        Show
        Ken Cavanaugh added a comment - Fixed in rev 44924.
        Hide
        dbieri added a comment -

        tested with 3.1_b41. This fix solved my problem. Thanks a lot!

        Cheers,
        Dani

        Show
        dbieri added a comment - tested with 3.1_b41. This fix solved my problem. Thanks a lot! Cheers, Dani

          People

          • Assignee:
            Ken Cavanaugh
            Reporter:
            dbieri
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: