I recently ran into a weird issue where the first time a service is
referenced the
org.apache.aries.blueprint.container.ReferenceRecipe.getService() call
returns null. After that first call it works fine but it's causing no end
of problems on system startup (10 services or so all failing on their first
call). My setup is that I have a CXF JAX-RS web service that has references
to my various OSGI services. When a call comes in, the JAX-RS service calls
the correct OSGI service and then returns the appropriate data. All the
services are starting properly and bring wired up properly.
(default-activation=lazy)

I've tried this with Karaf 2.2.7 and 2.2.8 and get the same problem. I
didn't see this problem using 2.2.7 previously so I'm guessing it's related
to upgrading to the newer 1.6.0_33 JDK and this bug
ARIES-861<https://issues.apache.org/jira/browse/ARIES-861>
.

Is there anyway to resolve this other than changing VMs? I've tried adding
explicit no-arg constructors, specifying an init method....

Thanks,
Chris

Stack Trace (with Debug)

14:41:14,036 | DEBUG | lixDispatchQueue | account
 | 217 - account - 1.0.0.SNAPSHOT | FrameworkEvent ERROR
org.osgi.framework.ServiceException: Service factory exception: (class:
com/cxtsoftware/p141/services/account/impl/$AccountServiceImpl1183864159,
method: <init> signature: (Ljava/lang/reflect/InvocationHandler;)V) Call to
wrong initialization method
at
org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:314)
at
org.apache.felix.framework.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:221)
at
org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:297)
at org.apache.felix.framework.Felix.getService(Felix.java:3021)
at
org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:329)
at
org.apache.aries.blueprint.container.BlueprintContainerImpl.getService(BlueprintContainerImpl.java:422)
at
org.apache.aries.blueprint.container.ReferenceRecipe.getService(ReferenceRecipe.java:185)
at
org.apache.aries.blueprint.container.ReferenceRecipe.access$000(ReferenceRecipe.java:49)
at
org.apache.aries.blueprint.container.ReferenceRecipe$ServiceDispatcher.call(ReferenceRecipe.java:206)
at org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:50)
at org.apache.aries.proxy.impl.DefaultWrapper.invoke(DefaultWrapper.java:31)
at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:78)
at $Proxy87.findAccounts(Unknown Source)
at
com.cxtsoftware.p141.services.operations.AccountsResource.findAccounts(AccountsResource.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.6.0_33]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[:1.6.0_33]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_33]
at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_33]
at
org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
at
org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:167)[153:org.apache.cxf.cxf-rt-frontend-jaxrs:2.6.1]
at
com.cxtsoftware.p141.commons.web.SubjectInvoker.internalInvoke(SubjectInvoker.java:40)[208:web:1.0.0.SNAPSHOT]
at
com.cxtsoftware.p141.commons.web.SubjectInvoker.access$000(SubjectInvoker.java:23)[208:web:1.0.0.SNAPSHOT]
at
com.cxtsoftware.p141.commons.web.SubjectInvoker$1.run(SubjectInvoker.java:34)
at java.security.AccessController.doPrivileged(Native Method)[:1.6.0_33]
at javax.security.auth.Subject.doAs(Subject.java:337)[:1.6.0_33]
at
com.cxtsoftware.p141.commons.web.SubjectInvoker.invoke(SubjectInvoker.java:30)[208:web:1.0.0.SNAPSHOT]
at
org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:94)[153:org.apache.cxf.cxf-rt-frontend-jaxrs:2.6.1]
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)[140:org.apache.cxf.cxf-api:2.6.1]
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:94)[140:org.apache.cxf.cxf-api:2.6.1]
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)[140:org.apache.cxf.cxf-api:2.6.1]
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122)[140:org.apache.cxf.cxf-api:2.6.1]
at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211)[147:org.apache.cxf.cxf-rt-transports-http:2.6.1]
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)[147:org.apache.cxf.cxf-rt-transports-http:2.6.1]
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)[147:org.apache.cxf.cxf-rt-transports-http:2.6.1]
at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129)[147:org.apache.cxf.cxf-rt-transports-http:2.6.1]
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187)[147:org.apache.cxf.cxf-rt-transports-http:2.6.1]
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:115)[147:org.apache.cxf.cxf-rt-transports-http:2.6.1]
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:693)[92:org.apache.geronimo.specs.geronimo-servlet_2.5_spec:1.1.2]
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166)[147:org.apache.cxf.cxf-rt-transports-http:2.6.1]
at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)[102:org.eclipse.jetty.servlet:7.5.4.v20111024]
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:480)[102:org.eclipse.jetty.servlet:7.5.4.v20111024]
at
org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)[112:org.ops4j.pax.web.pax-web-jetty:1.0.11]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)[101:org.eclipse.jetty.security:7.5.4.v20111024]
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:117)[112:org.ops4j.pax.web.pax-web-jetty:1.0.11]
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)[102:org.eclipse.jetty.servlet:7.5.4.v20111024]
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.Server.handle(Server.java:345)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:919)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582)[96:org.eclipse.jetty.http:7.5.4.v20111024]
at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218)[96:org.eclipse.jetty.http:7.5.4.v20111024]
at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)[95:org.eclipse.jetty.io:7
.5.4.v20111024]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)[95:org.eclipse.jetty.io:7
.5.4.v20111024]
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)[94:org.eclipse.jetty.util:7.5.4.v20111024]
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)[94:org.eclipse.jetty.util:7.5.4.v20111024]
at java.lang.Thread.run(Thread.java:680)[:1.6.0_33]
Caused by: java.lang.VerifyError: (class:
com/cxtsoftware/p141/services/account/impl/$AccountServiceImpl1183864159,
method: <init> signature: (Ljava/lang/reflect/InvocationHandler;)V) Call to
wrong initialization method
at java.lang.Class.getDeclaredConstructors0(Native Method)[:1.6.0_33]
at
java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)[:1.6.0_33]
at java.lang.Class.getConstructor0(Class.java:2699)[:1.6.0_33]
at java.lang.Class.getConstructor(Class.java:1657)[:1.6.0_33]
at
org.apache.aries.proxy.impl.gen.ProxySubclassGenerator.newProxySubclassInstance(ProxySubclassGenerator.java:159)
at
org.apache.aries.proxy.impl.AsmProxyManager.createNewProxy(AsmProxyManager.java:81)
at
org.apache.aries.proxy.impl.AbstractProxyManager.createProxy(AbstractProxyManager.java:50)
at
org.apache.aries.blueprint.container.BeanRecipe.addInterceptors(BeanRecipe.java:690)
at
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:730)
at
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)
at org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:60)
at
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)
at
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)
at
org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:198)
at
org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:137)
at
org.apache.aries.blueprint.container.ServiceRecipe.createRecipe(ServiceRecipe.java:370)
at
org.apache.aries.blueprint.container.ServiceRecipe.createService(ServiceRecipe.java:278)
at
org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:248)
at
org.apache.aries.blueprint.container.ServiceRecipe.getService(ServiceRecipe.java:327)
at
org.apache.aries.blueprint.container.ServiceRecipe$TriggerServiceFactory.getService(ServiceRecipe.java:430)
at
org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:310)
... 64 more
14:41:14,040 | ERROR | rations/accounts | JAXRSExceptionMapper
| 208 - web - 1.0.0.SNAPSHOT | Error caught in ExceptionMapper
java.lang.IllegalStateException: getService() returned null for
[com.cxtsoftware.p141.services.account.AccountService]
at
org.apache.aries.blueprint.container.ReferenceRecipe.getService(ReferenceRecipe.java:188)
at
org.apache.aries.blueprint.container.ReferenceRecipe.access$000(ReferenceRecipe.java:49)
at
org.apache.aries.blueprint.container.ReferenceRecipe$ServiceDispatcher.call(ReferenceRecipe.java:206)
at org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:50)
at org.apache.aries.proxy.impl.DefaultWrapper.invoke(DefaultWrapper.java:31)
at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:78)
at $Proxy87.findAccounts(Unknown Source)
at
com.cxtsoftware.p141.services.operations.AccountsResource.findAccounts(AccountsResource.java:50)[229:operations-service:1.0.0.SNAPSHOT]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.6.0_33]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[:1.6.0_33]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_33]
at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_33]
at
org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)[140:org.apache.cxf.cxf-api:2.6.1]
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)[140:org.apache.cxf.cxf-api:2.6.1]
at
org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:167)[153:org.apache.cxf.cxf-rt-frontend-jaxrs:2.6.1]
at
com.cxtsoftware.p141.commons.web.SubjectInvoker.internalInvoke(SubjectInvoker.java:40)[208:web:1.0.0.SNAPSHOT]
at
com.cxtsoftware.p141.commons.web.SubjectInvoker.access$000(SubjectInvoker.java:23)[208:web:1.0.0.SNAPSHOT]
at
com.cxtsoftware.p141.commons.web.SubjectInvoker$1.run(SubjectInvoker.java:34)[208:web:1.0.0.SNAPSHOT]
at java.security.AccessController.doPrivileged(Native Method)[:1.6.0_33]
at javax.security.auth.Subject.doAs(Subject.java:337)[:1.6.0_33]
at
com.cxtsoftware.p141.commons.web.SubjectInvoker.invoke(SubjectInvoker.java:30)[208:web:1.0.0.SNAPSHOT]
at
org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:94)[153:org.apache.cxf.cxf-rt-frontend-jaxrs:2.6.1]
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)[140:org.apache.cxf.cxf-api:2.6.1]
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:94)[140:org.apache.cxf.cxf-api:2.6.1]
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)[140:org.apache.cxf.cxf-api:2.6.1]
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122)[140:org.apache.cxf.cxf-api:2.6.1]
at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211)[147:org.apache.cxf.cxf-rt-transports-http:2.6.1]
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)[147:org.apache.cxf.cxf-rt-transports-http:2.6.1]
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)[147:org.apache.cxf.cxf-rt-transports-http:2.6.1]
at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129)[147:org.apache.cxf.cxf-rt-transports-http:2.6.1]
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187)[147:org.apache.cxf.cxf-rt-transports-http:2.6.1]
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:115)[147:org.apache.cxf.cxf-rt-transports-http:2.6.1]
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:693)[92:org.apache.geronimo.specs.geronimo-servlet_2.5_spec:1.1.2]
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166)[147:org.apache.cxf.cxf-rt-transports-http:2.6.1]
at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)[102:org.eclipse.jetty.servlet:7.5.4.v20111024]
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:480)[102:org.eclipse.jetty.servlet:7.5.4.v20111024]
at
org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)[112:org.ops4j.pax.web.pax-web-jetty:1.0.11]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)[101:org.eclipse.jetty.security:7.5.4.v20111024]
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:117)[112:org.ops4j.pax.web.pax-web-jetty:1.0.11]
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)[102:org.eclipse.jetty.servlet:7.5.4.v20111024]
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.Server.handle(Server.java:345)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:919)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582)[96:org.eclipse.jetty.http:7.5.4.v20111024]
at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218)[96:org.eclipse.jetty.http:7.5.4.v20111024]
at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)[100:org.eclipse.jetty.server:7.5.4.v20111024]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)[95:org.eclipse.jetty.io:7
.5.4.v20111024]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)[95:org.eclipse.jetty.io:7
.5.4.v20111024]
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)[94:org.eclipse.jetty.util:7.5.4.v20111024]
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)[94:org.eclipse.jetty.util:7.5.4.v20111024]

Reply via email to