Erro java.lang.ArrayIndexOutOfBoundsException[RESOLVIDO]

Boa tarde pessoal,

Estou com um problema em minha aplicação. Já procurei aqui no fórum algum tópico que pudesse me auxiliar porém não encontrei um que eu conseguisse solucionar o meu problema.
Estou desenvolvendo uma aplicação PDV e dentre de suas diversas funções, uma delas é a tela de venda. Após inserir os produtos, o operador seleciona para ir a tela de Pagamento, porém ao executar a tela de pagamento ocorre o seguinte erro:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at br.com.intercommerce.controller.PDVExec.executar(PDVExec.java:419)
at br.com.intercommerce.controller.PDVController.processarAcao(PDVController.java:83)
at br.com.intercommerce.controller.PDVExec$5.actionPerformed(PDVExec.java:490)
at javax.swing.SwingUtilities.notifyAction(Unknown Source)
at javax.swing.JComponent.processKeyBinding(Unknown Source)
at javax.swing.KeyboardManager.fireBinding(Unknown Source)
at javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source)
at javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown Source)
at javax.swing.JComponent.processKeyBindings(Unknown Source)
at javax.swing.JComponent.processKeyEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.elementAt(Unknown Source)
at javax.swing.table.DefaultTableModel.setValueAt(Unknown Source)
at br.com.intercommerce.bc.CupomBC.atualizarTelaPagamento(CupomBC.java:95)
… 35 more

Será que alguém saberia me auxiliar?

o código que está com erro é o seguinte.

public class CupomBC {

	public static void atualizarTelaPagamento() throws Exception {
		
		PDVController pdv = PDVController.getInstance();
		
		JTextField tftotalAcrescimo = (JTextField)pdv.getSessao().get("tftotalAcrescimo");
		JTextField tftotalDesconto = (JTextField)pdv.getSessao().get("tftotalDesconto");
		JTextField tftotalVenda = (JTextField)pdv.getSessao().get("tftotalVenda");
		JTextField tftotalAcumulado = (JTextField)pdv.getSessao().get("tftotalAcumulado");
		JTextField tftotalSaldo = (JTextField)pdv.getSessao().get("tftotalSaldo");
		JTable tbDetalhes = (JTable)pdv.getSessao().get("tbDetalhes");
		
		BigDecimal acrescimo = BigDecimal.ZERO;
		BigDecimal desconto = BigDecimal.ZERO;
		BigDecimal total = BigDecimal.ZERO;
		
		DefaultTableModel dtm = new DefaultTableModel();
		dtm.setColumnIdentifiers(new String[] {"", "", ""});
		
		ArrayList<CondPagtoVo> condicoesEscolhidas = (ArrayList<CondPagtoVo>)pdv.getSessao().get("condicoesEscolhidas");
		TreeMap tree = new TreeMap();
		if (condicoesEscolhidas != null) {
			for (int a = 0; a < condicoesEscolhidas.size(); a++) {
				CondPagtoVo cond = condicoesEscolhidas.get(a);
				acrescimo = acrescimo.add(cond.getVlJuros());
				desconto = desconto.add(cond.getVlDesconto());
				total = total.add(cond.getVlTotal());
				
				HashMap hashTmp = cond.getParcelas();
				Iterator it = hashTmp.keySet().iterator();
				while (it.hasNext()) {
					Object chave = it.next();
					if (tree.get(chave) == null) {
						tree.put(chave, hashTmp.get(chave));
					} else {
						BigDecimal bd = (BigDecimal)tree.get(chave);
						bd = bd.add((BigDecimal)hashTmp.get(chave));
						tree.put(chave, bd);
					}
				}
			}
		}
		
		boolean primeira = true;
		if (tree.get("ENTRADA") != null) {
			BigDecimal bd = (BigDecimal)tree.get("ENTRADA");
			dtm.addRow(new String[] {"ENTRADA", Transformador.Double2S(bd.doubleValue()), ""});
			primeira = false;
		}
		
		Iterator it = tree.keySet().iterator();
		while (it.hasNext()) {
			Object chave = it.next();
			String data = chave.toString();
			if (!data.equals("ENTRADA")) {
				data = data.substring(6, 8) + "/" + data.substring(3, 5) + "/" +  data.substring(0, 2);
				BigDecimal bd = (BigDecimal)tree.get(chave);
				primeira = false;
				dtm.addRow(new String[] {data, Transformador.Double2S(bd.doubleValue()), ""});
			}
		}
		pdv.getSessao().put("item_a_ser_pago", 0);
		dtm.setValueAt("<<<", 0, 2);
		tbDetalhes.setModel(dtm);
		
		tftotalAcrescimo.setText(Transformador.Double2S(acrescimo.doubleValue()));
		tftotalDesconto.setText(Transformador.Double2S(desconto.doubleValue()));
		tftotalVenda.setText(Transformador.Double2S(total.doubleValue()));
		tftotalAcumulado.setText(Transformador.Double2S(total.doubleValue()));
		tftotalSaldo.setText(Transformador.Double2S(total.doubleValue()));
		
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		venda.setVlTotalAcumulado(total.doubleValue());
		venda.setVlAcrescimoTotal(acrescimo.doubleValue());
		venda.setVlDescontoTotal(desconto.doubleValue());
		
	}
	
