Q:

Can't find an infinite loop but it's running with one?

I'm using only a piece of my entire program, but I'm 100% certain it lies in this method.
public void draw() 
{
    int count;
    int arrowHeadRight = getIndentationLevel() 
            + getBaseLength() / 2;
    for (count = 0; count < arrowHeadRight; count++)
    {
        System.out.print(' ');
    }
    System.out.println(drawingCharacter);
    int baseAtCenter = getBaseLength() / 2 - 1;
    int arrowHeadLeft = 1;
    for (count = 1; count <= baseAtCenter; count++)
    {
        for (count = 0; count < arrowHeadRight--; count++)
        {
            System.out.print(' ');
        }
        System.out.print(drawingCharacter);
        for (count = 0; count < arrowHeadLeft; count++)
        {
            System.out.print(' ');
        }
        System.out.print(drawingCharacter);
        arrowHeadLeft = arrowHeadLeft + 2;
    }
    for (count = 0; count < arrowHeadRight--; count++)
    {
        System.out.print(' ');
    }
    for (count = 1; count <= getBaseLength(); count++)
    {
        System.out.print(drawingCharacter);
    }
    System.out.print("\n");
    //Arrow Shaft
    for (count = 1; count <= shaftLength; count++)
    {
        for (count = 0; count < arrowHeadRight; count++)
        {
            System.out.print(' ');
        }
        System.out.println(drawingCharacter);
    }
}

Now assuming that all the variables in the for loops are all greater than the count variable, where would there be an infinite loop? I've checked it over so many times that my eyes hurt, and having a fresh pair look at this would be helpful.

A:

This is the part of code with the problem:
for (count = 1; count <= shaftLength; count++)
{
    for (count = 0; count < arrowHeadRight; count++)
    {
        System.out.print(' ');
    }
    System.out.println("drawingCharacter");
}

You are starting a for loop with index count=1 then starting another loop inside of it resting the index count to 0. After the inner loop, count will now be equal to arrowHeadRight, not what it was when you entered the loop.
Your entire method is full of similar examples.
Solution would be to use different index variables when using nested for loops like this:
for (count = 1; count <= shaftLength; count++)
    {
        for (int count2 = 0; count2 < arrowHeadRight; count2++)
        {
            System.out.print(' ');
        }
        System.out.println(drawingCharacter);
    }

