On Tue,  4 Sep 2007 11:49:20 -0300
"Fernando C. de Castro" <[EMAIL PROTECTED]> wrote:

> Hi people,
> 
>    Sorry if this was addressed before. This is my first take on the
> new Serial Transport, and I decided to adapt the good old NetCat
> Example as a first attempt. These were my steps:
> 
> 1) downloaded mina-core-2.0.0-M1-20070822.130904-57.jar from the
> trunk;
> 
> 2) started a new project using that Mina 2.0 snapshot with the NetCat
> Example files taken from the website;
> 
> 3) Made the necessary adjustments on the code (as the API changed a
> bit from 1.x) and put the example to work. Worked fine as expected;
> 
> 4) Downloaded the rxtx pack and installed the DLL (I'm coding on
> WindowsXP).
> 
> 5) Changed Main.java to use a SerialConnector instead of a
> SocketConnector, following instructions on the Serial Tutorial.
> 
> 6) Run the program. 
> 
>    And this is what I get:
> 
> 
> 
> Native lib Version = RXTX-2.1-7pre20
> Java lib Version   = RXTX-2.1-7
> WARNING:  RXTX Version mismatch
>       Jar version = RXTX-2.1-7
>       native lib Version = RXTX-2.1-7pre20
> Experimental:  JNI_OnLoad called.
> 
> Exception in thread "VmPipeIdleStatusChecker"
> java.lang.NullPointerException at
> org.apache.mina.common.IdleStatusChecker.notifyIdleSession(IdleStatusChecker.java:86)
> at
> org.apache.mina.common.IdleStatusChecker.access$200(IdleStatusChecker.java:33)
> at
> org.apache.mina.common.IdleStatusChecker$Worker.run(IdleStatusChecker.java:77)
> 
> 
>    Apparently there is a version mismatch with RXTX, but I haven't
> been able to identify why. Any hints on how to sort that out will
> surely help. Plus, there is the Exception above. I ignored it at
> first because the program was "cat'ing" whatever text was sent to the
> serial port, as expected, with either Socket or Serial.
> 
>    But then I noticed: sessionIdle() was never called when I used a
> SerialConnector (and the exception is thrown). When I use the
> SocketConnector, no Exception is thrown and sessionIdle() is called
> appropriately.
> 
>    My Main.java is as follows:
> 
> 
> public class Main {
>     public static void main(String[] args) throws Exception {
> 
>       
>       System.out.println(RXTXVersion.getVersion());
>       
>         IoConnector connector = new SerialConnector();
>         connector.setHandler( new NetCatProtocolHandler() );
>         connector.setConnectTimeout(10);
>         
>         SerialAddress portAddress=new SerialAddress( "COM3", 9600, 8,
> SerialAddress.StopBits.BITS_1, SerialAddress.Parity.NONE,
> SerialAddress.FlowControl.NONE );
> 
>     
>         ConnectFuture future = connector.connect( portAddress );
>         future.await();
>         IoSession session = future.getSession();
>         
> 
>     }
> }
> 
>    The NetCatProtocolHandler() used is as follows:
> 
> 
> 
> public class NetCatProtocolHandler extends IoHandlerAdapter {
>     public void sessionOpened(IoSession session) {
>         // Set reader idle time to 10 seconds.
>         // sessionIdle(...) method will be invoked when no data is
> read // for 10 seconds.
>         session.getConfig().setIdleTime(IdleStatus.READER_IDLE, 10);
>     }
> 
>     public void sessionClosed(IoSession session) {
>         // Print out total number of bytes read from the remote peer.
>         System.err.println("Total " + session.getReadBytes() + "
> byte(s)"); }
> 
>     public void sessionIdle(IoSession session, IdleStatus status) {
>         // Close the connection if reader is idle.
>         if (status == IdleStatus.READER_IDLE)
>             session.close();
>     }
> 
>     public void messageReceived(IoSession session, Object message) {
>         ByteBuffer buf = (ByteBuffer) message;
>         // Print out read buffer content.
>         while (buf.hasRemaining()) {
>             System.out.print((char) buf.get());
>         }
>         System.out.flush();
>     }
> 
>    
> }
> 
> 
>    Any ideas on what could be throwing the exception and probably
> hindering sessionIdle() from being called when using the
> SerialConnector?
> 
> 
>    Thanks in advance.
> 
> 
> Fernando
> 

Ok it's fixed in SVN, apparently the SerialSession config wasn't
correctly initialized.

Sorry if you lost some time around this issue.

Julien

PS : it's me or the mailling list is lagging ?

Reply via email to