	public static void cancelarCupomAtual() throws Exception {
		PDVController pdv = PDVController.getInstance();
		ParametroVo parametros = (ParametroVo)pdv.getSessao().get("parametros");
		Ecf ecf = EcfFactory.getInstance(parametros.getFabricanteEcf());
		ecf.cancelaCupomAtual();
		CupomLocalVo cupom = (CupomLocalVo)pdv.getSessao().get("cupom");
		cupom.setStatus("9");
		HibernatePersistenceManager.saveOrUpdateLocal(cupom);
		PosicaoLocalBC.atualizar("LIVRE");
		//PosicaoOperadorBC.atualizaOperador(vendaVo);
		System.out.println("cancelarCupomAtual");
	}
	
	public static void cancelarCupomAnterior() throws Exception {
		PDVController pdv = PDVController.getInstance();
		ParametroVo parametros = (ParametroVo)pdv.getSessao().get("parametros");
		Ecf ecf = EcfFactory.getInstance(parametros.getFabricanteEcf());
		int ret = ecf.cancelaCupomAnterior();
		
		//TODO Verificar para achar cumpom anterior, pois se nao tem, esta null e ocorre erro
		CupomLocalVo cupom = (CupomLocalVo)pdv.getSessao().get("cupom");
		//TODO if temporario para nao ocorrer erro
		if (cupom != null) {
			cupom.setStatus("1");
			HibernatePersistenceManager.saveOrUpdateLocal(cupom);
		}
		System.out.println("cancelarCupomAnterior");
	}

	public static boolean verificaCupomCancelar() throws Exception {
		boolean ret = false;
		PDVController pdv = PDVController.getInstance();
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		if (venda.getVlSubTotal() == 0 && venda.getQtdeItensCupom()!= 0){
			CupomBC.cancelarCupomAtual();
			ret = true;
		}
		return ret;
	}

	public static boolean verificaEncerramentoCupom() throws Exception {
		boolean ret = false;
		PDVController pdv = PDVController.getInstance();
		// sincronização de tela
		JFrame frame = (JFrame)pdv.getSessao().get("frame");
		frame.update(frame.getGraphics());
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		if (venda.getVlTotalRecebido() >= venda.getVlTotalAcumulado()){
			ret = true;
		}
		return ret;
	}

	
	public static boolean verificaCupomInicializado(String origem) throws Exception {
		PDVController pdv = PDVController.getInstance();
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		
		System.out.println("getQtdeItensCupom->" + venda.getQtdeItensCupom());
		System.out.println("getVlSubTotal(->" + venda.getVlSubTotal());
		
		if (origem.equals("V")){
			if (venda.getQtdeItensCupom() >= 1) {
				return false;
			} else {
				return true;
			}
		}else{
			if (venda.getVlSubTotal() == 0.00) {
				return false;
			} else {
				return true;
			}
		}
	}
	
