code: public static InsnList createMonitorContainer(MarkerType markerType, LockVariables lockVars) {
          Validate.notNull(markerType);
          Validate.notNull(lockVars);
  
          Variable lockStateVar = lockVars.getLockStateVar();
          Validate.isTrue(lockStateVar != null);  // extra sanity check, if no synch points this should be null
  
          return merge(
                  debugMarker(markerType, "Creating lockstate"),
                  construct(LOCKSTATE_INIT_METHOD),
                  saveVar(lockStateVar)
          );
      }
docs: Generates instruction to that creates a new {@link LockState} object and saves it to the lockstate variable.
  @param markerType debug marker type
  @param lockVars variables for lock/synchpoint functionality
  @return instructions to push a new {@link LockState} object
  @throws NullPointerException if any argument is {@code null}
  @throws IllegalArgumentException if lock variables aren't set (the method doesn't contain any monitorenter/monitorexit instructions)