Alexander Morozov created WICKET-5850:
-----------------------------------------

             Summary: LazyInitProxyFactory causes NoClassDefFound 
org/apache/wicket/proxy/ILazyInitProxy in case of multimodule deployment
                 Key: WICKET-5850
                 URL: https://issues.apache.org/jira/browse/WICKET-5850
             Project: Wicket
          Issue Type: Bug
    Affects Versions: 6.19.0, 6.18.0
         Environment: Windows 7 Pro x64, Oracle JDK 7u45 x64, Glassfish 3 (EE6)
            Reporter: Alexander Morozov


In case of multimodule deployment, LazyInitProxyFactory#createProxy() ends up 
with NoClassDefFound error while trying to wrap a class which is being injected 
into a Wickets component.

{code:java}
                        CGLibInterceptor handler = new CGLibInterceptor(type, 
locator);

                        Enhancer e = new Enhancer();
                        e.setInterfaces(new Class[] { Serializable.class, 
ILazyInitProxy.class,
                                        IWriteReplace.class });
                        e.setSuperclass(type);
                        e.setCallback(handler);
                        e.setNamingPolicy(new DefaultNamingPolicy()
                        {
                                @Override
                                public String getClassName(final String prefix, 
final String source,
                                        final Object key, final Predicate names)
                                {
                                        return super.getClassName("WICKET_" + 
prefix, source, key, names);
                                }
                        });

                        return e.create();
{code}

As we can see, Enhancer is not configured with an context-relative classloader. 
This is the root of the issue.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to