superPSubject = this.getPrivilegedSubject(superSubject);
superPSubject = new PrivilegedSubjectImpl(this, superSubject);
public PrivilegedSubject getSuperPrivilegedSubject()throws ObjectNotFoundException{  // If we've already fetched the SuperPrivilegedSubject from the  // database, we'll just return it and be done.  if (superPSubject != null)  {    return superPSubject;  }    // Let's fetch the SuperPrivilegedSubject from the database, starting  // with its underlying Subject. If that Subject does not yet exist,  // then we'll create it.    Subject superSubject;    try  {    superSubject  		= this.getSubject  				(Signet.DEFAULT_SUBJECT_TYPE_ID, Signet.SUPERSUBJECT_ID);  }  catch (ObjectNotFoundException snfe)  {    // The superSubject was not found. Let's put it into the database.    // TODO: This code will need to be protected by a critical section.        try    {      superSubject      	= this.newSubject      			(this.nativeSubjectType,      			 Signet.SUPERSUBJECT_ID,      	  	 Signet.SUPERSUBJECT_NAME,      	  	 Signet.SUPERSUBJECT_DESCRIPTION,      	  	 Signet.SUPERSUBJECT_DISPLAYID);    }    catch (OperationNotSupportedException onse)    {      throw new SignetRuntimeException      	("An attempt to store the Signet superSubject in the database"      	 + " failed.", onse);    }  }    superPSubject = this.getPrivilegedSubject(superSubject);    return superPSubject;}