I am far from an OpenGL person, so here is an attempt to explain what went "wrong".
When you call an action on a matrix, like glTranslate() and glRotate(), the actions are done using real world coordinates, around the real world axis.
So in the first rotate glRotate(100, 0, 1, 0); you turn your triangle around the Y-axis for 100 degrees. This causes that your triangle will be in a different position and the Y-axis will not always go through the same point in the triangle anymore as before. I think this was your idea. The next rotate(-100) will rotate again around the Y-axis, but the Y-axis is not in the middle of your triangle.
Without having looked at the code it is kind of hard for me to tell where it is, but the result is not surprising.
If your goal is to add different rotations, you could do something like:
float rot1 = 100.0f;
float rot2 = -100.0f;
gl.glRotatef(rot1 + rot2, 0, 1, 0);
If you want to abtain something different explain it here and maybe I can help you find the correct code.