Hi
When moving from Karaf 2.3.4 to 3.0.2 a message from Aries starts to appear

"Unable to create a proxy object for the service .component-3 ... Returning the 
original object instead."

It happens with

<bean id="jtaTransactionManager" 
class="org.springframework.transaction.jta.JtaTransactionManager">

The rest of the INFO log output is:

org.apache.aries.proxy.FinalModifierException: The methods protected final void 
org.springframework.transaction.support.AbstractPlatformTransactionManager.resume(java.lang.Object,org.springframework.transaction.support.AbstractPlatformTransactionManager$SuspendedResourcesHolder)
 throws org.springframework.transaction.TransactionException, protected final 
org.springframework.transaction.support.AbstractPlatformTransactionManager$SuspendedResourcesHolder
 
org.springframework.transaction.support.AbstractPlatformTransactionManager.suspend(java.lang.Object)
 throws org.springframework.transaction.TransactionException, public final void 
org.springframework.transaction.support.AbstractPlatformTransactionManager.setNestedTransactionAllowed(boolean),
 protected final void 
org.springframework.transaction.support.AbstractPlatformTransactionManager.invokeAfterCompletion(java.util.List<org.springframework.transaction.support.TransactionSynchronization>,int),
 public
 final void 
org.springframework.transaction.support.AbstractPlatformTransactionManager.setTransactionSynchronization(int),
 public final int 
org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransactionSynchronization(),
 public final void 
org.springframework.transaction.support.AbstractPlatformTransactionManager.setDefaultTimeout(int),
 public final boolean 
org.springframework.transaction.support.AbstractPlatformTransactionManager.isNestedTransactionAllowed(),
 public final boolean 
org.springframework.transaction.support.AbstractPlatformTransactionManager.isValidateExistingTransaction(),
 public final void 
org.springframework.transaction.support.AbstractPlatformTransactionManager.setRollbackOnCommitFailure(boolean),
 public final boolean 
org.springframework.transaction.support.AbstractPlatformTransactionManager.isRollbackOnCommitFailure(),
 protected final 
org.springframework.transaction.support.DefaultTransactionStatus
 
org.springframework.transaction.support.AbstractPlatformTransactionManager.prepareTransactionStatus(org.springframework.transaction.TransactionDefinition,java.lang.Object,boolean,boolean,boolean,java.lang.Object),
 protected final void 
org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(org.springframework.transaction.support.DefaultTransactionStatus),
 protected final void 
org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCompletion(org.springframework.transaction.support.DefaultTransactionStatus),
 public final int 
org.springframework.transaction.support.AbstractPlatformTransactionManager.getDefaultTimeout(),
 public final void 
org.springframework.transaction.support.AbstractPlatformTransactionManager.setTransactionSynchronizationName(java.lang.String),
 public final void
 
org.springframework.transaction.support.AbstractPlatformTransactionManager.setValidateExistingTransaction(boolean),
 public final void 
org.springframework.transaction.support.AbstractPlatformTransactionManager.setGlobalRollbackOnParticipationFailure(boolean),
 public final boolean 
org.springframework.transaction.support.AbstractPlatformTransactionManager.isGlobalRollbackOnParticipationFailure(),
 public final void 
org.springframework.transaction.support.AbstractPlatformTransactionManager.setFailEarlyOnGlobalRollbackOnly(boolean),
 public final boolean 
org.springframework.transaction.support.AbstractPlatformTransactionManager.isFailEarlyOnGlobalRollbackOnly(),
 public final void 
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(org.springframework.transaction.TransactionStatus)
 throws org.springframework.transaction.TransactionException, public final void
 
org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(org.springframework.transaction.TransactionStatus)
 throws org.springframework.transaction.TransactionException, public final 
org.springframework.transaction.TransactionStatus 
org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(org.springframework.transaction.TransactionDefinition)
 throws org.springframework.transaction.TransactionException in class 
java.lang.Object are final.
    at 
org.apache.aries.proxy.impl.gen.ProxySubclassGenerator.scanForFinalModifiers(ProxySubclassGenerator.java:352)
    at 
org.apache.aries.proxy.impl.gen.ProxySubclassGenerator.getProxySubclass(ProxySubclassGenerator.java:128)
    at 
org.apache.aries.proxy.impl.gen.ProxySubclassGenerator.newProxySubclassInstance(ProxySubclassGenerator.java:171)
    at 
org.apache.aries.proxy.impl.AsmProxyManager.createNewProxy(AsmProxyManager.java:135)
    at 
org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingInterceptingProxy(AbstractProxyManager.java:75)
    at 
org.apache.aries.proxy.impl.AbstractProxyManager.createInterceptingProxy(AbstractProxyManager.java:53)
    at 
org.apache.aries.blueprint.container.ServiceRecipe$TriggerServiceFactory.getService(ServiceRecipe.java:535)
   [...]

I assume that there's not much to do here, right, it's just a rare edge case 
that Aries needs to handle?
(For now I just lower the ServiceRecipe log level to warn and plow on..)

Martin

Reply via email to