4 Replies Latest reply on Sep 5, 2012 8:59 AM by jpalka

    With clustering enabled I got  java.io.NotSerializableException: org.modeshape.jcr.cache.change.NodeAdded

    jpalka

      All,

       

      I have enabled clustering in my config,

       

      {

          "name" : "webdav_repo",

          "jndiName" : "",

          "storage" : {

              "cacheName" : "webdav_repo",

              "cacheConfiguration" : "infinispan_configuration.xml",

              "binaryStorage" : {

                  "type" : "file",

                  "directory" : "/home/palkaj01/repo/binary"

              }

          },

          "query" : {

              "enabled" : true,

              "enableFullTextSearch" : false,

              "indexStorage" : {

                  "type" : "filesystem",

                  "location" : "/home/palkaj01/repo/index"

              },

              "indexing" : {

                  "hibernate.search.default.exclusive_index_use" : false,

                  "mode" : "async",

                  "asyncMaxQueueSize" : 10

              },

          },

          "workspaces" : {

              "predefined" : ["cars"],

              "default" : "default",

              "allowCreation" : true

          },

          "security" : {

              "anonymous" : {

                  "roles" : ["readonly","readwrite","admin", "connect"],

                  "useOnFailedLogin" : false

              },

              "providers" : [

                  { "classname" : "servlet" }

              ]

          },

          "clustering" : {

              "clusterName" : "modeshape"

          }

      }

       

      With one node in the cluster adding new nodes to workspace works (simply because there is no communication of JGroups channel), but when I have 2 nodes in the cluster I got following exception:

      Caused by: java.io.NotSerializableException: org.modeshape.jcr.cache.change.NodeAdded

          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)

          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)

          at java.util.concurrent.ConcurrentLinkedQueue.writeObject(ConcurrentLinkedQueue.java:644)

          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

          at java.lang.reflect.Method.invoke(Method.java:597)

          at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:940)

          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)

          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)

          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)

          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)

          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)

          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)

          at org.jgroups.util.Util.objectToByteBuffer(Util.java:476)

          at org.modeshape.jcr.bus.ClusteredRepositoryChangeBus.serialize(ClusteredRepositoryChangeBus.java:296)

          at org.modeshape.jcr.bus.ClusteredRepositoryChangeBus.notify(ClusteredRepositoryChangeBus.java:236)

          ... 5 more

       

      Is clustering not supported at the moment? Or should I configure clustering at Infinispan storage level ?

       

      Regards,

      Jarek