light question

hello, i got a litte question where my error with lightning is.

my landscape getting the light form the sun_x,y,z position
only when i tun off ambient complete, when using ambient
the whole landscape is 100% light

here some parts of my code:

// used every frame
public void initor(GLAutoDrawable arg0)
{
GL gl = arg0.getGL();

gl.glColor3f(0.0f, 0.0f, 0.0f);
gl.glCullFace(GL.GL_FRONT);
gl.glClearColor(0.0f,0.0f, 0.0f, 0.0f);//Blue
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);


gl.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_AMBIENT, new float[]  {.1f, .1f,  .1f, 0}, 0);
gl.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_DIFFUSE, new float[]  {.5f, .5f,  .5f, 0}, 0);
gl.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_SPECULAR, new float[] {.1f, .1f,  .1f, 0}, 0);
gl.glMaterialf(GL.GL_FRONT_AND_BACK, GL.GL_SHININESS, 1.f);
 


gl.glColor4f(0,0,0,0);
gl.glEdgeFlag(false);

                      
gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);
gl.glEnable (GL.GL_POLYGON_SMOOTH);
gl.glEnable(GL.GL_AUTO_NORMAL);
gl.glEnable(GL.GL_NORMALIZE);
gl.glEnable(GL.GL_MULTISAMPLE);
gl.glEnable(GL.GL_AUTO_NORMAL);

//the light is called every frame
public void licht(GLAutoDrawable arg0)
{
GL gl = arg0.getGL();

	      float gray1[] = { 0.1f, 0.1f, 0.1f, 0.1f };
	      float gray2[] = { 0.4f, 0.4f, 0.4f, 0.0f };
	      float gray3[] = { 0.3f, 0.3f, 0.3f, 0.0f };   
	
	     
	      
		//Licht 1
	      float l_position[] = { sun_x,sun_y,sun_z, 1.0f};
	     
	      
	      gl.glLightfv( GL.GL_LIGHT0, GL.GL_POSITION, l_position, 0);  
	      gl.glLightfv( GL.GL_LIGHT0, GL.GL_DIFFUSE, gray2, 0 );
	      gl.glLightfv( GL.GL_LIGHT0, GL.GL_AMBIENT, gray1, 0 );
	      gl.glLightfv( GL.GL_LIGHT0, GL.GL_SPECULAR, gray3, 0 );
	      
	 	 	FloatBuffer  ambient = BufferUtil.newFloatBuffer(4);
	  	 	float hell=0.0f;
	 	 	ambient.put(hell);
	  	 	ambient.put(hell);
	  	 	ambient.put(hell);
	  	 	ambient.put(0);
	  	  	ambient.rewind();
	  	
	  	  gl.glLightModelfv( GL.GL_LIGHT_MODEL_AMBIENT, ambient );
	  	  
	 gl.glShadeModel(GL.GL_SMOOTH);           // Enables Smooth Color Shading
             gl.glEnable(GL.GL_LIGHTING);
             gl.glEnable(GL.GL_LIGHT0);
             gl.glEnable(GL.GL_COLOR_MATERIAL);
      
  
	}


gl.glColor4f(r1,g1,b1,al1);
gl.glTexCoord2d(tx1,ty1);
gl.glNormal3f(lx1,1.0f,lz1);
gl.glVertex3f( x+t,h1,z+tt );

the ambient color is also not changing the density
ambient color 0.1f,0.1f,0.1f,0.0f look same like 1.0f,1.0f,1.0f,0.0f

when turning ambient off or when only using red ambient the
color looks strange and rough but works.

i think there must be anything missing, a command,i dont know
i look at other samples but cant find what it is.

what can be my error?

i got an answer.

the problem was inside the color arguments , rgb over 1.0f was producing this situation.