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