__NSAutoreleaseNoPool, брошенный в приложение SWING - PullRequest
1 голос
/ 12 февраля 2011

Я действительно ошарашен здесь (или, может быть, просто "тупой").Я создаю простое приложение Java Swing на своем относительно новом Mac, используя Системную библиотеку JRE (JVM Contents (MacOS X Default), Hibernate 3.0 и MigLayout с Eclipse Helios. Все шло хорошо, пока я не увидел следующие сообщения об ошибкахэто препятствует графическому интерфейсу даже отрисовывать.

2011-02-12 09:40:27.842 java[809:903] [Java CocoaComponent compatibility mode]: Enabled
2011-02-12 09:40:27.843 java[809:903] [Java CocoaComponent compatibility mode]: Setting timeout for SWT to 0.100000
2011-02-12 09:41:08.355 java[809:903] *** __NSAutoreleaseNoPool(): Object 0x1001575c0 of class NSConcreteMapTableValueEnumerator autoreleased with no pool in place - just leaking

Первые две строки выбрасываются, когда я создаю экземпляр JButton с помощью этого простого кода:

 private JButton button = new JButton();

Последняя строка выбрасывается в заключениивызова моего конструктора контроллера в Main ().

public static void main(String[] args) {

         // Creates a model of the system logic.
    LeapsAndBoundsModel model = new LeapsAndBoundsModel();

        // Creaties a view for the system logic.
    LeapsAndBoundsView leapsAndBoundsView = new LeapsAndBoundsView();

        // Creates a controller that links the two.
    LeapsAndBoundsController controller = new LeapsAndBoundsController(model, leapsAndBoundsView);
      }

Я гуглил эту проблему и обнаружил множество людей, у которых возникла такая же проблема, но почти все они кодируют с использованием приложения CocoaComponent для iPhoneЭто простой графический интерфейс, который использует Hibernate для сохранения информации в локализованной базе данных Derby.

Я безуспешно испробовал оба следующих предложения:

//Set the CocoaComponent CompatibilityMode to "False"
System.setProperty( "com.apple.eawt.CocoaComponent.CompatibilityMode", "false" );

// Use the "invokeLater" method within Main() construct
        SwingUtilities.invokeLater( new Runnable() {

            public void run() {
                 doIt();
            }       
        });

Любая помощь будет принята с благодарностью..

1 Ответ

0 голосов
/ 23 февраля 2011

Я не уверен, у вас есть Swing, отображаемый в Eclipse? Потому что эти ошибки обычно являются ошибками в SWT (используется Eclipse). cf ошибки вроде: https://bugs.eclipse.org/bugs/show_bug.cgi?id=211361 и https://bugs.eclipse.org/bugs/show_bug.cgi?id=106619

Вы можете попробовать обновить Eclipse или проверить параметры, которые вы используете для запуска Eclipse.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...