anchor.diff:        if( null == cacheKey || !cacheKey.equals( _cached<%= graph.key %>Key ) )
         {
           messages.addAll( _cached<%= graph.key %>Messages );
  -<% end -%>
           final String requestID = (String) _registry.getResource( org.realityforge.replicant.shared.transport.ReplicantContext.REQUEST_ID_KEY );
           org.realityforge.replicant.server.ee.ReplicantContextHolder.put( org.realityforge.replicant.shared.transport.ReplicantContext.REQUEST_COMPLETE_KEY, "0" );
           session.getQueue().addPacket( requestID, <%= graph.cacheable? ? "_cached#{graph.key}Key" : "null" %>, messages );
  -<% if graph.cacheable? -%>
           return true;
         }
  +<% else -%>
  +      org.realityforge.replicant.server.ee.EntityMessageCacheUtil.getSessionEntityMessageSet().mergeAll( messages );
   <% end -%>
       }
   <% if graph.cacheable? -%>
  
positive.code:   @Override
    public boolean saveEntityMessages( @javax.annotation.Nullable final String sessionID,
                                       @javax.annotation.Nullable final String requestID,
                                       @javax.annotation.Nonnull final java.util.Collection<org.realityforge.replicant.server.EntityMessage> messages )
    {
      //TODO: Rewrite this so that we add clients to indexes rather than searching through everyone for each change!
      getLock().readLock().lock();
  
negative.code:           }
          }
  <% end %>
        }
        for ( final <%= repository.imit.qualified_session_name %> session : values )
        {
          if ( session.getSessionID().equals( sessionID ) )
          {
            accumulator.addEntityMessages( session, sessionMessages );
            break;
          }
        }
      }
      finally
  