[jboss-jira] [JBoss JIRA] (WFLY-6678) StackoverflowError ejbclientinvocationcontext

David Lloyd (JIRA) issues at jboss.org
Tue Jun 7 10:09:00 EDT 2016


     [ https://issues.jboss.org/browse/WFLY-6678?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Lloyd updated WFLY-6678:
------------------------------
    Steps to Reproduce: 
Invoke ejb service with ejbclient

{code}
  /**
   * Get service needed authentication
   * 
   * @param userContext
   * @return
   */
  public T getService(final String fullUserId, final String applicationName) {
    try {
      final Properties ejbClientContextProps = new Properties();
      ejbClientContextProps.put("org.jboss.ejb.client.scoped.context", "true");
      final Context initialContext = new InitialContext(ejbClientContextProps);
      EJBClientContext.requireCurrent().registerInterceptor(0x99999, new ProxyInterceptor(fullUserId, applicationName));
      return (T) initialContext.lookup(jndiName);
    }
    catch (NamingException e) {
      LOGGER.warn("Service non disponible : " + jndiName + ", " + e);
    }
    
    return null;
    
  }


public class ProxyInterceptor implements EJBClientInterceptor {
  
  public static final String FULL_USER_ID     = "fullUserId";
  public static final String APPLICATION_NAME = "applicationName";
  private final String       fullUserId;
  private final String       applicationName;
  
  /**
   * 
   */
  public ProxyInterceptor(final String fullUserId, final String applicationName) {
    this.fullUserId = fullUserId;
    this.applicationName = applicationName;
  }
  
  /*
   * (non-Javadoc)
   * @see org.jboss.ejb.client.EJBClientInterceptor#handleInvocation(org.jboss.ejb.client.EJBClientInvocationContext)
   */
  @Override
  public void handleInvocation(final EJBClientInvocationContext ctx) throws Exception {
    ctx.getContextData().put(FULL_USER_ID, fullUserId);
    ctx.getContextData().put(APPLICATION_NAME, applicationName);
    ctx.sendRequest();
  }
  
  /*
   * (non-Javadoc)
   * @see org.jboss.ejb.client.EJBClientInterceptor#handleInvocationResult(org.jboss.ejb.client.EJBClientInvocationContext)
   */
  @Override
  public Object handleInvocationResult(EJBClientInvocationContext ctx) throws Exception {
    return ctx.getResult();
  }






{code}


  was:
Invoke ejb service with ejbclient

  /**
   * Get service needed authentication
   * 
   * @param userContext
   * @return
   */
  public T getService(final String fullUserId, final String applicationName) {
    try {
      final Properties ejbClientContextProps = new Properties();
      ejbClientContextProps.put("org.jboss.ejb.client.scoped.context", "true");
      final Context initialContext = new InitialContext(ejbClientContextProps);
      EJBClientContext.requireCurrent().registerInterceptor(0x99999, new ProxyInterceptor(fullUserId, applicationName));
      return (T) initialContext.lookup(jndiName);
    }
    catch (NamingException e) {
      LOGGER.warn("Service non disponible : " + jndiName + ", " + e);
    }
    
    return null;
    
  }


public class ProxyInterceptor implements EJBClientInterceptor {
  
  public static final String FULL_USER_ID     = "fullUserId";
  public static final String APPLICATION_NAME = "applicationName";
  private final String       fullUserId;
  private final String       applicationName;
  
  /**
   * 
   */
  public ProxyInterceptor(final String fullUserId, final String applicationName) {
    this.fullUserId = fullUserId;
    this.applicationName = applicationName;
  }
  
  /*
   * (non-Javadoc)
   * @see org.jboss.ejb.client.EJBClientInterceptor#handleInvocation(org.jboss.ejb.client.EJBClientInvocationContext)
   */
  @Override
  public void handleInvocation(final EJBClientInvocationContext ctx) throws Exception {
    ctx.getContextData().put(FULL_USER_ID, fullUserId);
    ctx.getContextData().put(APPLICATION_NAME, applicationName);
    ctx.sendRequest();
  }
  
  /*
   * (non-Javadoc)
   * @see org.jboss.ejb.client.EJBClientInterceptor#handleInvocationResult(org.jboss.ejb.client.EJBClientInvocationContext)
   */
  @Override
  public Object handleInvocationResult(EJBClientInvocationContext ctx) throws Exception {
    return ctx.getResult();
  }










> StackoverflowError ejbclientinvocationcontext
> ---------------------------------------------
>
>                 Key: WFLY-6678
>                 URL: https://issues.jboss.org/browse/WFLY-6678
>             Project: WildFly
>          Issue Type: Bug
>          Components: EJB
>         Environment: wildfly 9.0.1, jdk 1.8
>            Reporter: Jimmy Pannier
>
> Sometimes after few days i get an exception
> Here is a stacktrace.
> 2016-06-07 07:38:10,441 ERROR [org.jboss.as.ejb3.invocation] (default task-76) WFLYEJB0034: EJB Invocation failed on component StorageServiceImpl for method public abstract java.util.List com.inovelan.cloud.api.storage.service.dataset.IStorageEjbService.loadData(com.inovelan.cloud.api.storage.model.dto.dataset.LoadDataConfig): javax.ejb.EJBTransactionRolledbackException: WFLYEJB0457: Unexpected Error
> 	at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleInCallerTx(CMTTxInterceptor.java:153)
> 	at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:256)
> 	at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:329)
> .....
> Caused by: java.lang.StackOverflowError
> 	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)
> 	at com.inovelan.cloud.common.proxy.ProxyInterceptor.handleInvocationResult(ProxyInterceptor.java:37)
> 	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)
> 	at com.inovelan.cloud.common.proxy.ProxyInterceptor.handleInvocationResult(ProxyInterceptor.java:37)
> 	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)
> 	at com.inovelan.cloud.common.proxy.ProxyInterceptor.handleInvocationResult(ProxyInterceptor.java:37)
> 	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)
> 	at com.inovelan.cloud.common.proxy.ProxyInterceptor.handleInvocationResult(ProxyInterceptor.java:37)
> 	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)
> 	at com.inovelan.cloud.common.proxy.ProxyInterceptor.handleInvocationResult(ProxyInterceptor.java:37)
> 	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)
> 	at com.inovelan.cloud.common.proxy.ProxyInterceptor.handleInvocationResult(ProxyInterceptor.java:37)
> 	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)
> 	at com.inovelan.cloud.common.proxy.ProxyInterceptor.handleInvocationResult(ProxyInterceptor.java:37)
> 	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)
> 	at com.inovelan.cloud.common.proxy.ProxyInterceptor.handleInvocationResult(ProxyInterceptor.java:37)
> 	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)
> 	at com.inovelan.cloud.common.proxy.ProxyInterceptor.handleInvocationResult(ProxyInterceptor.java:37)
> 	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)
> 	at com.inovelan.cloud.common.proxy.ProxyInterceptor.handleInvocationResult(ProxyInterceptor.java:37)
> 	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)
> 	at com.inovelan.cloud.common.proxy.ProxyInterceptor.handleInvocationResult(ProxyInterceptor.java:37)
> 	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jboss-jira mailing list