[kepler-users] Why doesn't "Listen to Actor" work on Kepler 2.2/2.3 for Windows?

Christopher Brooks cxh at eecs.berkeley.edu
Fri Mar 2 17:01:07 PST 2012


BTW - one other issue with the early access release of 1.7 for Mac OS X.

ptolemy/actor/gui/BrowserLauncher.java was failing under Mac OS X:


63047 | cxh | 2012-02-29 12:02:19 -0800 (Wed, 29 Feb 2012) | 2 lines

Java build 1.7.0_04-ea-b11 does not have the mrj.version property set.

Below is the diff.

_Christopher

bash-3.2$ svn diff -r 62818 ~/ptII/ptolemy/actor/gui/BrowserLauncher.java
Index: /Users/cxh/ptII/ptolemy/actor/gui/BrowserLauncher.java
===================================================================
--- /Users/cxh/ptII/ptolemy/actor/gui/BrowserLauncher.java      
(revision 62818)
+++ /Users/cxh/ptII/ptolemy/actor/gui/BrowserLauncher.java      (working 
copy)
@@ -616,33 +616,38 @@

          if (osName.startsWith("Mac OS")) {
              String mrjVersion = System.getProperty("mrj.version");
-            String majorMRJVersion = mrjVersion.substring(0, 3);
+            if (mrjVersion == null) {
+                // Java build 1.7.0_04-ea-b11 does not have the 
mrj.version property set.
+                jvm = MRJ_3_1;
+            } else {
+                String majorMRJVersion = mrjVersion.substring(0, 3);

-            try {
-                double version = 
Double.valueOf(majorMRJVersion).doubleValue();
+                try {
+                    double version = 
Double.valueOf(majorMRJVersion).doubleValue();

-                if (version == 2) {
-                    jvm = MRJ_2_0;
-                } else if ((version >= 2.1) && (version < 3)) {
-                    // Assume that all 2.x versions of MRJ work the
-                    // same.  MRJ 2.1 actually works via
-                    // Runtime.exec() and 2.2 supports that but has an
-                    // openURL() method as well that we currently
-                    // ignore.
-                    jvm = MRJ_2_1;
-                } else if (version == 3.0) {
-                    jvm = MRJ_3_0;
-                } else if (version >= 3.1) {
-                    // Assume that all 3.1 and later versions of MRJ
-                    // work the same.
-                    jvm = MRJ_3_1;
-                } else {
+                    if (version == 2) {
+                        jvm = MRJ_2_0;
+                    } else if ((version >= 2.1) && (version < 3)) {
+                        // Assume that all 2.x versions of MRJ work the
+                        // same.  MRJ 2.1 actually works via
+                        // Runtime.exec() and 2.2 supports that but has an
+                        // openURL() method as well that we currently
+                        // ignore.
+                        jvm = MRJ_2_1;
+                    } else if (version == 3.0) {
+                        jvm = MRJ_3_0;
+                    } else if (version >= 3.1) {
+                        // Assume that all 3.1 and later versions of MRJ
+                        // work the same.
+                        jvm = MRJ_3_1;
+                    } else {
+                        loadedWithoutErrors = false;
+                        errorMessage = "Unsupported MRJ version: " + 
version;
+                    }
+                } catch (NumberFormatException nfe) {
                      loadedWithoutErrors = false;
-                    errorMessage = "Unsupported MRJ version: " + version;
+                    errorMessage = "Invalid MRJ version: " + mrjVersion;
                  }
-            } catch (NumberFormatException nfe) {
-                loadedWithoutErrors = false;
-                errorMessage = "Invalid MRJ version: " + mrjVersion;
              }
          } else if (osName.startsWith("Windows")) {
              if (osName.indexOf("9") != -1) {
bash-3.2$



On 2/17/12 11:40 AM, Christopher Brooks wrote:
> Waiting sounds good.
> It would be good if a few Kepler developers would switch over to Java 
> 1.7, especially Windows.
>
> Under Mac OS X, I downloaded Java 1.7 and updated ~/.bash_profile:
>   export 
> JAVA_HOME=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
>   export PATH=${JAVA_HOME}/bin:${PATH}
>   export ANT_OPTS=-Xmx2048m
>
> However, 'ant run' fails for me in the devel tree, even with 4g of 
> space.  I get
>   [compile] The system is out of resources.
>   [compile] Consult the following stack trace for details.
>   [compile] java.lang.OutOfMemoryError: Java heap space
>
> I don't have time to track this down today.
>
> Under Mac OS X, Java 1.7 produces the following stacktrace when I 
> start up Ptolemy II:
> This has been reported to Oracle, see
> http://osdir.com/ml/macosx-port-development-java/2012-01/msg00201.html
> and
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7130377
> Unfortunately, I can't log in to the Oracle/sun bug site and vote on 
> the bug.
>
> _Christopher
>> 2012-02-17 10:34:48.279 java[3279:707] *** -[__NSArrayM 
>> insertObject:atIndex:]: object cannot be nil
>> 2012-02-17 10:34:48.281 java[3279:707] (
>>     0   CoreFoundation                      0x00007fff8ba44fc6 
>> __exceptionPreprocess + 198
>>     1   libobjc.A.dylib                     0x00007fff8e1acd5e 
>> objc_exception_throw + 43
>>     2   CoreFoundation                      0x00007fff8b9ebda8 
>> -[__NSArrayM insertObject:atIndex:] + 296
>>     3   AppKit                              0x00007fff8a0a6ca1 
>> -[NSMenu insertItem:atIndex:] + 478
>>     4   liblwawt.dylib                      0x0000000163c46275 
>> addMenuItem + 185
>>     5   liblwawt.dylib                      0x0000000163c45f66 
>> -[ApplicationDelegate _updatePreferencesMenu:enabled:] + 211
>>     6   liblwawt.dylib                      0x0000000163c46542 
>> __Java_com_apple_eawt__1AppMenuBarHandler_nativeSetMenuState_block_invoke_1 
>> + 227
>>     7   JavaNativeFoundation                0x0000000162e1d5fd 
>> +[JNFRunLoop _performCopiedBlock:] + 20
>>     8   CoreFoundation                      0x00007fff8ba6ee0d 
>> +[NSObject performSelector:withObject:] + 61
>>     9   Foundation                          0x00007fff8fde3d94 
>> __NSThreadPerformPerform + 214
>>     10  CoreFoundation                      0x00007fff8b9b36e1 
>> __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
>>     11  CoreFoundation                      0x00007fff8b9b2f4d 
>> __CFRunLoopDoSources0 + 253
>>     12  CoreFoundation                      0x00007fff8b9d9d39 
>> __CFRunLoopRun + 905
>>     13  CoreFoundation                      0x00007fff8b9d9676 
>> CFRunLoopRunSpecific + 230
>>     14  HIToolbox                           0x00007fff9564631f 
>> RunCurrentEventLoopInMode + 277
>>     15  HIToolbox                           0x00007fff9564d5c9 
>> ReceiveNextEventCommon + 355
>>     16  HIToolbox                           0x00007fff9564d456 
>> BlockUntilNextEventMatchingListInMode + 62
>>     17  AppKit                              0x00007fff8a08ff5d 
>> _DPSNextEvent + 659
>>     18  AppKit                              0x00007fff8a08f861 
>> -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 135
>>     19  libosxapp.dylib                     0x0000000163ce482c 
>> -[NSApplicationAWT nextEventMatchingMask:untilDate:inMode:dequeue:] + 124
>>     20  AppKit                              0x00007fff8a08c19d 
>> -[NSApplication run] + 470
>>     21  libosxapp.dylib                     0x0000000163ce474b 
>> +[NSApplicationAWT runAWTLoopWithApp:] + 156
>>     22  liblwawt.dylib                      0x0000000163c4440e 
>> -[AWTStarter starter:] + 1616
>>     23  CoreFoundation                      0x00007fff8ba3475d 
>> -[NSObject performSelector:withObject:] + 61
>>     24  Foundation                          0x00007fff8fde3d94 
>> __NSThreadPerformPerform + 214
>>     25  CoreFoundation                      0x00007fff8b9b36e1 
>> __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
>>     26  CoreFoundation                      0x00007fff8b9b2f4d 
>> __CFRunLoopDoSources0 + 253
>>     27  CoreFoundation                      0x00007fff8b9d9d39 
>> __CFRunLoopRun + 905
>>     28  CoreFoundation                      0x00007fff8b9d9676 
>> CFRunLoopRunSpecific + 230
>>     29  java                                0x00000001073564bc 
>> CreateExecutionEnvironment + 871
>>     30  java                                0x0000000107350cac 
>> JLI_Launch + 1952
>>     31  java                                0x0000000107356819 main + 101
>>     32  java                                0x0000000107350504 start + 52
>>     33  ???                                 0x0000000000000007 0x0 + 7
>> )
>>
>
>
> On 2/17/12 10:59 AM, Daniel Crawl wrote:
>>
>> Hi Christopher,
>>
>> Thanks for the fix. I agree with you that it'd be good to fix the ptII
>> branch in svn for Kepler 2.3. Before creating a new patch release, I
>> would wait until we've had more time to test since there could be
>> additional Java 7 problems.
>>
>>   --dan
>>
>>
>> On 2/16/12 9:53 AM, Christopher Brooks wrote:
>>> All:
>>> It looks like the problem has to do with Java 1.7. I was able to
>>> reproduce this on the Mac
>>> with two different early release versions of 1.7. The bug occurs in
>>> Ptolemy II, outside of
>>> Kepler.
>>>
>>> The bug report is at
>>>
>>> http://bugzilla.ecoinformatics.org/show_bug.cgi?id=5574
>>>
>>> The fix is to modify ptolemy/actor/gui/TextEditor.java to check if
>>> _scrollbar is null:
>>>
>>> public Color getBackground() {
>>> // Under Java 1.7 on the Mac, the _scrollbar is sometimes null.
>>> // See http://bugzilla.ecoinformatics.org/show_bug.cgi?id=5574
>>> if (_scrollPane != null) {
>>> return _scrollPane.getBackground();
>>> } else {
>>> return null;
>>> }
>>> }
>>>
>>> I'm not sure why this is happening, but I suspect the problem is 
>>> that in
>>> Java 1.7
>>> setBackground is calling getBackground on subcomponents and the 
>>> TextEditor
>>> subcomponent is not completely instantiated.
>>>
>>> There could be other places where this problem occurs. I'll switch over
>>> to Java 1.7 and see
>>> what turned up. It would be worth running the debugger and verifying
>>> that we are in the
>>> Swing Event Thread when the problem occurs.
>>>
>>> I'll leave it to the Kepler Team to decide how to handle this. My
>>> proposal is that I patch the
>>> ptII branch used in the release with the above change. I'd like to wait
>>> until a few people have exercised
>>> Kepler under 1.7 before doing so though. If we patch the ptII tree used
>>> in Kepler-2.3, then at
>>> least people who are working from the 2.3 tree can get the update. I'm
>>> not sure about releasing
>>> a patch release to Kepler, that is up to others.
>>>
>>> _Christopher
>>>
>>> On 2/15/12 1:34 PM, Daniel Crawl wrote:
>>>>
>>>> Hi Edward and Daren,
>>>>
>>>> "Listen to Actor" is invoked from the context menu on the canvas,
>>>> and the exception is also thrown when double-clicking on the Python
>>>> Actor to edit the script. These are probably run from the Swing
>>>> event thread.
>>>>
>>>> Daren, thanks for verifying this problem occurs with Java 7 but not 6.
>>>> I updated Kepler a few months ago so that it would compile with 
>>>> Java 7.
>>>> However, when I ran it, I didn't exhaustively test all the
>>>> functionality. I'll create bug report so this error is not forgotten.
>>>>
>>>> --dan
>>>>
>>>>
>>>> On 2/14/12 11:59 PM, Daren Thomas wrote:
>>>>> i resolved this issue temporarily by uninstalling java 7, thus
>>>>> ensuring java 6 is being used. it all works fine now. hope that 
>>>>> helps!
>>>>>
>>>>> daren
>>>>>
>>>>> On 15.02.2012, at 00:51, "Edward A. Lee"<eal at eecs.berkeley.edu> 
>>>>> wrote:
>>>>>
>>>>>>
>>>>>> This sort of thing can happen for GUI code that invoked outside
>>>>>> the Swing event thread. How is this being invoked? If it's just
>>>>>> from the menu, then I presume it is in the Swing event thread...
>>>>>>
>>>>>> Edward
>>>>>>
>>>>>>
>>>>>> On 2/14/12 11:29 AM, Daniel Crawl wrote:
>>>>>>>
>>>>>>> Hi Daren,
>>>>>>>
>>>>>>> I get the same behavior with Windows 7. The error is the same for
>>>>>>> both "Listen to Actor" and editing a Python script:
>>>>>>>
>>>>>>> java.lang.NullPointerException
>>>>>>> at ptolemy.actor.gui.TextEditor.getBackground(TextEditor.java:144)
>>>>>>> at java.awt.Window.setBackground(Unknown Source)
>>>>>>> at java.awt.Frame.setBackground(Unknown Source)
>>>>>>> at ptolemy.gui.Top.access$1001(Top.java:141)
>>>>>>> at ptolemy.gui.Top$SetBackgroundRunnable.run(Top.java:1889)
>>>>>>> at ptolemy.gui.Top.deferIfNecessary(Top.java:247)
>>>>>>> at ptolemy.gui.Top.setBackground(Top.java:501)
>>>>>>> at ptolemy.actor.gui.TextEditor.setBackground(TextEditor.java:238)
>>>>>>> ...
>>>>>>>
>>>>>>> Christopher, do you know what causes this?
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> --dan
>>>>>>>
>>>>>>>
>>>>>>> On 2/8/12 4:28 AM, Daren Thomas wrote:
>>>>>>>> I can use "Listen to Actor" for Kepler 2.3 on Mac OS X, but not 
>>>>>>>> under
>>>>>>>> Windows. When I select the option from the context menu, nothing
>>>>>>>> happens.
>>>>>>>>
>>>>>>>> Also, when I try to edit a script for the Python actor, I get an
>>>>>>>> error
>>>>>>>> message "Failed to open a dialog to edit the target (null)" - this
>>>>>>>> doesn't bother me ATM, but I guess I should mention it, as it
>>>>>>>> could be
>>>>>>>> an additional symptom of a wrongly configured system.
>>>>>>>>
>>>>>>>> I installed Kepler 2.3 on Windows with the installer provided 
>>>>>>>> on the
>>>>>>>> website. It seems "all" questions in the users list refer to
>>>>>>>> compiling
>>>>>>>> your own version/environment. Is that the way to go?
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Daren Thomas
>>>>>>>> _______________________________________________
>>>>>>>> Kepler-users mailing list
>>>>>>>> Kepler-users at kepler-project.org
>>>>>>>> http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Kepler-users mailing list
>>>>>>> Kepler-users at kepler-project.org
>>>>>>> http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users
>>>>>> <eal.vcf>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Kepler-users mailing list
>>>> Kepler-users at kepler-project.org
>>>> http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users
>>>
>>
>
> -- 
> Christopher Brooks, PMP                       University of California
> CHESS Executive Director                      US Mail: 337 Cory Hall
> Programmer/Analyst CHESS/Ptolemy/Trust        Berkeley, CA 94720-1774
> ph: 510.643.9841                                (Office: 545Q Cory)
> home: (F-Tu) 707.665.0131 cell: 707.332.0670
>
>
> _______________________________________________
> Kepler-users mailing list
> Kepler-users at kepler-project.org
> http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users

-- 
Christopher Brooks, PMP                       University of California
CHESS Executive Director                      US Mail: 337 Cory Hall
Programmer/Analyst CHESS/Ptolemy/Trust        Berkeley, CA 94720-1774
ph: 510.643.9841                                (Office: 545Q Cory)
home: (F-Tu) 707.665.0131 cell: 707.332.0670

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.nceas.ucsb.edu/kepler/pipermail/kepler-users/attachments/20120302/79cf8c97/attachment-0001.html>


More information about the Kepler-users mailing list