Buggy code:
public class NcaaFootballData implements NcaaFootballDao { private ConnectionFactory connectionFactory ; private Connection conn ; public void setConnectionFactory ( ConnectionFactory connectionFactory ) { } public NcaaFootballData ( ConnectionFactory connectionFactory ) { } @ Override public NcaaTeam findTeam ( int teamId ) { } @ Override public NcaaTeam [ ] findTeams ( ) { } @ Override public boolean insertTeam ( NcaaTeam team ) { } @ Override public Game findGame ( Game game ) { if ( ( game . getGameId ( ) ) < 1 ) { <START_BUG> return findGame ( game . getGameDate ( ) , game . getHomeTeam ( ) . getNcaaTeamId ( ) , game . getAwayTeam ( ) . getNcaaTeamId ( ) ) ; <END_BUG> } int gameId = game . getGameId ( ) ; PreparedStatement statement = null ; ResultSet resultSet = null ; try { statement = conn . prepareStatement ( "SELECT<seq2seq4repair_space>*<seq2seq4repair_space>FROM<seq2seq4repair_space>Rundas.Games<seq2seq4repair_space>WHERE<seq2seq4repair_space>gameId=?" ) ; statement . setInt ( 1 , gameId ) ; resultSet = statement . executeQuery ( ) ; if ( ! ( resultSet . next ( ) ) ) { return null ; } game . setGameId ( resultSet . getInt ( "gameId" ) ) ; game . setHomeTeam ( findTeam ( resultSet . getInt ( "homeTeamId" ) ) ) ; game . setAwayTeam ( findTeam ( resultSet . getInt ( "awayTeamId" ) ) ) ; game . setGameDate ( resultSet . getDate ( "gameDate" ) ) ; game . setHomeScore ( resultSet . getInt ( "homeScore" ) ) ; game . setAwayScore ( resultSet . getInt ( "awayScore" ) ) ; if ( resultSet . next ( ) ) { throw new FootballDataException ( ( "Multiple<seq2seq4repair_space>games<seq2seq4repair_space>for<seq2seq4repair_space>id:<seq2seq4repair_space>" + gameId ) ) ; } return game ; } catch ( SQLException s ) { sqlError ( s ) ; } finally { try { if ( resultSet != null ) { resultSet . close ( ) ; } if ( statement != null ) { statement . close ( ) ; } } catch ( SQLException s ) { sqlError ( s ) ; } } return null ; } @ Override public Game findGame ( Date gameDate , int homeId , int awayId ) { } @ Override public Game findGame ( Date gameDate , int teamId ) { } @ Override public Game [ ] findTeamGames ( int teamId ) { } @ Override public boolean insertGame ( Game game ) { } @ Override public int updateGame ( Game game ) { } @ Override public Game [ ] findTeamResults ( int teamId ) { } @ Override public NcaaPlayer findPlayer ( int playerId ) { } protected NcaaPlayer parsePlayerResult ( ResultSet resultSet ) throws SQLException { } @ Override public NcaaPlayer findPlayer ( int teamId , String uniformNum ) { } @ Override public NcaaPlayer [ ] findPlayersForTeam ( int teamId ) { } public boolean insertPlayer ( NcaaPlayer player ) { } public int updatePlayer ( NcaaPlayer player ) { } public PlayerStats findPlayerStats ( int playerId , Date gameDate ) { } protected PlayerStats parsePlayerStatsResult ( ResultSet set ) throws SQLException { } public PlayerStats [ ] findPlayerStats ( int playerId ) { } public boolean insertPlayerStats ( PlayerStats stats ) { } public int updatePlayerStats ( PlayerStats stats ) { } public TeamStats findTeamStats ( int teamId , Date gameDate ) { } protected void parseTeamStatsResult ( ResultSet set , TeamStats t ) throws SQLException { } public TeamStats [ ] findSeasonTeamStats ( int teamId ) { } private void sqlError ( SQLException s ) { } }

Fix:
return findGame ( game . getGameDate ( ) , game . getHomeTeam ( ) . getNcaaTeamId ( ) ) ;