You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "viola.lu (JIRA)" <ji...@apache.org> on 2010/10/19 06:14:26 UTC

[jira] Commented: (GERONIMO-5639) org.osgi.service.blueprint.container.ServiceUnavailableException when shutdown the server

    [ https://issues.apache.org/jira/browse/GERONIMO-5639?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12922422#action_12922422 ] 

viola.lu commented on GERONIMO-5639:
------------------------------------

After debugging into code, this error is from Aries blueprint/blueprint-core/org.apache.aries.blueprint.container.BeanRecipe Destroy exception:
try {
            Method method = getDestroyMethod(obj);
            if (method != null) {
                invoke(method, obj, (Object[]) null);
            }
        } catch (Exception e) {
            LOGGER.info("Error invoking destroy method", getRealCause(e));
        }
and org.apache.aries.blueprint.container.ReferenceReceipe

if (trackedServiceReference == null) {
                if (isStarted()) {
                    LOGGER.info("Timeout expired when waiting for OSGi service {}", getOsgiFilter());
                    throw new ServiceUnavailableException("Timeout expired when waiting for OSGi service", getOsgiFilter());
                } else {
                    throw new ServiceUnavailableException("The Blueprint container is being or has been destroyed", getOsgiFilter());
                }
            }



When shutdown, blueprint container will destroy its components. But here when destroy yoko servicebean/provider bean stop method, blueprint container is already stopped,s o errors exist invoking destroy method. If we should fix this log info,  should update aries code about this exception resolution. I will get some hints from Aries forum. Any comments?

> org.osgi.service.blueprint.container.ServiceUnavailableException when shutdown the server
> -----------------------------------------------------------------------------------------
>
>                 Key: GERONIMO-5639
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-5639
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: startup/shutdown
>    Affects Versions: 3.0
>         Environment: Windows 7 x86
> sun jdk 1.6.0_20
>            Reporter: Forrest Xia
>            Assignee: viola.lu
>         Attachments: config.xml, geronimo.log
>
>
> Steps:
> 1. Get the latest G build
> 2. Unzip and boot the default instance
> 3. Shutdown it
> Everything seems ok, but in the geronimo.log there is always an exception like this:
> 2010-10-12 16:35:04,985 INFO  [BeanRecipe] Error invoking destroy method
> org.osgi.service.blueprint.container.ServiceUnavailableException: The Blueprint container is being or has been destroyed
> 	at org.apache.aries.blueprint.container.ReferenceRecipe.getService(ReferenceRecipe.java:183)
> 	at org.apache.aries.blueprint.container.ReferenceRecipe.access$000(ReferenceRecipe.java:52)
> 	at org.apache.aries.blueprint.container.ReferenceRecipe$ServiceDispatcher.call(ReferenceRecipe.java:208)
> 	at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe$CgLibProxyFactory$1.loadObject(AbstractServiceReferenceRecipe.java:652)
> 	at org.apache.yoko.osgi.locator.Register$$EnhancerByCGLIB$$2b0d9326.unregisterProvider(<generated>)
> 	at org.apache.yoko.osgi.locator.ProviderBean.stop(ProviderBean.java:61)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:221)
> 	at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:844)
> 	at org.apache.aries.blueprint.container.BeanRecipe.destroy(BeanRecipe.java:761)
> 	at org.apache.aries.blueprint.container.BlueprintRepository.destroy(BlueprintRepository.java:295)
> 	at org.apache.aries.blueprint.container.BlueprintContainerImpl.destroyComponents(BlueprintContainerImpl.java:665)
> 	at org.apache.aries.blueprint.container.BlueprintContainerImpl.destroy(BlueprintContainerImpl.java:819)
> 	at org.apache.aries.blueprint.container.BlueprintExtender.destroyContext(BlueprintExtender.java:204)
> 	at org.apache.aries.blueprint.container.BlueprintExtender.bundleChanged(BlueprintExtender.java:196)
> 	at org.apache.aries.blueprint.container.BlueprintExtender$BlueprintBundleTrackerCustomizer.modifiedBundle(BlueprintExtender.java:385)
> 	at org.apache.aries.util.tracker.InternalRecursiveBundleTracker.modifiedBundle(InternalRecursiveBundleTracker.java:89)
> 	at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:453)
> 	at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:237)
> 	at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:413)
> 	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:919)
> 	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
> 	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:149)
> 	at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivileged(Framework.java:1350)
> 	at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1301)
> 	at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:470)
> 	at org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(AbstractBundle.java:546)
> 	at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Framework.java:1098)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(StartLevelManager.java:593)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:261)
> 	at org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(StartLevelManager.java:216)
> 	at org.eclipse.osgi.framework.internal.core.InternalSystemBundle.suspend(InternalSystemBundle.java:266)
> 	at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Framework.java:685)
> 	at org.eclipse.osgi.framework.internal.core.Framework.close(Framework.java:583)
> 	at org.eclipse.osgi.framework.internal.core.InternalSystemBundle$1.run(InternalSystemBundle.java:243)
> 	at java.lang.Thread.run(Thread.java:619)
> Though it does not hurt the shutdown process, but it seems annoying. Can we fix it?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.