Nessa JSP:
[code]
<%@ page language=“java” import=“com.siap.,org.prevayler.” %>
<% Prevayler prevayler=(Prevayler)this.getServletContext().getAttribute(“prevayler”);
SistemaAcademico siap=(SistemaAcademico)prevayler.prevalentSystem();
Usuario usuario=(Usuario)session.getAttribute(“usuario”);
Turma[] turmas=siap.getTurmas();
String[] escolha=request.getParameterValues(“turma”);
Turma[] selecionadas=new Turma[escolha.length];
if(escolha!=null){
for(int i=0;i<turmas.length;i++){
for(int j=0;j<escolha.length;j++)
if(turmas[i].getIdTurma().equals(escolha[j]))
selecionadas[j++]=turmas[i];
}
MatriculaTransaction transacao=new MatriculaTransaction(usuario,selecionadas);
prevayler.execute(transacao);
}
%>
<html><head><title>SIAP2004</title>
</head>
<body bgcolor=“white”>
<CAPTION><marquee>
SISTEMA DE INFORMAÇÕES ACADÊMICAS PREVALENTE </CAPTION></marquee>
<center><TABLE BORDER=0><caption>Disciplinas Matriculadas:</caption>
<tr><th></th><th> Turma</th><th> Matéria</th><th> Professor</th><th> Dia(s)</th><th> Horário</th><th> Sala</th><th> Campus</th></tr>
<% Turma t;
for(int i=0;i<siap.proximaMatriculaId();i++){
Matricula mat=siap.getMatricula(new Integer(i));
if(mat.aluno.matricula.equals(usuario.matricula)){
t=mat.turmas[i];
%>
<tr><th></th>
<th><%=t.idTurma%></th>
<th><%=t.nomeDaMateria%></th>
<th><%=t.nomeDoProfessor%></th>
<th><%=t.diaDaSemana%></th>
<th><%=t.horario%></th>
<th><%=t.nomeSala%></th>
<th><%=t.nomeCampus%></th>
</tr>
<% ;
}
}
%>
</TH></TR>
</TABLE></center>
<center>
<INPUT TYPE=“button” VALUE=“Voltar” onClick=“history.back()”>
</center>
</body>
</html> [/code]
Quando dois usuários diferentes escolhem a mesma turma,acaba dando um estouro do array em: t=mat.turmas[i];
Isso não é possível,pois cada usuário possui matrícula própria,e a turma escolhida por cada um é própria de cada Matrícula.
Ah,o proximaMatriculaId() é apenas um método que retorna o tamanho do HashMap de matrículas.
Se alguem conseguir ver algo…agradeço!!!