Problemas com o GregorianCalendar - Mudança de ano

Olá a todos. Feliz Ano Novo.

Estou fazendo uma consulta SQL, entre os parametros enviados para a consulta estão 2 datas obtidas do GregorianCalendar.

O problema é que elas estão indicando a data de segunda feira (21/12 - o que é correto) e 1/1/2010 - o que é incorreto, ou seja, não está avaliando sozinho que estamos para mudar de ano.

Alguém sabe o que fazer para pegar a data correta - com o ano correto??

o trecho do código em que capturo as datas:

 GregorianCalendar calendarIni = new GregorianCalendar();
            calendarIni.setTimeInMillis(System.currentTimeMillis());
            GregorianCalendar calendarFim = new GregorianCalendar();
            calendarFim.setTimeInMillis(System.currentTimeMillis());

            Date dataIni = null;
            Date dataFim = null;
            int inicio = calendarIni.get(Calendar.DAY_OF_WEEK);
            calendarIni.roll(Calendar.DAY_OF_YEAR, 2 - inicio);
            dataIni = calendarIni.getTime(); 
            int fim = calendarFim.get(Calendar.DAY_OF_WEEK);
            calendarFim.roll(Calendar.DAY_OF_YEAR, 7 - fim);
            dataFim = calendarFim.getTime();

roll != add

http://download.oracle.com/javase/6/docs/api/java/util/Calendar.html

roll:

add:

Sempre me ajudando, entanglement. Muito obrigada. Funcionou perfeitamente =D

Feliz Ano Novo para todos

Acredito que esse código vá funcionar.

Calendar cal=new GregorianCalendar();
	cal.set(2012, 0, 1);
        Date date=cal.getTime();