guyueyuqi / comet4j

Automatically exported from code.google.com/p/comet4j
0 stars 0 forks source link

在推送频率较快时,内存泄露 #11

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago

我在while循环中,每次休眠500毫秒

while (while_flag1) {
  try{
    Thread.sleep(CHANNEL2_SLEEP);               
    }
  catch(Exception e){               
   }
//添加监听器
CometEngine engine = CometContext.getInstance().getEngine();
engine.sendToAll("mychannal","数据2");
}

因为频率较快,所有运行大概几个小时后就报错:内存泄露
org.apache.jk.common.ChannelSocket processConnection
严重: Error, processing connection
java.lang.IndexOutOfBoundsException
    at java.io.BufferedInputStream.read(BufferedInputStream.java:310)
    at org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:628)
    at org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:585)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:693)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
    at java.lang.Thread.run(Thread.java:619)
2014-1-18 21:12:11 org.apache.coyote.http11.Http11NioProcessor process
严重: Error processing request
java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:2882)
    at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
    at java.lang.StringBuffer.append(StringBuffer.java:224)
    at java.io.StringWriter.write(StringWriter.java:95)
    at java.io.PrintWriter.write(PrintWriter.java:412)
    at java.io.PrintWriter.write(PrintWriter.java:429)
    at java.io.PrintWriter.print(PrintWriter.java:559)
    at java.io.PrintWriter.println(PrintWriter.java:695)
    at java.lang.Throwable.printStackTrace(Throwable.java:512)
    at java.util.logging.SimpleFormatter.format(SimpleFormatter.java:72)
    at org.apache.juli.FileHandler.publish(FileHandler.java:158)
    at java.util.logging.Logger.log(Logger.java:458)
    at java.util.logging.Logger.doLog(Logger.java:480)
    at java.util.logging.Logger.logp(Logger.java:680)
    at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:167)
    at org.apache.juli.logging.DirectJDKLog.error(DirectJDKLog.java:135)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:329)
    at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:889)
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:720)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2262)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)

Original issue reported on code.google.com by nercon...@gmail.com on 23 Jan 2014 at 3:12