Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-23804

[GSS](7.4.z) EJBCLIENT-425 - EJB client API does not delete ContextData that has been removed on the server side


      An EJB client can send and receive ContextData via an Interceptor, see addReturnedContextDataKey(String key) method on the EJBClientInvocationContext class, see:

           * Indicates to the server that a client side interceptor is interested in the context data that is stored
           * under the given key. Any object on the context data map (i.e. {@code InvocationContext.getContextData()} that is
           * present at the end of the server invocation will be serialised and returned to the client.
           * If an object is present under this key and is not serializable then the request will fail.
           * @param key The context data key the client interceptor is interested in
          public void addReturnedContextDataKey(String key) {
              Object returnedData = getContextData().get(RETURNED_CONTEXT_DATA_KEY);
              if(returnedData == null) {
                  getContextData().put(RETURNED_CONTEXT_DATA_KEY, returnedData = new HashSet<>());
              } else if(!(returnedData instanceof Set)) {
                  throw Logs.INVOCATION.returnedContextDataKeyOfWrongType();
              Set<String> keys = (Set<String>) returnedData;

      If a client is sending a key/value to the server and add this key with addReturnedContextDataKey(String key), a server side removed value for that key is still present on the ContextData after the response in client side interceptors.

            rhn-support-ivassile Ilia Vassilev
            rhn-support-ivassile Ilia Vassilev
            0 Vote for this issue
            4 Start watching this issue