docs: public EJBHome getEJBHome() throws RemoteException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.entry(tc, "getEJBHome");
  
          if (home == null)
          {
              try
              {
                  Class homeClass = null;
                  try
                  {
                      //
                      // If we are running on the server side, then the thread
                      // context loader would have been set appropriately by
                      // the container. If running on a client, then check the
                      // thread context class loader first
                      //
                      ClassLoader cl = Thread.currentThread().getContextClassLoader();
                      if (cl != null)
                      {
                          homeClass = cl.loadClass(homeInterface);
                      }
                      else
                      {
                          throw new ClassNotFoundException();
                      }
                  } catch (ClassNotFoundException ex)
                  {
                      //FFDCFilter.processException(ex, CLASS_NAME + ".getEJBHome", "141", this);
                      try
                      {
                          homeClass = Class.forName(homeInterface);
                      } catch (ClassNotFoundException e)
                      {
                          //FFDCFilter.processException(e, CLASS_NAME + ".getEJBHome",
                          //                       "148", this);
                          throw new ClassNotFoundException(homeInterface);
                      }
                  }
  
                  InitialContext ctx = null;
                  try
                  {
                      // Locate the home
                      //91851 begin
                      if (this.initialContextProperties == null)
                      {
                          ctx = new InitialContext();
                      }
                      else
                      {
                          try
                          {
                              ctx = new InitialContext(this.initialContextProperties);
  
                              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) // d144064
                                  Tr.debug(tc, "Created an initial context with the " +
                                               "initialContextProperties, providerURL = " +
                                               (String) initialContextProperties.get("java.naming.provider.url") +
                                               " INITIAL_CONTEXT_FACTORY = " +
                                               (String) initialContextProperties.get(Context.INITIAL_CONTEXT_FACTORY));
                          } catch (NamingException ne)
                          {
                              //FFDCFilter.processException(ne, CLASS_NAME + ".getEJBHome",
                              //                          "177", this);
                              ctx = new InitialContext();
                          }
                      }
                      //91851 end
                      home = (EJBHome) PortableRemoteObject.
                                      narrow(ctx.lookup(homeJNDIName), homeClass);
                  } catch (NoInitialContextException e)
                  {
                      //FFDCFilter.processException(e, CLASS_NAME + ".getEJBHome", "188", this);
                      java.util.Properties p = new java.util.Properties();
                      p.put(Context.INITIAL_CONTEXT_FACTORY,
                            "com.ibm.websphere.naming.WsnInitialContextFactory");
                      ctx = new InitialContext(p);
                      home = (EJBHome) PortableRemoteObject.
                                      narrow(ctx.lookup(homeJNDIName), homeClass);
                  }
              } catch (NamingException e)
              {
                  // Problem looking up the home
  
                  //FFDCFilter.processException(e, CLASS_NAME + ".getEJBHome", "201", this);
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                      Tr.exit(tc, "getEJBHome", e);
  
                  RemoteException re = new NoSuchObjectException("Could not find home in JNDI");
                  re.detail = e;
                  throw re;
              } catch (ClassNotFoundException e)
              {
                  // We couldn't find the home interface's class
  
                  //FFDCFilter.processException(e, CLASS_NAME + ".getEJBHome", "213", this);
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                      Tr.exit(tc, "getEJBHome", e);
                  throw new RemoteException("Could not load home interface", e);
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.exit(tc, "getEJBHome");
  
          return home;
      }