	public static void gravaCupomInicio() throws Exception {

		PDVController pdv = PDVController.getInstance();
		ParametroVo param = (ParametroVo)pdv.getSessao().get("parametros");
		PosicaoLocalVo posicao = (PosicaoLocalVo)pdv.getSessao().get("posicao");
		ControlePdvVo ctrl = ControlePdvVo.getInstance();
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		ClienteVo cliente = (ClienteVo)pdv.getSessao().get("cliente");
		
		Date dataHoje = new Date();
		
		CupomLocalVo cupom = new CupomLocalVo();
		cupom.setIdUnn(param.getIdUnn());
		cupom.setIdEmp(param.getIdEmp());
		cupom.setNrPdv(posicao.getNrPdv());
		cupom.setNrCupom(ctrl.getNrCupom());
		cupom.setDtCupom(ctrl.getDataMovto());
		cupom.setIdOpe(posicao.getIdOperador());
		cupom.setIdFiscal(posicao.getIdFiscal());
		cupom.setIdEntrada(posicao.getIdEntrada());
		
		cupom.setIdPvd(venda.getIdPvd());
		cupom.setIdVen(venda.getIdVendedor());
		cupom.setIdPromotor(venda.getIdPromotor());
		cupom.setCdTipoCupom(venda.getCdTipoCupom());
		cupom.setCdMidia(venda.getCdMidia());
		cupom.setIdCep(venda.getIdCep());
		cupom.setIdCli(cliente.getIdCliente());
		cupom.setCdModalEnt(venda.getCdModalEnt());
		cupom.setVlCupom(0.00);
		cupom.setNrCartao(venda.getNrCartaoFidelidade());
		cupom.setNrCupInicAcum(venda.getNrCupIniAcum());
		cupom.setDtInicio(dataHoje);
		
		pdv.getSessao().put("cupom", cupom);
		
		HibernatePersistenceManager.saveOrUpdateLocal(cupom);
		
	}

	public static void gravaCupomFim() throws Exception {
		
		PDVController pdv = PDVController.getInstance();
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		PagamentoVo pagamento = (PagamentoVo)pdv.getSessao().get("pagamento");
		
		Date dataHoje = new Date();
		
		CupomLocalVo cupom = (CupomLocalVo)pdv.getSessao().get("cupom");
		cupom.setDtFim(dataHoje);
		cupom.setIdCpg(venda.getIdCpg());
		cupom.setQtItens(venda.getQtdeItensCupom());
		cupom.setQtItensCanc(venda.getQtdeItensCancelados());
		cupom.setVlItensCanc(venda.getVlCancelamentoItem());
		cupom.setVlCupom(venda.getVlSubTotal());
		cupom.setVlTroco(pagamento.getVlTroco());
		cupom.setVlDinheiro(pagamento.getVlDinheiro());
		cupom.setVlCheque(pagamento.getVlCheque());
		cupom.setVlChequePre(pagamento.getVlChequePre());
		cupom.setVlCupomVale(pagamento.getVlCupom());
		cupom.setVlCrtCredito(pagamento.getVlCrtCredito());
		cupom.setVlCrtDebito(pagamento.getVlCrtDebito());
		cupom.setVlCrtProprio(pagamento.getVlCrtProprio());
		cupom.setVlCrtManual(pagamento.getVlCrtManual());
		cupom.setVlCrediario(pagamento.getVlCrediario());
		cupom.setVlPlano(pagamento.getVlPlanos());
		cupom.setVlLivre1(pagamento.getVlLivre1());
		cupom.setVlLivre2(pagamento.getVlLivre2());
		cupom.setVlLivre3(pagamento.getVlLivre3());
		cupom.setVlLivre4(pagamento.getVlLivre4());
		cupom.setVlLivre5(pagamento.getVlLivre5());
		cupom.setVlLivre6(pagamento.getVlLivre6());
		cupom.setVlLivre7(pagamento.getVlLivre7());
		cupom.setVlLivre8(pagamento.getVlLivre8());
		cupom.setVlLivre9(pagamento.getVlLivre9());
		cupom.setVlLivre10(pagamento.getVlLivre10());
		cupom.setVlAcrescimo(venda.getVlAcrescimoTotal());
		cupom.setVlDesconto(venda.getVlDescontoTotal());
		cupom.setVlDescFid(venda.getVlDescontoFidelidade());
		cupom.setVlDescSup(venda.getVlDescontoSupervisor());
		cupom.setCdPlanosPg(venda.getCdPlanos());
		//cupom.setIdDev(0);
		cupom.setStatus("0");
		
		HibernatePersistenceManager.saveOrUpdateLocal(cupom);
	}
	
