msgpack-java and ConcurrentHashMap

160 views
Skip to first unread message

Ilya Volodarsky

unread,
Oct 10, 2012, 4:33:46 PM10/10/12
to msg...@googlegroups.com
Can someone show me how to serialize ConcurrentHashMap?

msgPack = new MessagePack();
msgPack.register(ConcurrentHashMap.class);

gives:

org.msgpack.MessageTypeException: org.msgpack.template.builder.TemplateBuildException: Cannot compile: 
    {
      if (!$3 && $1.trySkipNil()) {
        return null;
      }
      java.util.concurrent.ConcurrentHashMap _$$_t;
      if ($2 == null) {
        _$$_t = new java.util.concurrent.ConcurrentHashMap();
      } else {
        _$$_t = (java.util.concurrent.ConcurrentHashMap) $2;
      }
      $1.readArrayBegin();
      $1.readArrayEnd();
      return _$$_t;
    }
        at org.msgpack.template.TemplateRegistry.buildAndRegister(TemplateRegistry.java:516)
        at org.msgpack.template.TemplateRegistry.register(TemplateRegistry.java:154)
        at org.msgpack.MessagePack.register(MessagePack.java:572)
        at com.sio.msgpack.MessagePackUtils.initializeMessagePack(MessagePackUtils.java:30)
        at com.sio.msgpack.MessagePackUtils.getMessagePack(MessagePackUtils.java:22)
        at com.sio.msgpack.cube.CubeSerializationTest.serializationTest(CubeSerializationTest.java:46)

        Caused by:
        org.msgpack.template.builder.TemplateBuildException: Cannot compile: 
        {
          if (!$3 && $1.trySkipNil()) {
            return null;
          }
          java.util.concurrent.ConcurrentHashMap _$$_t;
          if ($2 == null) {
            _$$_t = new java.util.concurrent.ConcurrentHashMap();
          } else {
            _$$_t = (java.util.concurrent.ConcurrentHashMap) $2;
          }
          $1.readArrayBegin();
          $1.readArrayEnd();
          return _$$_t;
        }
            at org.msgpack.template.builder.BuildContext.build(BuildContext.java:73)
            at org.msgpack.template.builder.DefaultBuildContext.buildTemplate(DefaultBuildContext.java:56)
            at org.msgpack.template.builder.JavassistTemplateBuilder.buildTemplate(JavassistTemplateBuilder.java:118)
            at org.msgpack.template.builder.AbstractTemplateBuilder.buildTemplate(AbstractTemplateBuilder.java:61)
            at org.msgpack.template.TemplateRegistry.buildAndRegister(TemplateRegistry.java:503)
            ... 5 more

            Caused by:
            javassist.CannotCompileException: by java.lang.SecurityException: Prohibited package name: java.util.concurrent
                at javassist.ClassPool.toClass(ClassPool.java:1099)
                at javassist.CtClass.toClass(CtClass.java:1181)
                at org.msgpack.template.builder.BuildContext.createClass(BuildContext.java:154)
                at org.msgpack.template.builder.BuildContext.build(BuildContext.java:68)
                ... 9 more

                Caused by:
                java.lang.SecurityException: Prohibited package name: java.util.concurrent
                    at java.lang.ClassLoader.preDefineClass(ClassLoader.java:645)
                    at java.lang.ClassLoader.defineClass(ClassLoader.java:781)
                    at java.lang.ClassLoader.defineClass(ClassLoader.java:630)
                    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:601)
                    at javassist.ClassPool.toClass2(ClassPool.java:1112)
                    at javassist.ClassPool.toClass(ClassPool.java:1093)
                    ... 12 more

Thanks,

Ilya

Ilya Volodarsky

unread,
Oct 15, 2012, 10:34:28 PM10/15/12
to msg...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages