Tsk, I should have spotted that, I blame not using the gl*v methods because they’re all a bit crap really.
glVertex2iv specifies a single vertex with (as the name suggests) two integer values in an array. Passing it an array of length 4 doesn’t change things, it’ll only use the first two values.
Your second method with two glVertex calls is the proper way to do it. If you actually do want to bung all your vertex data in an array (or better yet an IntBuffer or FloatBuffer) then look into vertex arrays (using glVertexPointer and glDrawArrays/glDrawElements).
Edit: New section in the wiki on vertex arrays - http://wiki.java.net/bin/view/Games/VertexArrays