Uploaded image for project: 'JBoss Enterprise Application Platform 4 and 5'
  1. JBoss Enterprise Application Platform 4 and 5
  2. JBPAPP-6899

NullPointerException in UnifiedInvokerHAProxy.getClient

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • EAP_EWP 5.1.2 ER1
    • EAP_EWP 5.1.0
    • Clustering
    • None
    • Release Notes
    • Hide
      If there were concurrent calls to the UnifiedInvokerHAProxy function a NullPointerException error could occur when the last server was shut down. The issue was that the logic surrounding this function did not check if a target was available, resulting in the following error:

      <screen>FATAL [org.jboss.invocation.unified.interfaces.UnifiedInvokerHAProxy] (TP-Processor242) Could not initialize UnifiedInvokerProxy.</screen>

      The logic surrounding the proxy function has been changed so it first checks the availability of a target, preventing NPE errors.
      Show
      If there were concurrent calls to the UnifiedInvokerHAProxy function a NullPointerException error could occur when the last server was shut down. The issue was that the logic surrounding this function did not check if a target was available, resulting in the following error: <screen>FATAL [org.jboss.invocation.unified.interfaces.UnifiedInvokerHAProxy] (TP-Processor242) Could not initialize UnifiedInvokerProxy.</screen> The logic surrounding the proxy function has been changed so it first checks the availability of a target, preventing NPE errors.
    • Documented as Resolved Issue
    • NEW

    Description

      UnifiedInvokerHAProxy uses FamilyClusterInfo unsynchronized, but assumes it will not be changed.

      In particular, UnifiedInvokerHAProxy.invoke checks:
      familyClusterInfo.getTargets() != null && familyClusterInfo.getTargets().size() > 0
      before calling UnifiedInvokerHAProxy.getClient. getClient then assumes there will be a valid target.

      However, if another thread removes the last target from the shared familyClusterInfo at the same time,
      the target will be null.

      The first call to the proxy where this trigger is issued gets the exception:

      FATAL [org.jboss.invocation.unified.interfaces.UnifiedInvokerHAProxy] (TP-Processor242) Could not initialize UnifiedInvokerProxy.
      java.lang.NullPointerException
      at org.jboss.remoting.Client.processParameters(Client.java:2126)
      at org.jboss.remoting.Client.<init>(Client.java:394)
      at org.jboss.remoting.Client.<init>(Client.java:355)
      at org.jboss.remoting.Client.<init>(Client.java:342)
      at org.jboss.invocation.unified.interfaces.UnifiedInvokerProxy.createClient(UnifiedInvokerProxy.java:261)
      at org.jboss.invocation.unified.interfaces.UnifiedInvokerProxy.init(UnifiedInvokerProxy.java:97)
      at org.jboss.invocation.unified.interfaces.UnifiedInvokerHAProxy.getClient(UnifiedInvokerHAProxy.java:167)
      at org.jboss.invocation.unified.interfaces.UnifiedInvokerHAProxy.invoke(UnifiedInvokerHAProxy.java:204)
      at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:365)
      ...

      All subsequent calls to the same proxy will get:
      java.lang.NullPointerException
      at org.jboss.invocation.unified.interfaces.UnifiedInvokerHAProxy.getClient(UnifiedInvokerHAProxy.java:165)
      at org.jboss.invocation.unified.interfaces.UnifiedInvokerHAProxy.invoke(UnifiedInvokerHAProxy.java:204)
      at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:365)
      at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:197)
      at org.jboss.proxy.ejb.RetryInterceptor.invoke(RetryInterceptor.java:177)
      at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
      at org.jboss.proxy.ejb.SecurityContextInterceptor.invoke(SecurityContextInterceptor.java:64)
      at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:68)
      at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:184)
      at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:101)
      at $Proxy103.create(Unknown Source)
      ...

      Attachments

        Issue Links

          Activity

            People

              rhn-support-dereed Dennis Reed
              rhn-support-dereed Dennis Reed
              Russell Dickenson Russell Dickenson (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: