private EnterpriseBean preInvokeForStatelessSessionCreate(EJSWrapperBase wrapper,
                                                              int methodId, // f111627
                                                              EJSDeployedSupport s,
                                                              EJBMethodInfoImpl methodInfo,
                                                              Object[] args) throws RemoteException {
        s.methodInfo = methodInfo; // d140003.19 d114406 LIDB2617.11
        s.ivEJBMethodArguments = args; // LIDB2617.11
        EnterpriseBean eb = null;
        final boolean isTraceOn = TraceComponent.isAnyTracingEnabled(); // d532639.2

        try {
            if (isTraceOn && tc.isEntryEnabled())
                Tr.entry(tc, "EJBpreInvokeForStatelessSessionCreate(" + methodId +
                             ":" + methodInfo.getMethodName() + ")"); // d161864

            s.ivThreadData.pushMethodContext(s); // 127257, d646139.1, RTC102449

            // Pin and update the LRU data for any managed wrapper        d174057.2
            s.unpinOnPostInvoke = (wrapper.isManagedWrapper) ? wrapperManager.preInvoke(wrapper) : false;

            //d173022.7 begins
            // Only invoke security collaborator if security is enabled.
            EJBSecurityCollaborator<?> securityCollaborator = ivSecurityCollaborator;
            if (securityCollaborator != null) {
                s.securityCookie = notifySecurityCollaboratorPreInvoke(securityCollaborator, s); //LIDB2617.11
                s.ivSecurityCollaborator = securityCollaborator;
            }

            // Since we know this method is only called when create is called on the
            // home wrapper for a Stateless SessionBean, we know that the SessionBean
            // this method will return is the home bean for the Stateless SessionBean.
            // Therefore, we can skip most of the "normal" preinvoke processing and
            // just return the singleton SessionBean bean that is kept in the StatelessBeanO
            // for the home associated with beanId in the home wrapper.
            // Actually, to avoid the cache lookup of the home in the HomeOfHomes,
            // and accessing the BeanO, the home may be accessed directly from
            // the BeanMetaData referenced by the Wrapper.                  d221309
            eb = (EnterpriseBean) wrapper.bmd.homeRecord.homeInternal;
            //173022.7 ends

            if (isTraceOn) {
                if (tc.isEntryEnabled())
                    Tr.exit(tc, "EJBpreInvokeForStatelessSessionCreate(" + methodId +
                                ":" + methodInfo.getMethodName() + ") " +
                                " Invoking method '" + methodInfo.getMethodName() +
                                "' on bean '" + wrapper.getClass().getName() +
                                "(" + wrapper.beanId + ")");

                if (TEEJBInvocationInfo.isTraceEnabled()) // LIDB2617.11
                    TEEJBInvocationInfo.tracePreInvokeEnds(s, wrapper);
            }

            return eb; // LIDB2617.11
        } catch (Throwable ex) {
            FFDCFilter.processException(ex, CLASS_NAME +
                                            ".preInvokeForStatelessSessionCreate",
                                        "2139", new Object[] { this, wrapper, Integer.valueOf(methodId), s, methodInfo });//123338

            s.preInvokeException = true; // d116274.1

            if (isTraceOn) {
                if (tc.isEntryEnabled()) // LIDB2617.11
                    Tr.exit(tc, "EJBpreInvokeForStatelessSessionCreate(" + methodId +
                                ":" + methodInfo.getMethodName() + ") " +
                                " Invoking method '" + methodInfo.getMethodName() +
                                "' on bean '" + wrapper.getClass().getName() +
                                "(" + wrapper.beanId + ")");

                if (TEEJBInvocationInfo.isTraceEnabled()) // LIDB2617.11
                    TEEJBInvocationInfo.tracePreInvokeException(s, wrapper, ex);
            }

            s.setUncheckedException(ex);

            return null; // LIDB2617.11
        }
    }
private EnterpriseBean preInvokeForStatelessSessionCreate ( EJSWrapperBase wrapper , int methodId , EJSDeployedSupport s , EJBMethodInfoImpl methodInfo , Object [ ] args ) throws RemoteException { s . methodInfo = methodInfo ; s . ivEJBMethodArguments = args ; EnterpriseBean eb = null ; final boolean isTraceOn = TraceComponent . isAnyTracingEnabled ( ) ; try { if ( isTraceOn && tc . isEntryEnabled ( ) ) Tr . entry ( tc , "EJBpreInvokeForStatelessSessionCreate(" + methodId + ":" + methodInfo . getMethodName ( ) + ")" ) ; s . ivThreadData . pushMethodContext ( s ) ; s . unpinOnPostInvoke = ( wrapper . isManagedWrapper ) ? wrapperManager . preInvoke ( wrapper ) : false ; EJBSecurityCollaborator < ? > securityCollaborator = ivSecurityCollaborator ; if ( securityCollaborator != null ) { s . securityCookie = notifySecurityCollaboratorPreInvoke ( securityCollaborator , s ) ; s . ivSecurityCollaborator = securityCollaborator ; } eb = ( EnterpriseBean ) wrapper . bmd . homeRecord . homeInternal ; if ( isTraceOn ) { if ( tc . isEntryEnabled ( ) ) Tr . exit ( tc , "EJBpreInvokeForStatelessSessionCreate(" + methodId + ":" + methodInfo . getMethodName ( ) + ") " + " Invoking method '" + methodInfo . getMethodName ( ) + "' on bean '" + wrapper . getClass ( ) . getName ( ) + "(" + wrapper . beanId + ")" ) ; if ( TEEJBInvocationInfo . isTraceEnabled ( ) ) TEEJBInvocationInfo . tracePreInvokeEnds ( s , wrapper ) ; } return eb ; } catch ( Throwable ex ) { FFDCFilter . processException ( ex , CLASS_NAME + ".preInvokeForStatelessSessionCreate" , "2139" , new Object [ ] { this , wrapper , Integer . valueOf ( methodId ) , s , methodInfo } ) ; s . preInvokeException = true ; if ( isTraceOn ) { if ( tc . isEntryEnabled ( ) ) Tr . exit ( tc , "EJBpreInvokeForStatelessSessionCreate(" + methodId + ":" + methodInfo . getMethodName ( ) + ") " + " Invoking method '" + methodInfo . getMethodName ( ) + "' on bean '" + wrapper . getClass ( ) . getName ( ) + "(" + wrapper . beanId + ")" ) ; if ( TEEJBInvocationInfo . isTraceEnabled ( ) ) TEEJBInvocationInfo . tracePreInvokeException ( s , wrapper , ex ) ; } s . setUncheckedException ( ex ) ; return null ; } }
d110126