problemas ao rodar app java em mac os 10.6.x com jvm cocoa 64-bits : NSConditionLock?  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
faelcavalcanti
GUJ Ranger
[Avatar]

Membro desde: 03/05/2006 13:16:25
Mensagens: 960
Localização: Recife-PE
Offline

Gente, tou iniciando com mac agora 10.6.x, usando jdk 1.6.0_20. Quando tento rodar uma app aqui joga este log e visualmente não aparece nada:
2010-06-24 16:54:10.267 java[1805:903] [Java CocoaComponent compatibility mode]: Enabled
2010-06-24 16:54:10.273 java[1805:903] [Java CocoaComponent compatibility mode]: Setting timeout for SWT to 0.100000
2010-06-24 16:54:10.972 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x100135590> '(null)') unlocked when not locked
2010-06-24 16:54:10.973 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:10.975 java[1805:d603] *** __NSAutoreleaseNoPool(): Object 0x10062d4a0 of class NSCFNumber autoreleased with no pool in place - just leaking
2010-06-24 16:54:11.076 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x100650a10> '(null)') unlocked when not locked
2010-06-24 16:54:11.077 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:11.194 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x10065b0a0> '(null)') unlocked when not locked
2010-06-24 16:54:11.196 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:11.299 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x10065e820> '(null)') unlocked when not locked
2010-06-24 16:54:11.303 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:11.949 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x100654f40> '(null)') unlocked when not locked
2010-06-24 16:54:11.951 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:12.056 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x1006b7740> '(null)') unlocked when not locked
2010-06-24 16:54:12.056 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:12.771 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x100620410> '(null)') unlocked when not locked
2010-06-24 16:54:12.772 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:12.873 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x100181b80> '(null)') unlocked when not locked
2010-06-24 16:54:12.874 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:12.978 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x10013cc00> '(null)') unlocked when not locked
2010-06-24 16:54:12.979 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:13.080 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x100617840> '(null)') unlocked when not locked
2010-06-24 16:54:13.082 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:23.259 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x1006197c0> '(null)') unlocked when not locked
2010-06-24 16:54:23.260 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:23.361 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x100618e50> '(null)') unlocked when not locked
2010-06-24 16:54:23.362 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:23.476 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x1006b96c0> '(null)') unlocked when not locked
2010-06-24 16:54:23.477 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:23.578 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x1006b9970> '(null)') unlocked when not locked
2010-06-24 16:54:23.579 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:23.681 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x1006b56e0> '(null)') unlocked when not locked
2010-06-24 16:54:23.683 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:23.785 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x1006b5900> '(null)') unlocked when not locked
2010-06-24 16:54:23.787 java[1805:d603] *** Break on _NSLockError() to debug.
2010-06-24 16:54:23.888 java[1805:d603] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x1006b5b90> '(null)') unlocked when not locked
2010-06-24 16:54:23.889 java[1805:d603] *** Break on _NSLockError() to debug.

também tentei utilizando opção usando [-XstartOnFirstThread], mas o problema persiste. estou utilizando a versao 3.6M7 do swt no projeto, em versao cocoa 64-bits por conta do jdk. alguém já passou por isso?


--
http://faelcavalcanti.wordpress.com/ :: http://pe.debianbrasil.org/
--
Acredite um pouco mais na força de sua própria intuição. Muitas vezes deixamos de realizar algo de bom ou que nos favoreça simplesmente porque achamos tudo muito difícil e por isso nem começamos. Moral da história: A vida é o caminho e não o destino, você é o arquiteto do seu caminho!
--
Obrigado, Rafa Rocha!
[WWW]
faelcavalcanti
GUJ Ranger
[Avatar]

Membro desde: 03/05/2006 13:16:25
Mensagens: 960
Localização: Recife-PE
Offline

na prática utilizando um teste com componente fest para facilitar testes funcionais utilizando swing, ele dá o erro acima. segue abaixo código:

implementando apenas swing puro vejo que funciona tranquilo

o codigo acima [metodo=testSimpleDemo] funciona normalmente emitindo no log apenas as duas primeiras linhas do log que mencionei anteriormente:
010-06-24 16:54:10.267 java[1805:903] [Java CocoaComponent compatibility mode]: Enabled
2010-06-24 16:54:10.273 java[1805:903] [Java CocoaComponent compatibility mode]: Setting timeout for SWT to 0.100000


já o codigo [metodo=testCompatibilityCocoaMac64Bits] dah o erro do log completo. na minha app utilizo swt em uma versão não stable, requerendo versão 3.6M.X, para x>=3, isto por conta do DJProject que utilizamos.

fiz um exemplo a parte utilizando DJProject que utiliza swt por baixo dos panos, e funcionou normalmente. então aparentemente não parece ser incompatibilidade apenas do jar(cocoa, cocoa64bits, carbon = ambos testados em varias versões desde 3.6M3 à 3.6M7, utilizando jdk 1,6.0_20 para 32 e 64bits). segue abaixo código:

