code: protected void doSetSpaceProperties(String spaceId,
                                          Map<String, String> spaceProperties) {
          log.debug("setSpaceProperties(" + spaceId + ")");
  
          // Will throw if bucket does not exist
          String bucketName = getBucketName(spaceId);
  
          Map<String, String> originalProperties;
          try {
              originalProperties = getAllSpaceProperties(spaceId);
          } catch (NotFoundException e) {
              // Likely adding a new space, so no existing properties yet.
              originalProperties = new HashMap<>();
          }
  
          // Set creation date
          String creationDate = originalProperties.get(PROPERTIES_SPACE_CREATED);
          if (creationDate == null) {
              creationDate = spaceProperties.get(PROPERTIES_SPACE_CREATED);
              if (creationDate == null) {
                  creationDate = getBucketCreationDate(bucketName);
              }
          }
          spaceProperties.put(PROPERTIES_SPACE_CREATED, creationDate);
  
          // Handle @ symbol (change to +), to allow for email usernames in ACLs
          spaceProperties = replaceInMapValues(spaceProperties, "@", "+");
  
          // Store properties
          BucketTaggingConfiguration tagConfig = new BucketTaggingConfiguration()
              .withTagSets(new TagSet(spaceProperties));
          s3Client.setBucketTaggingConfiguration(bucketName, tagConfig);
      }
docs: {@inheritDoc}