	public static boolean verificarCupomCancelar(String param, String permissao) {
		
		if (permissao.equals("S")) {
			
			PDVController pdv = PDVController.getInstance();
			VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
			
			if (param.equals("N")) {
				if (venda.getQtdeItensCupom() >= 1) {
					return true;
				} else {
					return false;
				}
			}
			if (param.equals("A")) {
				return true;
			}
			
		}
		
		return false;
		
	}
	
}

Obrigada :smiley:

Olá, qual é o código nessas coordenadas

br.com.intercommerce.bc.CupomBC.atualizarTelaPagamento(CupomBC.java:95) ???

Esse erro é quando você tentar acessar uma posição do array que não existe!

Olá Thiago,

Em primeiro lugar obrigada pela ajuda. Estou iniciando em java então tem alguns pontos que ainda me perco…

Mas então, o código é

dtm.setValueAt("<<<", 0, 2);  

Que nesse caso corresponde a linha 64

Att.

Não há de quê, mas a linha em questão que eu gostaria de ver o código é a 95 do arquivo br.com.intercommerce.bc.CupomBC
Se você estiver utilizando algum ambiente de desenvolvimento o ideal seria você depurar o seu código para saber o porquê do erro!

Thiago… Já debuguei…E a linha que ele me aponta o erro é aquela que eu enviei…

O código completo é o seguinte.

[code]package br.com.intercommerce.bc;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.TreeMap;

import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

import br.com.intercommerce.controller.PDVController;
import br.com.intercommerce.dispositivos.Ecf;
import br.com.intercommerce.dispositivos.EcfFactory;
import br.com.intercommerce.hibernate.HibernatePersistenceManager;
import br.com.intercommerce.util.Transformador;
import br.com.intercommerce.vo.ClienteVo;
import br.com.intercommerce.vo.CondPagtoVo;
import br.com.intercommerce.vo.ControlePdvVo;
import br.com.intercommerce.vo.PagamentoVo;
import br.com.intercommerce.vo.VendaVo;
import br.com.intercommerce.vo.hibernate.local.CupomLocalVo;
import br.com.intercommerce.vo.hibernate.local.ParametroVo;
import br.com.intercommerce.vo.hibernate.local.PosicaoLocalVo;

