[
https://issues.apache.org/jira/browse/CAMEL-12873?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16644438#comment-16644438
]
ASF GitHub Bot commented on CAMEL-12873:
----------------------------------------
GitHub user tadayosi opened a pull request:
https://github.com/apache/camel/pull/2559
CAMEL-12873: camel-servlet - Example for HttpRegistry no longer works…
… throwing FinalModifierException
It also recovers an example test which existed under
`tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/servlet/` as
an example.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/tadayosi/camel CAMEL-12873
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/camel/pull/2559.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #2559
----
commit e145c59edd652b1df567ac07423f70fe33133c7e
Author: Tadayoshi Sato <sato.tadayoshi@...>
Date: 2018-10-10T04:25:21Z
CAMEL-12873: camel-servlet - Example for HttpRegistry no longer works
throwing FinalModifierException
----
> camel-servlet - Example for HttpRegistry no longer works throwing
> FinalModifierException
> ----------------------------------------------------------------------------------------
>
> Key: CAMEL-12873
> URL: https://issues.apache.org/jira/browse/CAMEL-12873
> Project: Camel
> Issue Type: Bug
> Components: camel-http-common, camel-servlet
> Affects Versions: 2.22.1
> Reporter: Tadayoshi Sato
> Assignee: Tadayoshi Sato
> Priority: Major
> Attachments: camel-example-servlet-httpregistry-blueprint.zip
>
>
> There was a configuration example for {{HttpRegistry}}, which is introduced
> by CAMEL-3549, under
> {{tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/servlet/}}.
> The test itself was removed probably because it depended on deprecated
> Spring DM, but the use case CAMEL-3549, which is to use a CamelServlet
> instance across OSGi bundles, exemplified by the test should be still valid
> and maintained.
> However, with the latest Camel when deploying the attached example
> ({{camel-example-servlet-httpregistry-blueprint.zip}}) to Karaf it fails to
> deploy throwing the following error:
> {code}
> 2018-10-09T20:42:54,813 | ERROR | FelixStartLevel | BlueprintContainerImpl
> | 52 - org.apache.aries.blueprint.core - 1.9.0 | Unable to start
> blueprint container for bundle
> camel-example-servlet-httpregistry-blueprint/2.23.0.SNAPSHOT
> org.osgi.service.blueprint.container.ComponentDefinitionException:
> org.apache.aries.proxy.FinalModifierException: The methods protected final
> void
> org.apache.camel.http.common.CamelServlet.service(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
> throws javax.servlet.ServletException,java.io.IOException in class
> org.apache.camel.http.common.CamelServlet are final.
> at
> org.apache.aries.blueprint.container.ReferenceRecipe.internalCreate(ReferenceRecipe.java:141)
> ~[52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:81)
> ~[52:org.apache.aries.blueprint.core:1.9.0]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?]
> at
> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:90)
> ~[52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:360)
> ~[52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:190)
> ~[52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:716)
> ~[52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:413)
> [52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:278)
> [52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:299)
> [52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:268)
> [52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:264)
> [52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:254)
> [52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)
> [52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)
> [52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)
> [52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)
> [52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)
> [52:org.apache.aries.blueprint.core:1.9.0]
> at
> org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1179)
> [?:?]
> at
> org.apache.felix.framework.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:730)
> [?:?]
> at
> org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:485)
> [?:?]
> at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4579)
> [?:?]
> at org.apache.felix.framework.Felix.startBundle(Felix.java:2174) [?:?]
> at
> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1373) [?:?]
> at
> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
> [?:?]
> at java.lang.Thread.run(Thread.java:748) [?:?]
> Caused by: org.apache.aries.proxy.FinalModifierException: The methods
> protected final void
> org.apache.camel.http.common.CamelServlet.service(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
> throws javax.servlet.ServletException,java.io.IOException in class
> org.apache.camel.http.common.CamelServlet are final.
> at
> org.apache.aries.proxy.impl.gen.ProxySubclassGenerator.getProxySubclass(ProxySubclassGenerator.java:112)
> ~[?:?]
> at
> org.apache.aries.proxy.impl.gen.ProxySubclassGenerator.newProxySubclassInstance(ProxySubclassGenerator.java:171)
> ~[?:?]
> at
> org.apache.aries.proxy.impl.AsmProxyManager.createNewProxy(AsmProxyManager.java:140)
> ~[?:?]
> at
> org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingInterceptingProxy(AbstractProxyManager.java:77)
> ~[?:?]
> at
> org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingProxy(AbstractProxyManager.java:42)
> ~[?:?]
> at
> org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.createProxy(AbstractServiceReferenceRecipe.java:332)
> ~[?:?]
> at
> org.apache.aries.blueprint.container.ReferenceRecipe.internalCreate(ReferenceRecipe.java:125)
> ~[?:?]
> ... 25 more
> {code}
> This is clearly because at some point in time {{CamelServlet.service()}}
> method was marked as {{final}}. We should remove it to restore the use case.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)