Hi. I'm not really sure how to get your test case to work. I try it in vanilla Ruby, and it hangs on the s.read(10)-line. (which it should, since we have not sent something to google http to elicit an answer) I guess the real question is: how do you get to the "Still haven't crashed"-line at all?
Regards Ola Bini ----- Original Message ----- From: Evan <[EMAIL PROTECTED]> Date: Friday, April 7, 2006 10:00 pm Subject: [Jruby-devel] 0.8.3 Socket implementation broken To: jruby-devel@lists.sourceforge.net > I'm porting my socket+send/recv patch to work with jruby 0.8.3 but > thereseems to be a bug in the vanilla jruby 0.8.3 socket > implementation. > "read" (I haven't tried write...) returns something (instead of > blocking)which when accessed crashes the interpreter. Since the IO > code seems to > have changed minimally, this probably has to do with some IO code > *not*being updated to reflect changes made elsewhere. > > I really am the only one using JRuby sockets, aren't I? Its going > to be > impossible to implement the *whole* socket interface, as a lot of > the Ruby > socket implementation reflects C's socket implementation. As long > as I'm > messing around with sockets, though, I could probably get a bigger > userbase by implementing whatever it is that rails needs to use the > native sql > connector code. Does anyone know what that is? Maybe I'll just look > through the code. > > Anyway, I'm looking into this, but any help would be appreciated. > > To reproduce: > > require 'socket' > s = TCPSocket.new('www.google.com', 80) > > string = s.read(10) > > $stderr.puts "Still haven't crashed" > > puts string > > This produces: > > Still haven't crashed > org.jruby.RubyIO.puts(RubyIO.java:777): > java.lang.NullPointerException:null (NativeException) > from org.jruby.RubyKernel.puts(RubyKernel.java:253) > from sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) from > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > from > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > from java.lang.reflect.Method.invoke(Method.java:324) > from > org.jruby.runtime.callback.ReflectionCallback.execute(ReflectionCallback.java:140) > from > org.jruby.internal.runtime.methods.CallbackMethod.internalCall(CallbackMethod.java:79) > from > org.jruby.internal.runtime.methods.AbstractMethod.call(AbstractMethod.java:51) > ... 25 levels... > from org.jruby.Main.runInterpreter(Main.java:121) > from org.jruby.Main.main(Main.java:82) > from breakme.rb:8 > Complete Java stackTrace > java.lang.NullPointerException > at org.jruby.RubyIO.puts(RubyIO.java:777) > at org.jruby.RubyKernel.puts(RubyKernel.java:253) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at > org.jruby.runtime.callback.ReflectionCallback.execute(ReflectionCallback.java:140) > at > org.jruby.internal.runtime.methods.CallbackMethod.internalCall(CallbackMethod.java:79) > at > org.jruby.internal.runtime.methods.AbstractMethod.call(AbstractMethod.java:51) > at org.jruby.RubyObject.callMethod(RubyObject.java:361) > at org.jruby.RubyObject.callMethod(RubyObject.java:315) > at > org.jruby.evaluator.EvaluateVisitor$FCallNodeVisitor.execute(EvaluateVisitor.java:1028) > at > org.jruby.evaluator.EvaluationState.executeNext(EvaluationState.java:211) > at > org.jruby.evaluator.EvaluationState.begin(EvaluationState.java:291) > at org.jruby.Ruby.eval(Ruby.java:188) > at org.jruby.Main.runInterpreter(Main.java:152) > at org.jruby.Main.runInterpreter(Main.java:121) > at org.jruby.Main.main(Main.java:82) > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting > languagethat extends applications into web and mobile media. Attend > the live webcast > and join the prime developer group breaking into this new coding > territory!http://sel.as- > us.falkag.net/sel?cmdgk&kid0944&bid$1720&dat1642_______________________________________________ > Jruby-devel mailing list > Jruby-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jruby-devel > ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ Jruby-devel mailing list Jruby-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jruby-devel