code: static public final Sequencer getInstance(String name) {
          logger.debug("enter - getInstance()");
          try {
              Sequencer seq = null;
              
              if( sequencers.containsKey(name) ) {
                  seq = sequencers.get(name);
              }
              if( seq != null ) {
                  return seq;
              }
              synchronized( sequencers ) {
                  // redundant due to the non-synchronized calls above done for performance
                  if( !sequencers.containsKey(name) ) {
                      try {
                          seq = defaultSequencer.newInstance();
                      }
                      catch( Exception e ) {
                          logger.error(e.getMessage(), e);
                          return null;
                      }
                      seq.setName(name);
                      sequencers.put(name, seq);
                      return seq;
                  }
                  else {
                      return sequencers.get(name);
                  }
              }
          }
          finally {
              logger.debug("exit - getInstance()");
          }
      }
docs: Looks to see if a sequencer has been generated for the sequence
  with the specified name. If not, it will instantiate one.
  Multiple calls to this method with the same name are guaranteed
  to receive the same sequencer object. For best performance,
  classes should save a reference to the sequencer once they get it
  in order to avoid the overhead of a <code>HashMap</code> lookup.
  @param name the name of the desired sequencer
  @return the sequencer with the specified name