0 Replies Latest reply on Nov 9, 2011 4:19 AM by scottgj

    NullPointer in PojoCache

    scottgj

      Hi,

       

      Versions:

      JBossCache - 3.1.0.GA

      PojoCache - 3.0.0.GA

       

      During my endurance tests I get such exceptions

      1)

      org.jboss.cache.pojo.PojoCacheException: detach failed /parlayRa/TEST_NODES/18-12883

              at org.jboss.cache.pojo.impl.PojoCacheImpl.detach(PojoCacheImpl.java:134)

              at org.jboss.cache.pojo.impl.PojoCacheImpl.detach(PojoCacheImpl.java:221)

              at org.mobicents.slee.resource.parlay.util.replication.CacheBase.removeObject(CacheBase.java:74)

              at pl.ivmx.pojocache.cache.TestRemovePojoCache.remove_aroundBody0(TestRemovePojoCache.java:14)

              at pl.ivmx.pojocache.cache.TestRemovePojoCache.remove_aroundBody1$advice(TestRemovePojoCache.java:96)

              at pl.ivmx.pojocache.cache.TestRemovePojoCache.remove(TestRemovePojoCache.java:1)

              at pl.ivmx.pojocache.PeriodicCacheLoader.run(PeriodicCacheLoader.java:72)

              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.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

              at java.lang.Thread.run(Thread.java:662)

      Caused by: java.lang.NullPointerException

              at org.jboss.cache.pojo.impl.InternalHelper.cleanUp(InternalHelper.java:261)

              at org.jboss.cache.pojo.impl.PojoCacheDelegate.removeObject(PojoCacheDelegate.java:264)

              at org.jboss.cache.pojo.impl.PojoCacheImpl.detach(PojoCacheImpl.java:126)

              ... 12 more

       

      2)

      org.jboss.cache.pojo.PojoCacheException: detach failed /parlayRa/TEST_NODES/2-67790

              at org.jboss.cache.pojo.impl.PojoCacheImpl.detach(PojoCacheImpl.java:134)

              at org.jboss.cache.pojo.impl.PojoCacheImpl.detach(PojoCacheImpl.java:221)

              at org.mobicents.slee.resource.parlay.util.replication.CacheBase.removeObject(CacheBase.java:74)

              at pl.ivmx.pojocache.cache.TestRemovePojoCache.remove_aroundBody0(TestRemovePojoCache.java:14)

              at pl.ivmx.pojocache.cache.TestRemovePojoCache.remove_aroundBody1$advice(TestRemovePojoCache.java:96)

              at pl.ivmx.pojocache.cache.TestRemovePojoCache.remove(TestRemovePojoCache.java:1)

              at pl.ivmx.pojocache.PeriodicCacheLoader.run(PeriodicCacheLoader.java:72)

              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.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

              at java.lang.Thread.run(Thread.java:662)

      Caused by: java.lang.NullPointerException

              at org.jboss.cache.pojo.impl.InternalHelper.isMultipleReferenced(InternalHelper.java:180)

              at org.jboss.cache.pojo.impl.ObjectGraphHandler.isMultipleReferenced(ObjectGraphHandler.java:79)

              at org.jboss.cache.pojo.impl.PojoCacheDelegate.removeObject(PojoCacheDelegate.java:253)

              at org.jboss.cache.pojo.impl.PojoCacheImpl.detach(PojoCacheImpl.java:126)

              ... 12 more

       

      Does enybody know why?

       

      How to reporoduce error:

      To start a test you have to:

      1) Copy pojo cache configuration on two nodes (I have cluster comprised from two nodes in LAN)

      1a) My JVM config (on both nodes):

      JAVA_OPTS="-Xms1200m -Xmx1200m -XX:NewSize=150m -XX:MaxNewSize=150m -XX:MaxPermSize=128m -XX:SurvivorRatio=15 -XX:+UseTLAB -XX:TLABSize=64k -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:MaxTenuringThreshold=32 -XX:CMSInitiatingOccupancyFraction=66"

      1b)

      2) Deploy web app on one of node

      3) Go to web app web page

      http://firstnode_ip:8080/pojocache-load-test/index

      4) Choose section

      Test with all remove operations running constantly.

      and enter values:

       

      500

      Object live time in ms: 180000


      and Run test.

       

      Error should be shown after memory allocated on heap reachs its upper limit (from top totally allocated memory shows about 1.6GB)

       

      Best regards,

      Grzegorz Jamka