[ 
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)

Reply via email to