The destroy method does not require an alternateJID parameter to be passed in, but is used in the method body without checking if it exists.
If an alternateJID is not passed in, alternateJID.escaped results in a TypeError: Error #1009: Cannot access a property or method of a null object reference.
alternateJID in MUCOwnerExtension is required as a parameter yet is checked to make sure it exists in the method body.
Either both should be not required and checked for existence or both should be required.
Both methods with optional alternateJID