Hi guys,
 
I found an issure about SSL on Mina_2.0.0_M3. When I build a server using SSL, 
it works very fine with the ssl client built in Java. However, I tried similar 
client built in C#, the server with mina ssl throwed exception as follow.
 
When I downgrade the program to Mina_1.1.7, everything works fine. I believe 
there are some bugs in the Mina_2.0.2 codes. 
 
java.lang.IllegalArgumentException        at 
java.nio.Buffer.position(Buffer.java:218)        at 
java.nio.HeapByteBuffer.put(HeapByteBuffer.java:185)        at 
com.sun.net.ssl.internal.ssl.EngineArgs.gather(EngineArgs.java:140)        at 
com.sun.net.ssl.internal.ssl.EngineOutputRecord.write(EngineOutputRecord.java:232)
        at 
com.sun.net.ssl.internal.ssl.EngineWriter.writeRecord(EngineWriter.java:165)    
    at 
com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeRecord(SSLEngineImpl.java:1151) 
       at 
com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeAppRecord(SSLEngineImpl.java:1121)
        at 
com.sun.net.ssl.internal.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:1036)        
at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:452)        at 
org.apache.mina.filter.ssl.SslHandler.encrypt(SslHandler.java:348)        at 
org.apache.mina.filter.ssl.SslFilter.filterWrite(SslFilter.java:534)        at 
org.apache.mina.filter.ssl.SslHandler.writeNetBuffer(SslHandler.java:546)       
 at org.apa
 che.mina.filter.ssl.SslHandler.handshake(SslHandler.java:489)        at 
org.apache.mina.filter.ssl.SslHandler.messageReceived(SslHandler.java:286)      
  at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:407)   
     at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)
        at 
org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:60)      
  at org.apache.mina.core.session.IoEvent.run(IoEvent.java:64)        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:551)
        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:543)
        at org.apach
 
e.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:487)
        at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException   
     at java.nio.Buffer.reset(Buffer.java:280)        at 
org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336)   
     at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPollingIoProcessor.java:621)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$500(AbstractPollingIoProcessor.java:58)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861)
        at 
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) 
       at java.util.concur
 rent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) 
       at 
java.lang.Thread.run(Thread.java:619)java.lang.IllegalArgumentException        
at java.nio.Buffer.position(Buffer.java:218)        at 
java.nio.HeapByteBuffer.put(HeapByteBuffer.java:185)        at 
com.sun.net.ssl.internal.ssl.EngineArgs.gather(EngineArgs.java:140)        at 
com.sun.net.ssl.internal.ssl.EngineOutputRecord.write(EngineOutputRecord.java:232)
        at 
com.sun.net.ssl.internal.ssl.EngineWriter.writeRecord(EngineWriter.java:165)    
    at 
com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeRecord(SSLEngineImpl.java:1151) 
       at 
com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeAppRecord(SSLEngineImpl.java:1121)
        at 
com.sun.net.ssl.internal.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:1036)        
at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:452)        at 
org.apache.mina.filter.ssl.SslHandler.enc
 rypt(SslHandler.java:348)        at 
org.apache.mina.filter.ssl.SslFilter.filterWrite(SslFilter.java:534)        at 
org.apache.mina.filter.ssl.SslHandler.writeNetBuffer(SslHandler.java:546)       
 at org.apache.mina.filter.ssl.SslHandler.handshake(SslHandler.java:489)        
at org.apache.mina.filter.ssl.SslHandler.messageReceived(SslHandler.java:286)   
     at 
org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:407)        
at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)
        at 
org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:60)      
  at org.apache.mina.core.session.IoEvent.run(IoEvent.java:64)        at 
org.apache.mina.filter.executor.OrderedThr
 eadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:551)        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:543)
        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:487)
        at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException   
     at java.nio.Buffer.reset(Buffer.java:280)        at 
org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336)   
     at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPollingIoProcessor.java:621)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$500(AbstractPollingIoProcessor.java:58)
        at org.apache.min
 
a.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861)
        at 
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) 
       at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) 
       at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException    
    at java.nio.Buffer.reset(Buffer.java:280)        at 
org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336)   
     at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPollingIoProcessor.java:621)
        at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$50
 0(AbstractPollingIoProcessor.java:58)        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861)
        at 
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) 
       at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) 
       at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException    
    at java.nio.Buffer.reset(Buffer.java:280)        at 
org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336)   
     at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPollingIoProcessor.java:621)
        at org
 
.apache.mina.core.polling.AbstractPollingIoProcessor.access$500(AbstractPollingIoProcessor.java:58)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861)
        at 
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) 
       at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) 
       at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException    
    at java.nio.Buffer.reset(Buffer.java:280)        at 
org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336)   
     at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685)
        at org.apache.mina.core.polling.AbstractPollingIoProc
 essor.flush(AbstractPollingIoProcessor.java:621)        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$500(AbstractPollingIoProcessor.java:58)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861)
        at 
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) 
       at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) 
       at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException    
    at java.nio.Buffer.reset(Buffer.java:280)        at 
org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336)   
     at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685
 )        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPollingIoProcessor.java:621)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$500(AbstractPollingIoProcessor.java:58)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861)
        at 
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) 
       at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) 
       at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException    
    at java.nio.Buffer.reset(Buffer.java:280)        at 
org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336)   
     at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759)
        at org.apache.mina.core.polling.AbstractP
 ollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685)        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPollingIoProcessor.java:621)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$500(AbstractPollingIoProcessor.java:58)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861)
        at 
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) 
       at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) 
       at 
java.lang.Thread.run(Thread.java:619)org.apache.mina.core.write.WriteTimeoutException
        at 
org.apache.mina.core.session.IdleStatusChecker.notifyWriteTimeout(IdleStatusChecker.java:254)
        at 
org.apache.mina.core.session.IdleStatusChecker.notifyIdleSession(IdleStatusChecker.java:200)
        at or
 
g.apache.mina.core.session.IdleStatusChecker.notifyIdleness(IdleStatusChecker.java:150)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.notifyIdleSessions(AbstractPollingIoProcessor.java:604)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$700(AbstractPollingIoProcessor.java:58)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:863)
        at 
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) 
       at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) 
       at java.lang.Thread.run(Thread.java:619)[DEBUG] 17:30:59,890 - 
Unexpected exception from SSLEngine.closeInbound().
javax.net.ssl.SSLException: Inbound closed before receiving peer's 
close_notify: possible truncation attack?        at 
com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190)        at 
com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1366)       
 at com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1334)   
     at 
com.sun.net.ssl.internal.ssl.SSLEngineImpl.closeInbound(SSLEngineImpl.java:1273)
        at org.apache.mina.filter.ssl.SslHandler.destroy(SslHandler.java:155)   
     at org.apache.mina.filter.ssl.SslFilter.sessionClosed(SslFilter.java:386)  
      at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:49)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:817)
        at org.apache.mina.core.filterchain
 .IoFilterEvent.fire(IoFilterEvent.java:87)        at 
org.apache.mina.core.session.IoEvent.run(IoEvent.java:64)        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:551)
        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:543)
        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:487)
        at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException   
     at java.nio.Buffer.reset(Buffer.java:280)        at 
org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336)   
     at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPol
 lingIoProcessor.java:621)        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$500(AbstractPollingIoProcessor.java:58)
        at 
org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861)
        at 
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) 
       at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) 
       at java.lang.Thread.run(Thread.java:619)
 
 
Hope it can help,
 
thanks 
 
Aiguo
_________________________________________________________________
MSN 中文网,最新时尚生活资讯,白领聚集门户。
http://cn.msn.com

Reply via email to