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

XMLWordPrintable

      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;
              keys.add(key);
          }
      

      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
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: