Java.lang.InternalError: couldn't create component peer

0 respostas
roqmarcelo

Pessoal,

Obtenho o seguinte erro quando carrego meu Applet no Firefox versão 11.
O mesmo código do meu Applet funciona perfeitamente no IE e no Chrome.

Plug-in Java 1.6.0_31
Usando versão JRE 1.6.0_31-b05 Java HotSpot(TM) Client VM
Diretório base do usuário = C:\Users\roquesantos
----------------------------------------------------
c:   limpar janela do console
f:   concluir objetos da fila de finalização
g:   coleta de lixo
h:   exibir esta mensagem de ajuda
l:   descartar lista de carregadores de classes
m:   imprimir uso de memória
o:   registro do disparador
q:   ocultar console
r:   recarregar configuração da política
s:   descartar propriedades do sistema e de implantação
t:   descartar lista de threads
v:   descartar pilha de threads
x:   limpar cache do carregador de classes
0-5: definir nível de rastreamento como <n>
----------------------------------------------------

Exception in thread "AWT-EventQueue-2" java.lang.InternalError: couldn't create component peer
	at sun.awt.windows.WComponentPeer.checkCreation(Unknown Source)
	at sun.awt.windows.WComponentPeer.<init>(Unknown Source)
	at sun.awt.windows.WCanvasPeer.<init>(Unknown Source)
	at sun.awt.windows.WPanelPeer.<init>(Unknown Source)
	at sun.awt.windows.WWindowPeer.<init>(Unknown Source)
	at sun.awt.windows.WFramePeer.<init>(Unknown Source)
	at sun.awt.windows.WEmbeddedFramePeer.<init>(Unknown Source)
	at sun.awt.windows.WToolkit.createEmbeddedFrame(Unknown Source)
	at sun.awt.windows.WEmbeddedFrame.addNotify(Unknown Source)
	at sun.plugin2.main.client.PluginEmbeddedFrame.addNotify(Unknown Source)
	at sun.awt.windows.WEmbeddedFrame.<init>(Unknown Source)
	at sun.plugin2.main.client.PluginEmbeddedFrame.<init>(Unknown Source)
	at sun.plugin2.main.client.PluginMain$StartAppletRunner.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(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)

E aqui está o código do meu Applet.

package net.sourceforge.peers.ui;

import java.net.SocketException;

/**
 * Applet responsável por fornecer uma interface acessada via JavaScript para efetuar chamadas via SIP.
 * 
 * @author roquesantos
 *
 */
public class SipApplet extends JApplet {
	
	private static final long serialVersionUID = -5765954798627359806L;
	
	private AppletThread appletThread;
	
	private AppletManager appletManager;
	
	private SipRequest sipRequest;
	
	private Status status;
	
	private String callTo;
	
	private int event;
	
	@Override
	public void start() {
		iniciar();
	}
	
	@Override
	public void stop() {
		try {
			appletManager.unregister();
		} catch (SipUriSyntaxException e) {
			
		}
	}
	
	@Override
	public void destroy() {
		System.exit(0);
	}
	
	/**
	 * Executa as ações necessárias para iniciar a applicação.
	 */
	private void iniciar() {
		status = new Status(this);
		
		try {
			appletManager = AppletManager.getInstance(this, config());
		} catch (SocketException e) { 
			
		}
		
		setEvent(0);
		
		appletThread = new AppletThread(this);
		appletThread.start();
	}
	
	/**
	 * Método que lê os parametros passados no applet e seta os respectivos valores no {@link PeersConfig}
	 */
	private PeersConfig config() {
		PeersConfig peersConfig = new PeersConfig();
		
		peersConfig.setUser_part(getParameter("userpart"));
		peersConfig.setPassword(getParameter("password"));
		peersConfig.setDomain(getParameter("domain"));
		peersConfig.setOutbound_proxy(getParameter("outbound_proxy"));
		peersConfig.setAddress(getParameter("address"));
		peersConfig.setSip_port(getParameter("port"));
		peersConfig.setMedia_mode(getParameter("mediaMode"));
		peersConfig.setMedia_debug(getParameter("mediaDebug"));
		peersConfig.setRtp_port(getParameter("rtp_port"));
		
		return peersConfig;
	}
	
	/**
	 * Método que manipula os eventos disparados pelo usuário de acordo com o código informado.
	 * 
	 * @param event
	 */
	void handleEvent(int event) {
		switch (event) {
			case 102:
				appletManager.call(callTo);
				break;
			case 103:
				appletManager.hangup(sipRequest);
				break;
			case 104:
				appletManager.pickup(sipRequest);
				break;
			case 105:
				appletManager.busyHere(sipRequest);
				break;
			default:
				break;
		}
	}
	
	/* ========== Inicio: Getters e Setters ========== */
	
	
	public AppletManager getAppletManager() {
		return appletManager;
	}
	
	public void setSipRequest(SipRequest sipRequest) {
		this.sipRequest = sipRequest;
	}
	
	public SipRequest getSipRequest() {
		return sipRequest;
	}
	
	public Status getStatus() {
		return status;
	}
	
	public void setCallTo(String callTo) {
		this.callTo = callTo;
	}
	
	public void setEvent(int event) {
		this.event = event;
	}
	
	public int getEvent() {
		return event;
	}
	
	/* ========== Fim: Getters e Setters ========== */
}

/**
 * {@link Thread} responsável por executar os métodos de chamada dispostos no Applet.
 * 
 * @author roquesantos
 *
 */
class AppletThread extends Thread {
	
	public SipApplet applet;
	
	public AppletThread(SipApplet sipApplet) {
		applet = sipApplet;
	}
	
	@Override
	public void run() {
		
		try {
			applet.getAppletManager().register();
		} catch (SipUriSyntaxException e) {
		}
		
		while (true) {
			if (applet.getEvent() != 0) {
				applet.handleEvent(applet.getEvent());
				applet.setEvent(0);
			}
			
			try {
				Thread.sleep(300);
			} catch (InterruptedException e) { }
		}
	}
}

Obrigado !

Criado 29 de março de 2012
Respostas 0
Participantes 1