[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] Declarative Services exception

DS specs mandates that all exception occuring during handling the
lifetime of a component should be loged with the LogService but still
DS should go on with handling the other components. So, as Simon sez,
your best try is the log service. This just clear up why the
"exception is being swallowed".

If you like to see the exception being logged as they are logged you
can try use OPS4J Pax Logging as a LogService implementation. Pax
Logging will log by default dirrectly to console and you can configure
it using a LOG4J style configuration file.

On Thu, Jul 24, 2008 at 4:07 PM, Simon J Archer <sarcher@xxxxxxxxxx> wrote:
>
> Hi Chris
>
> I would suggest installing the Equinox log service bundle
> org.eclipse.equinox.log. The SCR will log exceptions such as these to the
> LogService, if available.  Since the LogService is purely a message-sink,
> you'll either have to add a LogListener to the LogReaderService to dump log
> events to the console, or simply use the Equinox OSGi console's "log"
> command to do that for you.  The downside of the "log" command is that it
> simply dumps the entire contents of the LogService's internal buffer (by
> default 100 entries), which might mean that you will miss important messages
> if the application is particularly noisy.
>
> Good luck,
>
> Simon
>
>
>
>
> "Chris Hopkins" <chopkins@xxxxxxx>
> Sent by: equinox-dev-bounces@xxxxxxxxxxx
>
> 07/24/2008 09:46 AM
>
> Please respond to
> Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
> To
> "Equinox development mailing list" <equinox-dev@xxxxxxxxxxx>
> cc
> Subject
> [equinox-dev] Declarative Services exception
>
>
>
>
> Hi –
>
> We are using DS for our project and have run into a situation where an
> exception is being swallowed somewhere and we only see it when we turn
> tracing on for the OSGi jar in our run configuration. Included below is an
> example of the exception that is happening within the constructor of our
> service. Is there a way to surface these exceptions without resorting to
> turning on tracing.
>
> Thanks,
> Chris
>
> GenerateScenarioCommandComponentName Service Registration.getService()
> exception: Exception occured while creating new instance of component
> GenerateScenarioCommandComponentName
> org.osgi.service.component.ComponentException: Exception occured while
> creating new instance of component GenerateScenarioCommandComponentName
>   at
> org.eclipse.equinox.ds.model.ServiceComponent.createInstance(ServiceComponent.java:215)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.createInstance(ServiceComponentProp.java:229)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:282)
>   at
> org.eclipse.equinox.ds.InstanceProcess.buildComponent(InstanceProcess.java:435)
>   at org.eclipse.equinox.ds.ServiceReg.getService(ServiceReg.java:51)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse$1.run(ServiceUse.java:108)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse.getService(ServiceUse.java:106)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:345)
>   at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:884)
>   at
> org.eclipse.equinox.ds.InstanceProcess.getService(InstanceProcess.java:492)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.getMethod(ComponentReference.java:115)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.bind(ComponentReference.java:215)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:373)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bind(ServiceComponentProp.java:196)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:294)
>   at
> org.eclipse.equinox.ds.InstanceProcess.buildComponent(InstanceProcess.java:435)
>   at org.eclipse.equinox.ds.ServiceReg.getService(ServiceReg.java:51)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse$1.run(ServiceUse.java:108)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse.getService(ServiceUse.java:106)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:345)
>   at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:884)
>   at
> org.eclipse.equinox.ds.InstanceProcess.getService(InstanceProcess.java:492)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.getMethod(ComponentReference.java:115)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.bind(ComponentReference.java:215)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:379)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bind(ServiceComponentProp.java:196)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:294)
>   at
> org.eclipse.equinox.ds.InstanceProcess.buildComponent(InstanceProcess.java:435)
>   at org.eclipse.equinox.ds.ServiceReg.getService(ServiceReg.java:51)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse$1.run(ServiceUse.java:108)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse.getService(ServiceUse.java:106)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:345)
>   at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:884)
>   at
> org.eclipse.equinox.ds.InstanceProcess.getService(InstanceProcess.java:492)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.getMethod(ComponentReference.java:115)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.bind(ComponentReference.java:215)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:379)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bind(ServiceComponentProp.java:196)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:294)
>   at
> org.eclipse.equinox.ds.InstanceProcess.buildComponent(InstanceProcess.java:435)
>   at org.eclipse.equinox.ds.ServiceReg.getService(ServiceReg.java:51)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse$1.run(ServiceUse.java:108)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse.getService(ServiceUse.java:106)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:345)
>   at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:884)
>   at
> org.eclipse.equinox.ds.InstanceProcess.getService(InstanceProcess.java:492)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.getMethod(ComponentReference.java:115)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.bind(ComponentReference.java:215)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:373)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bind(ServiceComponentProp.java:196)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:294)
>   at
> org.eclipse.equinox.ds.InstanceProcess.buildComponent(InstanceProcess.java:435)
>   at
> org.eclipse.equinox.ds.InstanceProcess.buildComponents(InstanceProcess.java:113)
>   at org.eclipse.equinox.ds.Resolver.performWork(Resolver.java:627)
>   at
> org.eclipse.equinox.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:593)
>   at org.eclipse.equinox.ds.WorkThread.run(WorkThread.java:84)
>   at
> org.eclipse.equinox.util.impl.tpt.threadpool.Executor.run(Executor.java:84)
> Caused by: java.lang.NullPointerException
>   at
> com.draper.jaguar.metronome.command.scenariobuilder.ScenarioBuilderCommand.getJaguarDocument(ScenarioBuilderCommand.java:71)
>   at
> com.draper.jaguar.metronome.command.scenariobuilder.GenerateScenarioCommand.<init>(GenerateScenarioCommand.java:52)
>   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>   at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
>   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
> Source)
>   at java.lang.reflect.Constructor.newInstance(Unknown Source)
>   at java.lang.Class.newInstance0(Unknown Source)
>   at java.lang.Class.newInstance(Unknown Source)
>   at
> org.eclipse.equinox.ds.model.ServiceComponent.createInstance(ServiceComponent.java:211)
>   ... 60 more
> Nested Exception:
> java.lang.NullPointerException
>   at
> com.draper.jaguar.metronome.command.scenariobuilder.ScenarioBuilderCommand.getJaguarDocument(ScenarioBuilderCommand.java:71)
>   at
> com.draper.jaguar.metronome.command.scenariobuilder.GenerateScenarioCommand.<init>(GenerateScenarioCommand.java:52)
>   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>   at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
>   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
> Source)
>   at java.lang.reflect.Constructor.newInstance(Unknown Source)
>   at java.lang.Class.newInstance0(Unknown Source)
>   at java.lang.Class.newInstance(Unknown Source)
>   at
> org.eclipse.equinox.ds.model.ServiceComponent.createInstance(ServiceComponent.java:211)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.createInstance(ServiceComponentProp.java:229)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:282)
>   at
> org.eclipse.equinox.ds.InstanceProcess.buildComponent(InstanceProcess.java:435)
>   at org.eclipse.equinox.ds.ServiceReg.getService(ServiceReg.java:51)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse$1.run(ServiceUse.java:108)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse.getService(ServiceUse.java:106)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:345)
>   at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:884)
>   at
> org.eclipse.equinox.ds.InstanceProcess.getService(InstanceProcess.java:492)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.getMethod(ComponentReference.java:115)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.bind(ComponentReference.java:215)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:373)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bind(ServiceComponentProp.java:196)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:294)
>   at
> org.eclipse.equinox.ds.InstanceProcess.buildComponent(InstanceProcess.java:435)
>   at org.eclipse.equinox.ds.ServiceReg.getService(ServiceReg.java:51)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse$1.run(ServiceUse.java:108)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse.getService(ServiceUse.java:106)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:345)
>   at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:884)
>   at
> org.eclipse.equinox.ds.InstanceProcess.getService(InstanceProcess.java:492)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.getMethod(ComponentReference.java:115)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.bind(ComponentReference.java:215)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:379)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bind(ServiceComponentProp.java:196)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:294)
>   at
> org.eclipse.equinox.ds.InstanceProcess.buildComponent(InstanceProcess.java:435)
>   at org.eclipse.equinox.ds.ServiceReg.getService(ServiceReg.java:51)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse$1.run(ServiceUse.java:108)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse.getService(ServiceUse.java:106)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:345)
>   at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:884)
>   at
> org.eclipse.equinox.ds.InstanceProcess.getService(InstanceProcess.java:492)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.getMethod(ComponentReference.java:115)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.bind(ComponentReference.java:215)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:379)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bind(ServiceComponentProp.java:196)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:294)
>   at
> org.eclipse.equinox.ds.InstanceProcess.buildComponent(InstanceProcess.java:435)
>   at org.eclipse.equinox.ds.ServiceReg.getService(ServiceReg.java:51)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse$1.run(ServiceUse.java:108)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceUse.getService(ServiceUse.java:106)
>   at
> org.eclipse.osgi.framework.internal.core.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:345)
>   at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:884)
>   at
> org.eclipse.equinox.ds.InstanceProcess.getService(InstanceProcess.java:492)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.getMethod(ComponentReference.java:115)
>   at
> org.eclipse.equinox.ds.model.ComponentReference.bind(ComponentReference.java:215)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:373)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.bind(ServiceComponentProp.java:196)
>   at
> org.eclipse.equinox.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:294)
>   at
> org.eclipse.equinox.ds.InstanceProcess.buildComponent(InstanceProcess.java:435)
>   at
> org.eclipse.equinox.ds.InstanceProcess.buildComponents(InstanceProcess.java:113)
>   at org.eclipse.equinox.ds.Resolver.performWork(Resolver.java:627)
>   at
> org.eclipse.equinox.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:593)
>   at org.eclipse.equinox.ds.WorkThread.run(WorkThread.java:84)
>   at
> org.eclipse.equinox.util.impl.tpt.threadpool.Executor.run(Executor.java:84)
>
>
>
>
>
>
> THIS MESSAGE IS INTENDED FOR THE USE OF THE PERSON TO WHOM IT IS ADDRESSED.
> IT MAY CONTAIN INFORMATION THAT IS PRIVILEGED, CONFIDENTIAL AND EXEMPT FROM
> DISCLOSURE UNDER APPLICABLE LAW. If you are not the intended recipient, your
> use of this message for any purpose is strictly prohibited. If you have
> received this communication in error, please delete the message and notify
> the sender so that we may correct our records.
>
>
>  _______________________________________________
> equinox-dev mailing list
> equinox-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
>
> _______________________________________________
> equinox-dev mailing list
> equinox-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
>



-- 
Alin Dreghiciu
http://www.ops4j.org - New Energy for OSS Communities - Open
Participation Software.
http://www.qi4j.org - New Energy for Java - Domain Driven Development.
http://malaysia.jayway.net - New Energy for Projects - Great People
working on Great Projects at Great Places