public class CupomBC {

public static void atualizarTelaPagamento() throws Exception {
	
	PDVController pdv = PDVController.getInstance();
	
	JTextField tftotalAcrescimo = (JTextField)pdv.getSessao().get("tftotalAcrescimo");
	JTextField tftotalDesconto = (JTextField)pdv.getSessao().get("tftotalDesconto");
	JTextField tftotalVenda = (JTextField)pdv.getSessao().get("tftotalVenda");
	JTextField tftotalAcumulado = (JTextField)pdv.getSessao().get("tftotalAcumulado");
	JTextField tftotalSaldo = (JTextField)pdv.getSessao().get("tftotalSaldo");
	JTable tbDetalhes = (JTable)pdv.getSessao().get("tbDetalhes");
	
	BigDecimal acrescimo = BigDecimal.ZERO;
	BigDecimal desconto = BigDecimal.ZERO;
	BigDecimal total = BigDecimal.ZERO;
	
	DefaultTableModel dtm = new DefaultTableModel();
	dtm.setColumnIdentifiers(new String[] {"", "", ""});
	
	ArrayList<CondPagtoVo> condicoesEscolhidas = (ArrayList<CondPagtoVo>)pdv.getSessao().get("condicoesEscolhidas");
	TreeMap tree = new TreeMap();
	if (condicoesEscolhidas != null) {
		for (int a = 0; a < condicoesEscolhidas.size(); a++) {
			CondPagtoVo cond = condicoesEscolhidas.get(a);
			acrescimo = acrescimo.add(cond.getVlJuros());
			desconto = desconto.add(cond.getVlDesconto());
			total = total.add(cond.getVlTotal());
			
			HashMap hashTmp = cond.getParcelas();
			Iterator it = hashTmp.keySet().iterator();
			while (it.hasNext()) {
				Object chave = it.next();
				if (tree.get(chave) == null) {
					tree.put(chave, hashTmp.get(chave));
				} else {
					BigDecimal bd = (BigDecimal)tree.get(chave);
					bd = bd.add((BigDecimal)hashTmp.get(chave));
					tree.put(chave, bd);
				}
			}
		}
	}
	
	boolean primeira = true;
	if (tree.get("ENTRADA") != null) {
		BigDecimal bd = (BigDecimal)tree.get("ENTRADA");
		dtm.addRow(new String[] {"ENTRADA", Transformador.Double2S(bd.doubleValue()), ""});
		primeira = false;
	}
	
	Iterator it = tree.keySet().iterator();
	while (it.hasNext()) {
		Object chave = it.next();
		String data = chave.toString();
		if (!data.equals("ENTRADA")) {
			data = data.substring(6, 8) + "/" + data.substring(3, 5) + "/" +  data.substring(0, 2);
			BigDecimal bd = (BigDecimal)tree.get(chave);
			primeira = false;
			dtm.addRow(new String[] {data, Transformador.Double2S(bd.doubleValue()), ""});
		}
	}
	pdv.getSessao().put("item_a_ser_pago", 0);
	dtm.setValueAt("<<<", 0, 2);
	tbDetalhes.setModel(dtm);		
	
	tftotalAcrescimo.setText(Transformador.Double2S(acrescimo.doubleValue()));
	tftotalDesconto.setText(Transformador.Double2S(desconto.doubleValue()));
	tftotalVenda.setText(Transformador.Double2S(total.doubleValue()));
	tftotalAcumulado.setText(Transformador.Double2S(total.doubleValue()));
	tftotalSaldo.setText(Transformador.Double2S(total.doubleValue()));
	
	VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
	venda.setVlTotalAcumulado(total.doubleValue());
	venda.setVlAcrescimoTotal(acrescimo.doubleValue());
	venda.setVlDescontoTotal(desconto.doubleValue());
	
}

public static void cancelarCupomAtual() throws Exception {
	PDVController pdv = PDVController.getInstance();
	ParametroVo parametros = (ParametroVo)pdv.getSessao().get("parametros");
	Ecf ecf = EcfFactory.getInstance(parametros.getFabricanteEcf());
	ecf.cancelaCupomAtual();
	CupomLocalVo cupom = (CupomLocalVo)pdv.getSessao().get("cupom");
	cupom.setStatus("9");
	HibernatePersistenceManager.saveOrUpdateLocal(cupom);
	PosicaoLocalBC.atualizar("LIVRE");
	//PosicaoOperadorBC.atualizaOperador(vendaVo);
	System.out.println("cancelarCupomAtual");
}

public static void cancelarCupomAnterior() throws Exception {
	PDVController pdv = PDVController.getInstance();
	ParametroVo parametros = (ParametroVo)pdv.getSessao().get("parametros");
	Ecf ecf = EcfFactory.getInstance(parametros.getFabricanteEcf());
	int ret = ecf.cancelaCupomAnterior();
	
	//TODO Verificar para achar cumpom anterior, pois se nao tem, esta null e ocorre erro
	CupomLocalVo cupom = (CupomLocalVo)pdv.getSessao().get("cupom");
	//TODO if temporario para nao ocorrer erro
	if (cupom != null) {
		cupom.setStatus("1");
		HibernatePersistenceManager.saveOrUpdateLocal(cupom);
	}
	System.out.println("cancelarCupomAnterior");
}

public static boolean verificaCupomCancelar() throws Exception {
	boolean ret = false;
	PDVController pdv = PDVController.getInstance();
	VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
	if (venda.getVlSubTotal() == 0 && venda.getQtdeItensCupom()!= 0){
		CupomBC.cancelarCupomAtual();
		ret = true;
	}
	return ret;
}

public static boolean verificaEncerramentoCupom() throws Exception {
	boolean ret = false;
	PDVController pdv = PDVController.getInstance();
	// sincronização de tela
	JFrame frame = (JFrame)pdv.getSessao().get("frame");
	frame.update(frame.getGraphics());
	VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
	if (venda.getVlTotalRecebido() >= venda.getVlTotalAcumulado()){
		ret = true;
	}
	return ret;
}


public static boolean verificaCupomInicializado(String origem) throws Exception {
	PDVController pdv = PDVController.getInstance();
	VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
	
	System.out.println("getQtdeItensCupom->" + venda.getQtdeItensCupom());
	System.out.println("getVlSubTotal(->" + venda.getVlSubTotal());
	
	if (origem.equals("V")){
		if (venda.getQtdeItensCupom() >= 1) {
			return false;
		} else {
			return true;
		}
	}else{
		if (venda.getVlSubTotal() == 0.00) {
			return false;
		} else {
			return true;
		}
	}
}

public static void gravaCupomInicio() throws Exception {

	PDVController pdv = PDVController.getInstance();
	ParametroVo param = (ParametroVo)pdv.getSessao().get("parametros");
	PosicaoLocalVo posicao = (PosicaoLocalVo)pdv.getSessao().get("posicao");
	ControlePdvVo ctrl = ControlePdvVo.getInstance();
	VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
	ClienteVo cliente = (ClienteVo)pdv.getSessao().get("cliente");
	
	Date dataHoje = new Date();
	
	CupomLocalVo cupom = new CupomLocalVo();
	cupom.setIdUnn(param.getIdUnn());
	cupom.setIdEmp(param.getIdEmp());
	cupom.setNrPdv(posicao.getNrPdv());
	cupom.setNrCupom(ctrl.getNrCupom());
	cupom.setDtCupom(ctrl.getDataMovto());
	cupom.setIdOpe(posicao.getIdOperador());
	cupom.setIdFiscal(posicao.getIdFiscal());
	cupom.setIdEntrada(posicao.getIdEntrada());
	
	cupom.setIdPvd(venda.getIdPvd());
	cupom.setIdVen(venda.getIdVendedor());
	cupom.setIdPromotor(venda.getIdPromotor());
	cupom.setCdTipoCupom(venda.getCdTipoCupom());
	cupom.setCdMidia(venda.getCdMidia());
	cupom.setIdCep(venda.getIdCep());
	cupom.setIdCli(cliente.getIdCliente());
	cupom.setCdModalEnt(venda.getCdModalEnt());
	cupom.setVlCupom(0.00);
	cupom.setNrCartao(venda.getNrCartaoFidelidade());
	cupom.setNrCupInicAcum(venda.getNrCupIniAcum());
	cupom.setDtInicio(dataHoje);
	
	pdv.getSessao().put("cupom", cupom);
	
	HibernatePersistenceManager.saveOrUpdateLocal(cupom);
	
}

public static void gravaCupomFim() throws Exception {
	
	PDVController pdv = PDVController.getInstance();
	VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
	PagamentoVo pagamento = (PagamentoVo)pdv.getSessao().get("pagamento");
	
	Date dataHoje = new Date();
	
	CupomLocalVo cupom = (CupomLocalVo)pdv.getSessao().get("cupom");
	cupom.setDtFim(dataHoje);
	cupom.setIdCpg(venda.getIdCpg());
	cupom.setQtItens(venda.getQtdeItensCupom());
	cupom.setQtItensCanc(venda.getQtdeItensCancelados());
	cupom.setVlItensCanc(venda.getVlCancelamentoItem());
	cupom.setVlCupom(venda.getVlSubTotal());
	cupom.setVlTroco(pagamento.getVlTroco());
	cupom.setVlDinheiro(pagamento.getVlDinheiro());
	cupom.setVlCheque(pagamento.getVlCheque());
	cupom.setVlChequePre(pagamento.getVlChequePre());
	cupom.setVlCupomVale(pagamento.getVlCupom());
	cupom.setVlCrtCredito(pagamento.getVlCrtCredito());
	cupom.setVlCrtDebito(pagamento.getVlCrtDebito());
	cupom.setVlCrtProprio(pagamento.getVlCrtProprio());
	cupom.setVlCrtManual(pagamento.getVlCrtManual());
	cupom.setVlCrediario(pagamento.getVlCrediario());
	cupom.setVlPlano(pagamento.getVlPlanos());
	cupom.setVlLivre1(pagamento.getVlLivre1());
	cupom.setVlLivre2(pagamento.getVlLivre2());
	cupom.setVlLivre3(pagamento.getVlLivre3());
	cupom.setVlLivre4(pagamento.getVlLivre4());
	cupom.setVlLivre5(pagamento.getVlLivre5());
	cupom.setVlLivre6(pagamento.getVlLivre6());
	cupom.setVlLivre7(pagamento.getVlLivre7());
	cupom.setVlLivre8(pagamento.getVlLivre8());
	cupom.setVlLivre9(pagamento.getVlLivre9());
	cupom.setVlLivre10(pagamento.getVlLivre10());
	cupom.setVlAcrescimo(venda.getVlAcrescimoTotal());
	cupom.setVlDesconto(venda.getVlDescontoTotal());
	cupom.setVlDescFid(venda.getVlDescontoFidelidade());
	cupom.setVlDescSup(venda.getVlDescontoSupervisor());
	cupom.setCdPlanosPg(venda.getCdPlanos());
	//cupom.setIdDev(0);
	cupom.setStatus("0");
	
	HibernatePersistenceManager.saveOrUpdateLocal(cupom);
}

public static boolean verificarCupomCancelar(String param, String permissao) {
	
	if (permissao.equals("S")) {
		
		PDVController pdv = PDVController.getInstance();
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		
		if (param.equals("N")) {
			if (venda.getQtdeItensCupom() >= 1) {
				return true;
			} else {
				return false;
			}
		}
		if (param.equals("A")) {
			return true;
		}
		
	}
	
	return false;
	
}

}[/code]