bem, continuo na luta para fazer o teste passar, :k-> green bar! :F

This message was edited 1 time. Last update was at 27/06/2010 13:45:33



--
http://faelcavalcanti.wordpress.com/ :: http://pe.debianbrasil.org/
--
Acredite um pouco mais na força de sua própria intuição. Muitas vezes deixamos de realizar algo de bom ou que nos favoreça simplesmente porque achamos tudo muito difícil e por isso nem começamos. Moral da história: A vida é o caminho e não o destino, você é o arquiteto do seu caminho!
--
Obrigado, Rafa Rocha!
[WWW]
faelcavalcanti
GUJ Ranger
[Avatar]

Membro desde: 03/05/2006 13:16:25
Mensagens: 960
Localização: Recife-PE
Offline

bem, investigando um pouco mais afundo, vi que o problema é generalizado devido as novas mudanças da nova versão do mac os 10.6.X (darwin).

esta nova versão introduziu algumas mudanças comportamentais, como por exemplo na parte de concorrência, por exemplo:
New NSBlockOperation class for block-based operations. See ?Concurrency with Operation Objects.?


acho que isto justifica as incompatibilidades aparentes registradas, por exemplo neste bug similar (ao sintoma e intenção) registrado:
  • [SWT/AWT] SWT_AWT Bridge doesn't appear to be working : Inclusive reproduzi este bug na minha máquina, basta criar projeto básico java e adicionar este snippet, em conjunto com qualquer jar 3.6M+ [exemplo=3.6M3]


  • seguem outros bugs com mesmo sintoma:
  • [OpenGL] MAC OS Leopard: OpenGL error with snippet 195
  • [OpenGL] Snippet195 doesn't exit properly
  • [OpenGL] MAC OS Leopard: OpenGL error with snippet 195


  • estes últimos indicam que o mesmo problema ocorre na versão do mac os leopard. resumindo a versão 3.6 (swt) ainda está no milestone 3.6M8 em desenvolvimento como versão não stable, e parte de códigos ainda não disponíveis. e é este caso que irei mencionar agora.

    então como eu estava utilizando um projeto [DJProject] que requer ao menos versão 3.6M3+(higher) do swt, vou explicar agora porque não funcionava.
    segue novamente o código que eu pensei que funcionava para todos os casos:


    em seguida na linha 14 acima, eu adiciono o seguinte código:


    isto já é suficiente para obter o seguinte erro:
    2010-06-27 20:13:33.334 java[10583:a07] [Java CocoaComponent compatibility mode]: Enabled
    2010-06-27 20:13:33.364 java[10583:a07] [Java CocoaComponent compatibility mode]: Setting timeout for SWT to 0.100000
    2010-06-27 20:13:35.055 java[10583:d303] *** -[NSConditionLock unlock]: lock (<NSConditionLock: 0x1126350> '(null)') unlocked when not locked
    2010-06-27 20:13:35.056 java[10583:d303] *** Break on _NSLockError() to debug.
    java.lang.RuntimeException: org.eclipse.swt.SWTError: Not implemented
    at chrriis.dj.nativeswing.swtimpl.MessagingInterface.processCommandResult(MessagingInterface.java:319)
    at chrriis.dj.nativeswing.swtimpl.MessagingInterface.syncSend(MessagingInterface.java:306)
    at chrriis.dj.nativeswing.swtimpl.NativeInterface.syncSend(NativeInterface.java:296)
    at chrriis.dj.nativeswing.swtimpl.Message.syncSend(Message.java:64)
    at chrriis.dj.nativeswing.swtimpl.CommandMessage.syncExec(CommandMessage.java:55)
    at chrriis.dj.nativeswing.swtimpl.NativeComponent.runSync(NativeComponent.java:14
    at chrriis.dj.nativeswing.swtimpl.NativeComponent.createNativePeer(NativeComponent.java:806)
    at chrriis.dj.nativeswing.swtimpl.NativeComponent.access$12(NativeComponent.java:790)
    at chrriis.dj.nativeswing.swtimpl.NativeComponent$9.run(NativeComponent.java:701)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:633)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:18
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    Caused by: org.eclipse.swt.SWTError: Not implemented
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.awt.SWT_AWT.new_Shell(Unknown Source)
    at chrriis.dj.nativeswing.swtimpl.NativeComponent$CMN_createControl.createShell(NativeComponent.java:449)
    at chrriis.dj.nativeswing.swtimpl.NativeComponent$CMN_createControl.run(NativeComponent.java:49
    at chrriis.dj.nativeswing.swtimpl.CommandMessage.runCommand(CommandMessage.java:61)
    at chrriis.dj.nativeswing.swtimpl.MessagingInterface.runMessage(MessagingInterface.java:115)
    at chrriis.dj.nativeswing.swtimpl.MessagingInterface.processReceivedMessages(MessagingInterface.java:100)
    at chrriis.dj.nativeswing.swtimpl.MessagingInterface.access$2(MessagingInterface.java:8
    at chrriis.dj.nativeswing.swtimpl.MessagingInterface$2$2.run(MessagingInterface.java:410)
    at org.eclipse.swt.widgets.RunnableLock.run(Unknown Source)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at chrriis.dj.nativeswing.swtimpl.NativeInterface$InProcess.runEventPump(NativeInterface.java:463)
    at chrriis.dj.nativeswing.swtimpl.NativeInterface.runEventPump(NativeInterface.java:385)
    at com.xxx.yyy.client.ui.swing.widget.Testt.main(ContentView.java:125)
    java.lang.NullPointerException
    at chrriis.dj.nativeswing.swtimpl.NativeComponent$CMN_reshape.run(NativeComponent.java:221)
    at chrriis.dj.nativeswing.swtimpl.CommandMessage.runCommand(CommandMessage.java:61)
    at chrriis.dj.nativeswing.swtimpl.ControlCommandMessage.runCommand(ControlCommandMessage.java:164)
    at chrriis.dj.nativeswing.swtimpl.MessagingInterface.runMessage(MessagingInterface.java:115)
    at chrriis.dj.nativeswing.swtimpl.MessagingInterface.processReceivedMessages(MessagingInterface.java:100)
    at chrriis.dj.nativeswing.swtimpl.MessagingInterface.access$2(MessagingInterface.java:8
    at chrriis.dj.nativeswing.swtimpl.MessagingInterface$2$2.run(MessagingInterface.java:410)
    at org.eclipse.swt.widgets.RunnableLock.run(Unknown Source)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at chrriis.dj.nativeswing.swtimpl.NativeInterface$InProcess.runEventPump(NativeInterface.java:463)
    at chrriis.dj.nativeswing.swtimpl.NativeInterface.runEventPump(NativeInterface.java:385)
    at com.xxx.yyy.client.ui.swing.widget.Testt.main(ContentView.java:125)


    isto indica o porquê (ou pelo menos parte dele) na aplicação que estou desenvolvendo não funcionava. utilizei várias versões do swt do 3.6M3 ao 3.6M7, tanto cocoa (necessário colocar parâmetro -d32 para rodar em caso de jdk-64bits) e cocoa-64bits. não testei no carbon pois não é compatível com meu mac 10.6.3 (darwin).

    quando removi tudo que usa swt, o projeto funcionou, e percebi que alguns outros desenvolvedores de outros projetos tb tiveram decisão parecida (caso do xith e gwt) ou implementando um fake (caso do jmonkey, inclusive em blog de cara com gambi temporária para quem tem mac).


    então só me restou a pergunta: qual a previsão do eclipse helios e versão stable do swt 3.6?

    This message was edited 1 time. Last update was at 27/06/2010 21:05:12



    --
    http://faelcavalcanti.wordpress.com/ :: http://pe.debianbrasil.org/
    --
    Acredite um pouco mais na força de sua própria intuição. Muitas vezes deixamos de realizar algo de bom ou que nos favoreça simplesmente porque achamos tudo muito difícil e por isso nem começamos. Moral da história: A vida é o caminho e não o destino, você é o arquiteto do seu caminho!
    --
    Obrigado, Rafa Rocha!
    [WWW]
    faelcavalcanti
    GUJ Ranger
    [Avatar]

    Membro desde: 03/05/2006 13:16:25
    Mensagens: 960
    Localização: Recife-PE
    Offline

    estive correndo com outras features do projeto, mas consegui resolver, mas não com solução 100% de garantia e redonda, devido as versões de cocoa e jre p/32-64 bits. além disto existe a portabilidade necessária para windows e linux.

    bem, o que venho a citar, é apenas um caso curioso, que não é o meu caso, mas que vi para awt -> swt que acabei achando na busca do codehaus do projeto GumTree, onde geralmente é recomendado utilizar SWT_AWT.newFrame( componsite ), conforme indicado neste tutorial.

    percebi logo após que existe citação para isto no FAQ do eclipse, recomendando instalar bibliotecas compatíveis para mac e solaris. Basta saber se isto foi sanado no JRE 6.x, mas pelo jeito parece que não.

    existem bugs não recentes(2009), ainda abertos, por exemplo este, que reproduzi tb, com mesmo sintoma.

    This message was edited 1 time. Last update was at 02/07/2010 00:07:40



    --
    http://faelcavalcanti.wordpress.com/ :: http://pe.debianbrasil.org/
    --
    Acredite um pouco mais na força de sua própria intuição. Muitas vezes deixamos de realizar algo de bom ou que nos favoreça simplesmente porque achamos tudo muito difícil e por isso nem começamos. Moral da história: A vida é o caminho e não o destino, você é o arquiteto do seu caminho!
    --
    Obrigado, Rafa Rocha!
    [WWW]
     
    Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
    Ir para:   
    Powered by JForum 2.1.8 © JForum Team