-
Feature Request
-
Resolution: Won't Do
-
Critical
-
None
-
3.8.0.Final, 4.0.0.Beta1
-
None
I am using modeshape in embedded mode with JDBC persistence through infinispan. Since infinispan made incompatible changes from version 5 to 6
an rolling upgrade procedure is required to migrate data as described here:
http://infinispan.org/docs/6.0.x/user_guide/user_guide.html#_Data_migration_section
http://infinispan.org/docs/6.0.x/user_guide/user_guide.html#_rolling_upgrades_for_infinispan_library_embedded_mode
The modeshape 3.8 node is configured to run the infinispan command-line interface server and the caches on the new modeshape 4.0.0.Beta1 node are configured to use the infinispan
command-line interface cache loader via jmx connection to the old node as described in rolling upgrade documentation. The new node does not start up because an exception occurs when the class
'CacheSchematicDb' is calling store.get("") with empty parameters. This call translates to a command-line interface client 'get' call without parameters and causes a severe parsing error.
Call during startup on new node with modeshape 4.0.0.Beta1:
org.infinispan.schematic.internal.CacheSchematicDb.CacheSchematicDb(Cache<String, SchematicEntry>) ... String schemaCacheName = store.getName() + "Schemas"; // Load the database document from the cache ... SchematicEntry databaseDocument = store.get(""); if (databaseDocument != null && databaseDocument.hasDocumentContent()) { ...
Exception on old node with modeshape 3.8 (this is also thrown back to the new node and prevents its startup):
DEBUG [org.infinispan.jmx.ResourceDMBean] <Argument value before transformation: get and its class: class java.lang.String. For method.invoke we need it to be class: java.lang.String> ERROR [org.infinispan.cli.interpreter.Interpreter] - <ISPN019003: Interpreter error> org.infinispan.cli.interpreter.ParseException: line 1:4 no viable alternative at input '\n' at org.infinispan.cli.interpreter.Interpreter.execute(Interpreter.java:163) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.infinispan.jmx.ResourceDMBean.invoke(ResourceDMBean.java:303) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487) at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420) at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848) at sun.reflect.GeneratedMethodAccessor59.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) at sun.rmi.transport.Transport$1.run(Transport.java:177) at sun.rmi.transport.Transport$1.run(Transport.java:174) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:173) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724)