code: @Override
      public void putSystemContextItem(String name, Serializable item) throws IllegalArgumentException, IOException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "putSystemContextItem", new Object[] { name, item });
  
          /* If we have a non-null name */
          if (name != null) {
  
              /* If we really have an item */
              if (item != null) {
  
                  /* If the item is of a JMS supported type, we can store it as is. */
                  if (isValidForJms(item)) {
                      getSystemContextMap().put(name, item);
                  }
  
                  /* Otherwise, we need to take a safe copy & 'flatten it' suitably. */
                  else {
                      getSystemContextMap().put(name, flattenMapObject(item));
                  }
  
              }
  
              /* If item is null, just call deleteProperty */
              else {
                  getSystemContextMap().remove(name);
              }
          }
  
          /* A null name is invalid. */
          else {
              throw new IllegalArgumentException("null");
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "putSystemContextItem");
      }
docs: /*
  Add an item to the SystemContext under the given name.
  
  Javadoc description supplied by JsApiMessage interface.