Question: I'm using the following example from [here](http://javadoc.jenkins-ci.org/index.html?hudson/FilePath.html):

```
 void someMethod(FilePath file) {
     // make 'file' a fresh empty directory.
     file.act(new Freshen());
 }
 // if 'file' is on a different node, this FileCallable will
 // be transferred to that node and executed there.
 private static final class Freshen implements FileCallable<Void> {
     private static final long serialVersionUID = 1;
     @Override public Void invoke(File f, VirtualChannel channel) {
         // f and file represent the same thing
         f.deleteContents();
         f.mkdirs();
         return null;
     }
 }

```

The Freshen class will be serialized and sent to a slave for execution. How can i get access and log progress to the logger on the master from inside my Freshen class?

Answer: 
Multiple problems:

* `reshape()` is broken; `glOrtho()` multiples by the current matrix and will give nonsensical results if you resize the window more than once.
* You request a double-buffered (`GLUT_DOUBLE`) context but fail to swap the buffers. `glFlush()` is insufficient. Try `glutSwapBuffers()` instead.
* You really ought to reset your projection/modelview matrices each frame. Helps prevent errors.

Give this a shot:

```
#include<Gl/glut.h>

static GLfloat vertices[] = 
{
    0.0, 0.0,
    0.5, 0.0,
    0.5, 0.5,
    0.0, 0.5,
};

void Draw()
{
    glClearColor(0.0,0.0,0.0,0.0);
    glClear(GL_COLOR_BUFFER_BIT);

    glMatrixMode( GL_PROJECTION );
    glLoadIdentity();
    glOrtho( -2, 2, -2, 2, -1, 1 );

    glMatrixMode( GL_MODELVIEW );
    glLoadIdentity();

    glColor3f(1.0,1.0,1.0);

    glEnableClientState(GL_VERTEX_ARRAY);
    glVertexPointer( 2, GL_FLOAT, 0, vertices );

    glBegin(GL_QUADS);
        glArrayElement(0);
        glArrayElement(1);
        glArrayElement(2);
        glArrayElement(3);
    glEnd();

    glDisableClientState(GL_VERTEX_ARRAY);

    glutSwapBuffers();
}

int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);
    glutInitWindowSize(400,400);
    glutInitWindowPosition(100,100);
    glutCreateWindow("vectors");

    glutDisplayFunc(Draw);
    glutMainLoop();
}

```
I suspect the problem is your call to `glVertexPointer()`. The last parameter is supposed to be a pointer to the start of the array you're using, but at the moment you're just passing it a null pointer, so it's got nothing to work with.

Try this instead:

```
glVertexPointer(3, GL_FLOAT, 0, vertices);

```

EDIT: By the way, your code won't give you a box. If it works, I think it'll just give you two lines. Try using GL\_QUADS instead of GL\_LINES.