Ajuda com J2ME

Bom galera, sou iniciante em j2me e to com uma dúvida… que ja tentei resolver e já estou pirando aqui
tipo… meu professor passou um sistemas para multas e verificação de pontos perdidos por placa do veiculo

[code]import java.util.Date;

import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;

public class Multas extends MIDlet implements CommandListener{

private Display tela;
private TextField placa, placa2;
private Form form, form2;
private ImageItem img;
private ChoiceGroup tipo;
private DateField data;
private Command sair, multar, pontuacao, voltar, pesquisar;

// private int pontos;
private CorpoMulta multa[];

public Multas() {

}

public CorpoMulta pesquisar(CorpoMulta multa[]){
	int x = 0;
	boolean achei = false;
	while ((achei == true) || (x < multa.length) ){
		if (multa[x].getPlaca().equals(placa.getString()) ){
			achei = true;
			return multa[x];
		}
		x++;
	}
	return null;
}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
	// TODO Auto-generated method stub

}

protected void pauseApp() {
	// TODO Auto-generated method stub

}

protected void startApp() throws MIDletStateChangeException {
	tela = Display.getDisplay(this);
	form = new Form("Sistema de Multas");
	form2 = new Form("Pesquisa de placas");
	multa = new CorpoMulta[10];
	Image im = null;
	try {
		im = Image.createImage("/policia.PNG");
	} catch (Exception e) {

	}
	img = new ImageItem("Policia", im, ImageItem.LAYOUT_CENTER, null);
	placa = new TextField("Placa", "", 8, TextField.ANY);
	placa2 = new TextField("Placa", "", 8, TextField.ANY);
	tipo = new ChoiceGroup("Tipo", Choice.EXCLUSIVE);
	Date d = new Date(System.currentTimeMillis());
	data = new DateField("Data", DateField.DATE);
	data.setDate(d);
	sair = new Command("Sair", Command.EXIT, 0);
		//comandos referentes ao form
	multar = new Command("Multar", Command.SCREEN, 1);
	pontuacao = new Command("Pontuacao", Command.SCREEN, 1);
		//comandos referentes ao form2
	voltar = new Command("Voltar", Command.SCREEN, 1);
	pesquisar = new Command("Pesquisar", Command.SCREEN, 1);
	
	tipo.append("Gravissima", null);
	tipo.append("Grave", null);
	tipo.append("Media", null);
	form.append(img);
	form.append(placa);
	form.append(tipo);
	form.append(data);
	form.addCommand(sair);
	form.addCommand(multar);
	form.addCommand(pontuacao);
	form.setCommandListener(this);
	
	form2.append(placa2);
	form2.addCommand(sair);
	form2.addCommand(voltar);
	form2.addCommand(pesquisar);

// form2.setCommandListener(this);

	tela.setCurrent(form);
}

public void commandAction(Command c, Displayable d){
	int i = -1;
	if (c.equals(sair)){
		notifyDestroyed();
	}
	
	if (c.equals(multar) ){
		i++;
		multa[i].setPlaca(placa.getString());
		multa[i].setTipoMulta(tipo.getSelectedIndex());
		switch(tipo.getSelectedIndex() ){
		case 0:
			multa[i].setPontos(7);
			placa.setString("");
			
		break;
		
		case 1:
			multa[i].setPontos(5);
			placa.setString("");
		break;
		
		case 2:
			multa[i].setPontos(3);
			placa.setString("");
		break;
		}
	}
	if (c.equals(pontuacao) ){
		tela.setCurrent(form2);
		form2.setCommandListener(this);		
	}
	
	if (c.equals(voltar) ){
		tela.setCurrent(form);

	}
	
	if(c.equals(pesquisar) ){
		Alert msg;
		if (! pesquisar(multa).equals(null) ){
			msg = new Alert("Pontuação","pontuação perdida da placa "
							+ multa +"é de "+multa+" pontos", null, 
							AlertType.INFO);
		msg.setTimeout(3000);
		tela.setCurrent(msg);	
		} else{
			msg = new Alert("Pontuação", "Não exixte multa para placa"+ placa.getString(), null, AlertType.INFO);
			msg.setTimeout(4000);
			tela.setCurrent(msg);
		}	
	}

}

}

[/code]

meu problema ta sendo quando eu executo um comando ele da erro NullPointerException

java.lang.NullPointerException
at Multas.commandAction(+44)
at javax.microedition.lcdui.Display$DisplayAccessor.commandAction(+282)
at javax.microedition.lcdui.Display$DisplayManagerImpl.commandAction(+10)
at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68)
at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(+47)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.handleVmEvent(+186)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(+57)


tenta bota um if antes ai ... 


[code]if(multa[i] == null) {
      System.out.println("axei meu erro");
}[/code]

tenta bota um if antes ai …

if(multa[i] == null) { System.out.println("axei meu erro"); }