Game Of Life ends quickly (Java)

I've created a basic version of the Game Of Life: each turn, the board is simulated by a 2D array of 1's and 0's, after which another class creates a drawing of it for me using the 2d array

I've read all the other questions here regarding this game, but no answer seems to work out for me....sorry if I'm beating a dead horse here.

I think I have a problem with my algorithm, thus maybe the board gets filled with the wrong amount of dead and alive cells and thus ends rather quickly (5-10 turns).

I've found an algorithm here to scan all the neighbors and even added a count = -1 in case it a cell in the grid scans itself as it's own neighbor, but I think I'm missing something here.

    public static void repaint(board game, int size,int[][] alive, int[][] newGeneration)
    {
        int MIN_X = 0, MIN_Y = 0, MAX_X =9, MAX_Y =9, count;

        for ( int i = 0; i < size; i++ )
        {
            for (int j = 0; j < size; j++) //here we check for each matrix cell's neighbors to see if they are alive or dead
            {
                count = 0;
                if (alive[i][j] == 1)
                    count = -1;
                int startPosX = (i - 1 < MIN_X) ? i : i - 1;
                int startPosY = (j - 1 < MIN_Y) ? j : j - 1;
                int endPosX = (i + 1 > MAX_X) ? i : i + 1;
                int endPosY = (j + 1 > MAX_Y) ? j : j + 1;
                for (int rowNum = startPosX; rowNum <= endPosX; rowNum++)
                {
                    for (int colNum = startPosY; colNum <= endPosY; colNum++)
                    {
                        if (alive[rowNum][colNum] == 1)
                            count++;
                    }
                }
                if (alive[i][j] == 0 && count == 3) //conditions of the game of life
                    newGeneration[i][j] = 1;  //filling the new array for the next life
                if (alive[i][j] == 1 && count < 2)
                    newGeneration[i][j] = 0;
                if (alive[i][j] == 1 && count >= 4)
                    newGeneration[i][j] = 0;
                if (alive[i][j] == 1 && count == 3)
                    newGeneration[i][j] = 1;
            }
        }
        game.setAlive(newGeneration); //we created a new matrix with the new lives, now we set it
        SetupGUI(game,size); //re drawing the panel
    }
}

What am I doing wrong? thanks for the help.