[ 
http://issues.apache.org/jira/browse/HIVEMIND-120?page=comments#action_65721 ]
     
Richard Hensley commented on HIVEMIND-120:
------------------------------------------

I really think that older objects that don't have interfaces, or can't be 
sub-classed should be limited to using the primitive model. 

Another way that I've been working around these kind of issues is using 
ObjectProviders. 

Hivemind has documented contracts that assume either interfaces, or at 
overridable methods. I think that if we add a feature that breaks this contract 
by silently ignoring it is some cases is a very bad idea. I will state this 
again, in these few cases, the primitive model is about the best that can be 
done and still not astonish the user. For instance, if my logging interceptor 
showed some of the methods but not all, how long would it take a new user to 
track this down to some final method on their object.

As a precedence for limiting functionality when an object has final methods, 
Hibernate states that if you make a method final on an bean that is being 
managed by Hibernate, then that bean can not do managed lazy instantiation. 

> Proxy creation failure for non-interface beans
> ----------------------------------------------
>
>          Key: HIVEMIND-120
>          URL: http://issues.apache.org/jira/browse/HIVEMIND-120
>      Project: HiveMind
>         Type: Bug
>   Components: framework
>     Versions: 1.1
>  Environment: Windows XP, Java 1.5
>     Reporter: Brian K. Wallace
>  Attachments: HivemindTestNonInterfaceBean.jar
>
> When utilizing a non-interface bean as in the following:
>   <service-point id="MenuBar" interface="javax.swing.JMenuBar">
> The SingletonServiceModel.createSingletonProxy will fail as a result of 
> trying to override a final method. 
> Stacktrace follows
> -------------------------------------------------
> org.apache.hivemind.ApplicationRuntimeException: Unable to create class 
> $$JMenuBar_103c097ba17_103c097ba18: by java.lang.VerifyError: class 
> $$JMenuBar_103c097ba17_103c097ba18 overrides final method s��*'+
> .#��*'+
>       at 
> org.apache.hivemind.impl.servicemodel.SingletonServiceModel.createSingletonProxy(SingletonServiceModel.java:130)
>       at 
> org.apache.hivemind.impl.servicemodel.SingletonServiceModel.getService(SingletonServiceModel.java:57)
>       at 
> org.apache.hivemind.impl.ServicePointImpl.getService(ServicePointImpl.java:209)
>       at 
> org.apache.hivemind.impl.ServicePointImpl.getService(ServicePointImpl.java:222)
>       at 
> org.apache.hivemind.impl.RegistryInfrastructureImpl.getService(RegistryInfrastructureImpl.java:242)
>       at org.apache.hivemind.impl.ModuleImpl.getService(ModuleImpl.java:102)
>       at 
> org.apache.hivemind.service.impl.BuilderFactoryLogic.autowireProperty(BuilderFactoryLogic.java:395)
>       at 
> org.apache.hivemind.service.impl.BuilderFactoryLogic.autowireServices(BuilderFactoryLogic.java:381)
>       at 
> org.apache.hivemind.service.impl.BuilderFactoryLogic.setProperties(BuilderFactoryLogic.java:327)
>       at 
> org.apache.hivemind.service.impl.BuilderFactoryLogic.createService(BuilderFactoryLogic.java:77)
>       at 
> org.apache.hivemind.service.impl.BuilderFactory.createCoreServiceImplementation(BuilderFactory.java:42)
>       at 
> org.apache.hivemind.impl.InvokeFactoryServiceConstructor.constructCoreServiceImplementation(InvokeFactoryServiceConstructor.java:84)
>       at 
> org.apache.hivemind.impl.servicemodel.AbstractServiceModelImpl.constructCoreServiceImplementation(AbstractServiceModelImpl.java:107)
>       at 
> org.apache.hivemind.impl.servicemodel.AbstractServiceModelImpl.constructNewServiceImplementation(AbstractServiceModelImpl.java:157)
>       at 
> org.apache.hivemind.impl.servicemodel.AbstractServiceModelImpl.constructServiceImplementation(AbstractServiceModelImpl.java:139)
>       at 
> org.apache.hivemind.impl.servicemodel.SingletonServiceModel.getActualServiceImplementation(SingletonServiceModel.java:68)
> Caused by: org.apache.hivemind.ApplicationRuntimeException: Unable to create 
> class $$JMenuBar_103c097ba17_103c097ba18: by java.lang.VerifyError: class 
> $$JMenuBar_103c097ba17_103c097ba18 overrides final method s��*'+
> .#��*'+
>       at 
> org.apache.hivemind.service.impl.CtClassSource.createClass(CtClassSource.java:88)
>       at 
> org.apache.hivemind.service.impl.AbstractFab.createClass(AbstractFab.java:92)
>       at 
> org.apache.hivemind.impl.servicemodel.SingletonServiceModel.createSingletonProxyClass(SingletonServiceModel.java:184)
>       at 
> org.apache.hivemind.impl.servicemodel.SingletonServiceModel.createSingletonProxy(SingletonServiceModel.java:103)
>       ... 19 more
> Caused by: javassist.CannotCompileException: by java.lang.VerifyError: class 
> $$JMenuBar_103c097ba17_103c097ba18 overrides final method s��*'+
> .#��*'+
>       at javassist.ClassPool.toClass(ClassPool.java:713)
>       at javassist.CtClass.toClass(CtClass.java:988)
>       at 
> org.apache.hivemind.service.impl.HiveMindClassPool.toClass(HiveMindClassPool.java:75)
>       at 
> org.apache.hivemind.service.impl.CtClassSource.createClass(CtClassSource.java:84)
>       ... 22 more

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to