"Patrick LeBoutillier" <[EMAIL PROTECTED]> writes:

> In theory it should find it and select the right one, even if there
> is more than one method.  Try turning debugging on (export
> PERL_INLINE_JAVA_DEBUG=5) before running your script. It will dump a
> whole lot of stuff out. If you can't decipher any of it you can send
> it to me (along with the relevant parts of your scripts) and I'll
> try to take a look at it.

Hi Patrick,

Things have changed a bit since I started using STUDY, but the basic
problem is the same. I watched the program more carefully. It is
drawing a few hundred lines, and setting their stroke property. It
draws many of them, and then suddenly it just craps out and gives a
bizarre error:

    Method setStroke for class edu.umd.cs.piccolo.nodes.PPath with
    signature (java.awt.Stroke) not found at (eval 9) line 1228 
    at ./p3.pl line 45

Here is one of the setStroke() calls that succeeds:

[perl][5]     Dump:
$VAR1 = [
          bless( {}, 'main::java::awt::BasicStroke' )
        ];
[perl][5]     Dump:
$VAR1 = [
          'java.awt.Stroke'
        ];
[perl][3]   checking if java.awt.BasicStroke is a java.awt.Stroke
[perl][3]   packet sent is isa java.awt.BasicStroke java.awt.Stroke
[java][3]   packet recv is isa java.awt.BasicStroke java.awt.Stroke
[java][4]    checking if java.awt.BasicStroke extends java.awt.Stroke
[java][4]     parent is java.lang.Object
[java][4]    checking if java.lang.Object extends java.awt.Stroke
[java][4]     interface is java.awt.Stroke
[java][4]    checking if java.awt.Stroke extends java.awt.Stroke
[java][4]    class java.lang.Integer is primitive numeric
[java][3]   packet sent is ok scalar:49
[perl][3]   packet recv is ok scalar:49
[perl][3]   main::java::awt::BasicStroke=HASH(0x10d8bf80) is a java.awt.Stroke
[perl][3]   match successful: score is 6.99
[perl][3]   calling 
object(134).setStroke(main::java::awt::BasicStroke=HASH(0x10d8bf80))
[perl][3]   packet sent is call_method 134 edu.umd.cs.piccolo.nodes.PPath setStroke 
(java.awt.Stroke) object:java.awt.BasicStroke:11
[java][3]   packet recv is call_method 134 edu.umd.cs.piccolo.nodes.PPath setStroke 
(java.awt.Stroke) object:java.awt.BasicStroke:11
[java][4]    class edu.umd.cs.piccolo.nodes.PPath is reference
[java][4]    class edu.umd.cs.piccolo.nodes.PPath is reference
[java][3]   found a setStroke method
[java][3]   (java.awt.Stroke) = (java.awt.Stroke)?
[java][3]   has matching signature (java.awt.Stroke)
[java][4]    arg 0 of signature is java.awt.Stroke
[java][4]    class java.awt.Stroke is reference
[java][4]    class java.awt.Stroke is reference
[java][4]    checking if java.awt.BasicStroke extends java.awt.Stroke
[java][4]     parent is java.lang.Object
[java][4]    checking if java.lang.Object extends java.awt.Stroke
[java][4]     interface is java.awt.Stroke
[java][4]    checking if java.awt.Stroke extends java.awt.Stroke
[java][4]     java.awt.BasicStroke is a kind of java.awt.Stroke
[java][3]   packet sent is ok undef:
[perl][3]   packet recv is ok undef:


and here is the chunk that fails:

[perl][5]     Dump:
$VAR1 = [
          bless( {}, 'main::java::awt::BasicStroke' )
        ];
[perl][5]     Dump:
$VAR1 = [
          'java.awt.Stroke'
        ];
[perl][3]   checking if java.awt.BasicStroke is a java.awt.Stroke
[perl][3]   packet sent is isa java.awt.BasicStroke java.awt.Stroke
[java][3]   packet recv is isa java.awt.BasicStroke java.awt.Stroke
[java][4]    checking if java.awt.BasicStroke extends java.awt.Stroke
[java][4]     parent is java.lang.Object
[java][4]    checking if java.lang.Object extends java.awt.Stroke
[java][4]     interface is java.awt.Stroke
[java][4]    checking if java.awt.Stroke extends java.awt.Stroke
[java][4]    class java.lang.Integer is primitive numeric
[java][3]   packet sent is ok scalar:49
[perl][3]   packet recv is ok scalar:49
[perl][3]   main::java::awt::BasicStroke=HASH(0x10d8bf80) is a java.awt.Stroke
[perl][3]   match successful: score is 6.99
[perl][3]   calling 
object(137).setStroke(main::java::awt::BasicStroke=HASH(0x10d8bf80))
[perl][3]   packet sent is call_method 137 edu.umd.cs.piccolo.nodes.PPath setStroke 
(java.awt.Stroke) object:java.awt.BasicStroke:11
[java][3]   packet recv is call_method 137 edu.umd.cs.piccolo.nodes.PPath setStroke 
(java.awt.Stroke) object:java.awt.BasicStroke:11
[java][4]    class edu.umd.cs.piccolo.nodes.PPath is reference
[java][4]    class edu.umd.cs.piccolo.nodes.PPath is reference
[java][3]   packet sent is error 
scalar:77.101.116.104.111.100.32.115.101.116.83.116.114.111.107.101.32.102.111.114.32.99.108.97.115.115.32.101.100.117.46.117.109.100.46.99.115.46.112.105.99.99.111.108.111.46.110.111.100.101.115.46.80.80.97.116.104.32.119.105.116.104.32.115.105.103.110.97.116.117.114.101.32.40.106.97.118.97.46.97.119.116.46.83.116.114.111.107.101.41.32.110.111.116.32.102.111.117.110.100
[perl][3]   packet recv is error 
scalar:77.101.116.104.111.100.32.115.101.116.83.116.114.111.107.101.32.102.111.114.32.99.108.97.115.115.32.101.100.117.46.117.109.100.46.99.115.46.112.105.99.99.111.108.111.46.110.111.100.101.115.46.80.80.97.116.104.32.119.105.116.104.32.115.105.103.110.97.116.117.114.101.32.40.106.97.118.97.46.97.119.116.46.83.116.114.111.107.101.41.32.110.111.116.32.102.111.117.110.100
[perl][3]   packet recv error: Method setStroke for class 
edu.umd.cs.piccolo.nodes.PPath with signature (java.awt.Stroke) not found
Method setStroke for class edu.umd.cs.piccolo.nodes.PPath with signature 
(java.awt.Stroke) not found at (eval 9) line 1228
 at ./p3.pl line 45


Everything seems fine, but suddenly java sends back an error packet.

I can change other bits of the code and generate similar errors. It
seems that something is going wrong deep down.

Cheers,
jas.

Reply via email to