code: public String getHeader()
      {
          if (this.header == null)
          {
              if (this.headerKeys == null)
              {
                  this.headerKeys = new String[2];
                  this.headerKeys[0] = getPropertyName() + ".header";
                  this.headerKeys[1] = getPropertyName();
              }
              this.header = ValkyrieRepository.getInstance().getApplicationConfig().messageResolver().getMessage(new DefaultMessageSourceResolvable(this.headerKeys, null,
                      this.headerKeys[this.headerKeys.length - 1]));
          }
          // JTableHeader has a reusable defaultHeaderRenderer on which the default height must be correct.
          // when painting, the columns headers are processed in order and height is being calculated, 
          // if label is null or empty string header height is 4 and thus leaves us with a very small
          // table-header, fix this by returning a space (-> font-size is incorporated)
          return "".equals(this.header) ? " " : this.header;
      }
docs: Returns the header to be used as column title. If no explicit header was set, the headerKeys are used
  to fetch a message from the available resources.