docs: private Memory createNodeMemory( MemoryFactory node,
                                       InternalWorkingMemory wm ) {
          try {
              this.lock.lock();
              // need to try again in a synchronized code block to make sure
              // it was not created yet
              Memory memory = this.memories.get( node.getMemoryId() );
              if( memory == null ) {
                  memory = node.createMemory( this.kBase.getConfiguration(), wm );
  
                  if( !this.memories.compareAndSet( node.getMemoryId(), null, memory ) ) {
                      memory = this.memories.get( node.getMemoryId() );
                  }
  
              }
              return memory;
          } finally {
              this.lock.unlock();
  
          }
      }