Erro Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError

Olá pessoal, estou tentando implementar um simples método de busca abaixo, porém um erro que não consigo identificar a fonte ocorre,
caso alguem saiba o significado por favor…é so postar…o erro está abaixo do método

public void buscar(){
String q="";
q+=“select curso, preco”;
q+=“From cursos”;
q+=“where curso= '”+curso+"’";
try{
Connection cn = conexao.getConnection();
Statement st = cn.createStatement();
ResultSet rs= st.executeQuery(q);
if(rs.next()){
curso = rs.getString(“curso”);
preco = rs.getDouble(preco);
status = “Localizado com sucesso!”;
}else{
curso = “”;
preco = 0;
status = “Nao foi localizado!”;
}
}catch(SQLException e){
status = e.getMessage();
System.out.println(status);
}

Exception in thread “AWT-EventQueue-0” java.lang.StackOverflowError
at java.lang.String.(Unknown Source)
at javax.swing.text.GapContent.getString(Unknown Source)
at javax.swing.text.AbstractDocument.getText(Unknown Source)
at javax.swing.text.JTextComponent.getText(Unknown Source)

vitolito bom dia

O problema nao esta com a sua implementação sql, o código que vc posto teoricamente nao tem erro
O erro postado provavelmente deve ser um erro de eventos do pacote awt.
Você criou algum evento em algum JButtom?

Não sei se o problema é isso mas mesmo assim…

nessa parte do código coloca um espaço no inicio de cada adição se não ele vai ficar assim:

select curso, precoFrom cursoswhere curso = ‘curso’

mas pela exception parece n ser isso, porém pode interferir.

q+="select curso, preco";
q+="From cursos";
q+="where curso= '"+curso+"'"; 

ficando assim:

q+="select curso, preco";
q+=" from cursos";
q+=" where curso= '"+curso+"'"; 

Ou pode ser um estouro de array, passou o limite do array.

é o mais provavel

[quote=jolivier]vitolito bom dia

O problema nao esta com a sua implementação sql, o código que vc posto teoricamente nao tem erro
O erro postado provavelmente deve ser um erro de eventos do pacote awt.
Você criou algum evento em algum JButtom?
[/quote]

Realmente criei um evento JButton no qual estou inplementando 4 eventos similares, porém nos outros eventos o erro nao ocorre, veja só:

package br.com.learning.negocios;

import java.awt.event.;
//import java.sql.PreparedStatement;
import javax.swing.
;

public class Formulario implements ActionListener{

JFrame f = new JFrame();
JPanel p1 = new JPanel();
JLabel idCodigo = new JLabel("IdCodigo");
JTextField txtIdCodigo = new JTextField();
JLabel curso = new JLabel("Curso");
JTextField txtCurso = new JTextField();
JLabel preco = new JLabel("Preco");
JTextField txtPreco = new JTextField();
JButton cmdAlterar = new JButton("Alterar");
JButton cmdBuscar = new JButton("Buscar");
JButton cmdExcluir = new JButton("Excluir");
JButton cmdIncluir = new JButton("Incluir");
JLabel status = new JLabel("Status: ");

void criarTela() {
	f.setSize(350,270);
	f.setLocation(150,200);
	f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	p1.setLayout(null);
	
	//posicao dos objetos na tela
	idCodigo.setBounds(20,10,60,20);
	txtIdCodigo.setBounds(110,10,60,20);
	curso.setBounds(20,40,60,20);
	txtCurso.setBounds(110,40,200,20);
	preco.setBounds(20,70,60,20);
	txtPreco.setBounds(110,70,60,20);
	cmdAlterar.setBounds(20,150,80,20);
	cmdBuscar.setBounds(200,10,80,20);
	cmdExcluir.setBounds(110,150,80,20);
	cmdIncluir.setBounds(200,150,80,20);
	status.setBounds(20,180,200,20);
	//add manipulador de eventos
	cmdAlterar.addActionListener(this);
	cmdBuscar.addActionListener(this);
	cmdExcluir.addActionListener(this);
	cmdIncluir.addActionListener(this);
	
	
	
	//add objetos ao painel
	p1.add(idCodigo);
	p1.add(txtIdCodigo);
	p1.add(curso);
	p1.add(txtCurso);
	p1.add(preco);
	p1.add(txtPreco);
	p1.add(cmdAlterar);
	p1.add(cmdBuscar);
	p1.add(cmdExcluir);
	p1.add(cmdIncluir);
	p1.add(status);
	//add painel ao formulario
	f.add(p1);
	f.setVisible(true);
	
}

public void actionPerformed(ActionEvent e){
	Object o = e.getSource();
	if(o==cmdIncluir){
		incluir();
	}
	
	if(o==cmdAlterar){
		alterar();
	}
	if(o==cmdBuscar){
		buscar();
	}
	if(o==cmdExcluir){
		excluir();
	}
	
	}
	

void alterar(){
	curso c = new curso();
	c.setCurso(txtCurso.getText());
	alterar();
	status.setText(txtCurso.getText());
}
void buscar(){
	curso c = new curso();
	c.setCurso(txtCurso.getText());
	buscar();
	status.setText(c.getStatus());
}
void excluir(){
	curso c = new curso();
	c.setCurso(txtCurso.getText());
	c.setPreco(Double.parseDouble(txtPreco.getText()));
	c.excluir();
	status.setText(c.getStatus());

}
void incluir(){
	curso c = new curso();
	c.setCurso(txtCurso.getText());
	c.setPreco(Double.parseDouble(txtPreco.getText()));
	c.incluir();
	//status.setText("Status: Arquivo Incluído");
	status.setText(c.getStatus());		
}

	
}

Olá pessoal, estou precisando de uma ajudinha aqui. Estou fazendo um programa de cadastro e quando compilo o programa ele roda normalmente mas quando clico em um botão para ele inserir os dados do formulário no Mysql ele gera o seguinte erro:

Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: “”
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at cadastro$BtnCadClActionListener.actionPerformed(cadastro.java:335)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(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.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(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)

Eu já fiz de tudo pra corrigir o erro mas não consegui de jeito nenhum. Se vocês puderem me dar algumas dicas de como usar o ActionListener pra inserir os dados do formulário no banco
já é uma grande ajuda. Eu vou postar o método actionPerformed aqui e o essencial do código para se identificar o erro:

// código não postado
public cadastro(){
	super();
	setBounds(500,500,728,500);
	setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
	try {
	jbInit();
        teste();
 
   } catch (Throwable e) {
	JOptionPane.showMessageDialog(null, e.getMessage(), "Erro", JOptionPane.ERROR_MESSAGE);
  }
}
/// código não postado
	pnlSul.add(btnCadCl);
	btnCadCl.setText("cadastrar cliente");
	btnCadCl.setBounds(5, 30, 115, 25);
	btnCadCl.addActionListener(new BtnCadClActionListener());

public static Connection getConnection(){
    // base de dados é "javabd2"
    String url = "jdbc:mysql://127.0.0.1/javabd2";
    String usuario = "root";
    String senha = null;

    try{
      Class.forName("com.mysql.jdbc.Driver");
      Connection conn = DriverManager.getConnection(url, usuario, senha);
      java.sql.Statement select = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); 
      ResultSet rs = select.executeQuery("SELECT * FROM cliente"); 
      if (rs == null){
    	  System.out.println("rs está nulo");
      }else{
    	  System.out.println("rs está cheio"); 
      }
      		if (rs.next()){
      	System.out.println(" há dados");
      	
      } else{
      	System.out.println("não há dados");
      }
      	return conn;
    }
    
    catch(SQLException ex){
      System.out.println("SQLException: " + ex.getMessage());
      System.out.println("SQLState: " + ex.getSQLState());
      System.out.println("VendorError: " + ex.getErrorCode());
      return null;
    }
    catch(Exception e){
      System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);
      return null; 
    }
  }

     public void teste(){
	cadastro.getConnection();
	System.out.println("conexão aberta");
  }

     
     private class BtnCadClActionListener implements ActionListener {
    		public void actionPerformed(ActionEvent e){ 
    		try {
    			String nome = txtNmCl.getText();
    			String end = txtEndCl.getText();
    			int rg =Integer.parseInt(txtNmCl.getText());
    			int cpf =Integer.parseInt(txtCpfCl.getText());
    			int tel = Integer.parseInt(txtTelCl.getText());
    			java.sql.Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); 
             String query = "INSERT INTO cliente (cl_nome, cl_rg, cl_cpf, cl_tel, cl_end) " +
    	"VALUES('"+nome+"','"+rg+"','"+cpf+"','"+tel+"','"+end+"')";
			 
			int vs = stmt.executeUpdate(query);
		    
			 
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();

			
		  } 

	  }

  } 

Desde já agradeço. Conto com o apoio de vcs.

Tópico ressuscitado e de dúvida duplicada.