MemCachedClient调用,报java.lang.ArrayIndexOutOfBoundsException错误
2009-12-09 15:28
1276 查看
java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at com.wonibo.projectx.service.index.ReadPsDaemon.getResult(ReadPsDaemon.java:109)
at com.wonibo.projectx.service.index.ReadPsDaemon.readPs(ReadPsDaemon.java:97)
at com.wonibo.projectx.service.index.ReadPsDaemon.run(ReadPsDaemon.java:54)
Caused by: java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at sun.security.provider.DigestBase.engineUpdate(DigestBase.java:110)
at java.security.MessageDigest$Delegate.engineUpdate(MessageDigest.java:537)
at java.security.MessageDigest.update(MessageDigest.java:293)
at com.danga.MemCached.SockIOPool.md5HashingAlg(SockIOPool.java:521)
at com.danga.MemCached.SockIOPool.getHash(SockIOPool.java:547)
at com.danga.MemCached.SockIOPool.getBucket(SockIOPool.java:557)
at com.danga.MemCached.SockIOPool.getSock(SockIOPool.java:918)
at com.danga.MemCached.MemCachedClient.delete(MemCachedClient.java:447)
at com.danga.MemCached.MemCachedClient.delete(MemCachedClient.java:395)
at com.wonibo.projectx.dao.memcache.MemcachedUtil.remove(MemcachedUtil.java:167)
at com.wonibo.projectx.dao.DbManager.getProductBeanStateById(DbManager.java:835)
at com.wonibo.projectx.service.index.ReadPsDaemon$PsReader.call(ReadPsDaemon.java:133)
at com.wonibo.projectx.service.index.ReadPsDaemon$PsReader.call(ReadPsDaemon.java:122)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
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)
原因是MessageDigest instance非线程安全的。如果要多线程调用需要syncronize,这不是最优解决办法,不知有别的解决方法没。
先记下来,以后再找解决方案。
类似问题:http://www.javaeye.com/topic/186965
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at com.wonibo.projectx.service.index.ReadPsDaemon.getResult(ReadPsDaemon.java:109)
at com.wonibo.projectx.service.index.ReadPsDaemon.readPs(ReadPsDaemon.java:97)
at com.wonibo.projectx.service.index.ReadPsDaemon.run(ReadPsDaemon.java:54)
Caused by: java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at sun.security.provider.DigestBase.engineUpdate(DigestBase.java:110)
at java.security.MessageDigest$Delegate.engineUpdate(MessageDigest.java:537)
at java.security.MessageDigest.update(MessageDigest.java:293)
at com.danga.MemCached.SockIOPool.md5HashingAlg(SockIOPool.java:521)
at com.danga.MemCached.SockIOPool.getHash(SockIOPool.java:547)
at com.danga.MemCached.SockIOPool.getBucket(SockIOPool.java:557)
at com.danga.MemCached.SockIOPool.getSock(SockIOPool.java:918)
at com.danga.MemCached.MemCachedClient.delete(MemCachedClient.java:447)
at com.danga.MemCached.MemCachedClient.delete(MemCachedClient.java:395)
at com.wonibo.projectx.dao.memcache.MemcachedUtil.remove(MemcachedUtil.java:167)
at com.wonibo.projectx.dao.DbManager.getProductBeanStateById(DbManager.java:835)
at com.wonibo.projectx.service.index.ReadPsDaemon$PsReader.call(ReadPsDaemon.java:133)
at com.wonibo.projectx.service.index.ReadPsDaemon$PsReader.call(ReadPsDaemon.java:122)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
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)
原因是MessageDigest instance非线程安全的。如果要多线程调用需要syncronize,这不是最优解决办法,不知有别的解决方法没。
先记下来,以后再找解决方案。
类似问题:http://www.javaeye.com/topic/186965
相关文章推荐
- spring调用memcached client for java
- Error creating bean with name 'memcachedClient'...java.lang.OutOfMemoryError
- Error creating bean with name 'memcachedClient'...java.lang.OutOfMemoryError
- spring调用memcached client for java
- Membase,Memcached,Couchbase1.8 JAVA 简单调用 操作
- Java - 在WebService中使用Client调用三方的RestAPI
- Redis出现多线程调用时抛出 [B cannot be cast to java.lang.Long] 异常
- JAVA web调用执行python脚本程序的四种方式,回避java.lang.OutOfMemoryError:PermGen space内存溢出问题
- [2014.1.31] Eclipse、MinGW、JNI编写C++生成dll, Java端调用的完整示例(附java.lang.UnsatisfiedLinkError解决方法)
- 调用ajax,返回json, 报异常 java.lang.OutOfMemoryError: Java heap space
- java 通过httpclient调用https 的webapi
- Appium(Java)2.0.0以上运行时报错“java.lang.UnsupportedClassVersionError: io/appium/java_client/AppiumDriver”
- java.lang.IllegalArgumentException: Property 'sqlMapClient' is required
- Retrofit中OKHttp中的一些小坑(java.lang.NoClassDefFoundError: okhttp3.OkHttpClient)
- 实战Memcached缓存系统(2)Memcached Java API基础之MemcachedClient
- memcached Java Client
- Java HttpClient在外围接口调用实例
- JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法
- java.lang.Process调用程序阻塞问题解决
- MemCached Cache Java Client封装优化历程