Esse é o br.com.intercommerce.bc.CupomBC .

Eu só não sei como solucionar o problema :frowning:

Diz uma coisa, essa tabela está sendo populada?!

Desculpa minha ignorância mas, o que seria uma tabela populada?

Se está sendo inserido dados no teu objeto dtm!

Pelo que estou vendo ele está inserindo sim…

O que me complicou é que essa classe era meu colega quem estava desenvolvendo… E ele ficou doente e para eu dar continuidade na minha parte, tenho que resolver primeiro está

=S

estou realizando algumas alterações mas nenhum tem resultado positivo!

Para você prosseguir você pode tentar fazer o seguinte

troque

dtm.setValueAt("<<<", 0, 2); 

por

dtm.addRow(new Object[]{null, null, "<<<"}); 

Thiago,

O erro não está mais aparecendo.
Obrigada

Mas voce sabe me explicar oq estava ocorrendo?

resolvido.OBrigada meninos!

Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 >= 0 at java.util.Vector.elementAt(Unknown Source) at javax.swing.table.DefaultTableModel.setValueAt(Unknown Source) at br.com.intercommerce.bc.CupomBC.atualizarTelaPagamento(CupomBC.java:95)

Isto indica que um objeto do tipo Vector está vazio (size == 0)
No caso, provavelmente não foi adicionada à sua tabela algum item mas, mesmo assim, você está tentando obter algum valor.