Dovevo risolvere un problema di fusione di due array.
Il metodo credo sia giusto, ma ricevo un errore in console

codice:
public class FusioneArray
{
	static void fondi(int[] uno, int[] due, int[] ris)
	{
		int indUno = 0;
		int indDue = 0;
		int indRis = 0;
		boolean prendiUno;
		
		do
		{
			if (indUno == uno.length)
				prendiUno = false;
			else if (indDue == due.length) 
				prendiUno = true;
			else
			{
				if (uno[indUno] <= due[indDue])
					prendiUno = true;
				else
					prendiUno = false;
			}
			if (prendiUno == true)
			{
				ris[indRis] = uno[indUno];
				indUno++;
			}
			else
			{
				ris[indRis] = due[indDue];
				indDue++;
			}
			indRis++;
		}while(indRis < ris.length);
	}
		
	
	public static void main(String[]args)
	{
		int[] primo = {3,4,21,45,67,89,98,123};
		int[] sec = {0,3,13,34,56,234};
		int[] fusione = new int[primo.length * sec.length];
		
		fondi(primo, sec, fusione);
		for (int i = 0; i < fusione.length; i++)
			System.out.print(fusione[i] + "\t");
	}
}

Ricevo il seguente errore...

C:\WINDOWS\SYSTEM32>java FusioneArray
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
at FusioneArray.fondi(FusioneArray.java:30)
at FusioneArray.main(FusioneArray.java:44)