Program: 89485
Project: 89485
Buggy source:
/** 
 * Register a challenge handler to respond to challenges at one or more locations. <p/> When a challenge response is received for a protected URI, the   {@code locationDescription}matches against elements of the protected URI; if a match is found, one consults the challenge handler(s) registered at that   {@code locationDescription} to finda challenge handler suitable to respond to the challenge. <p/> A  {@code locationDescription} comprises a username, password, host, port and paths,any of which can be wild-carded with the "*" character to match any number of request URIs. If no port is explicitly mentioned in a  {@code locationDescription}, a default port will be inferred based on the scheme mentioned in the location description, according to the following table: <table border=1> <tr><th>scheme</th><th>default port</th><th>Sample locationDescription</th></tr> <tr><td>http</td><td>80</td><td>foo.example.com or http://foo.example.com</td></tr> <tr><td>ws</td><td>80</td><td>foo.example.com or ws://foo.example.com</td></tr> <tr><td>https</td><td>443</td><td>https://foo.example.com</td></tr> <tr><td>wss</td><td>443</td><td>wss://foo.example.com</td></tr> </table> <p/> The protocol scheme (e.g. http or ws) if present in   {@code locationDescription} will not be used tomatch  {@code locationDescription} with the protected URI, because authentication challenges areimplemented on top of one of the HTTP/s protocols always, whether one is initiating web socket connections or regular HTTP connections.  That is to say for example, the locationDescription  {@code "foo.example.com"}matches both URIs   {@code http://foo.example.com} and {@code ws://foo.example.com}. <p/> Some examples of   {@code locationDescription} values with wildcards are:<ol> <li> {@code *}&#047; -- matches all requests to any host on port 80 (default port), with no user info or path specified.  </li> <li>  {@code *.hostname.com:8000}  -- matches all requests to port 8000 on any sub-domain of {@code hostname.com}, but not   {@code hostname.com} itself.</li><li> {@code server.hostname.com:*}&#047;  {@code *} -- matches all requests to a particular server onany port on any path but not the empty path. </li> </ol>
 * @param locationDescription the (possibly wild-carded) location(s) at which to register a handler.
 * @param challengeHandler the challenge handler to register at the location(s).
 * @return a reference to this challenge handler for chained calls
 */
public abstract DispatchChallengeHandler register(String locationDescription,ChallengeHandler challengeHandler);

Fixed version (ground truth):
/** 
 * Register a challenge handler to respond to challenges at one or more locations. <p> When a challenge response is received for a protected URI, the   {@code locationDescription}matches against elements of the protected URI; if a match is found, one consults the challenge handler(s) registered at that   {@code locationDescription} to finda challenge handler suitable to respond to the challenge. <p> A  {@code locationDescription} comprises a username, password, host, port and paths,any of which can be wild-carded with the "*" character to match any number of request URIs. If no port is explicitly mentioned in a  {@code locationDescription}, a default port will be inferred based on the scheme mentioned in the location description, according to the following table: <table summary="locationDescriptions" border=1> <tr><th>scheme</th><th>default port</th><th>Sample locationDescription</th></tr> <tr><td>http</td><td>80</td><td>foo.example.com or http://foo.example.com</td></tr> <tr><td>ws</td><td>80</td><td>foo.example.com or ws://foo.example.com</td></tr> <tr><td>https</td><td>443</td><td>https://foo.example.com</td></tr> <tr><td>wss</td><td>443</td><td>wss://foo.example.com</td></tr> </table> <p> The protocol scheme (e.g. http or ws) if present in   {@code locationDescription} will not be used tomatch  {@code locationDescription} with the protected URI, because authentication challenges areimplemented on top of one of the HTTP/s protocols always, whether one is initiating web socket connections or regular HTTP connections.  That is to say for example, the locationDescription  {@code "foo.example.com"}matches both URIs   {@code http://foo.example.com} and {@code ws://foo.example.com}. <p> Some examples of   {@code locationDescription} values with wildcards are:<ol> <li> {@code *}&#047; -- matches all requests to any host on port 80 (default port), with no user info or path specified.  </li> <li>  {@code *.hostname.com:8000}  -- matches all requests to port 8000 on any sub-domain of {@code hostname.com}, but not   {@code hostname.com} itself.</li><li> {@code server.hostname.com:*}&#047;  {@code *} -- matches all requests to a particular server onany port on any path but not the empty path. </li> </ol>
 * @param locationDescription the (possibly wild-carded) location(s) at which to register a handler.
 * @param challengeHandler the challenge handler to register at the location(s).
 * @return a reference to this challenge handler for chained calls
 */
public abstract DispatchChallengeHandler register(String locationDescription,ChallengeHandler challengeHandler);