[ 
https://issues.apache.org/jira/browse/ARIES-1965?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17024492#comment-17024492
 ] 

Markus Rathgeb commented on ARIES-1965:
---------------------------------------

Hi,

I should give you more details. The runtime contains several REST endpoints 
that has been converted to use JAX-RS Whiteboard specification.

There is also another part of code that does not use JAX-RS but a simple HTTP 
servlet and it handles a GET request. There has been no whiteboard involved in 
this code path. The code path reads an XML file, process / rewrite its content 
and transfer the content as response of the GET request.

I worked around the problem by forcing the usage of a specific XML input and 
output for the factory.

But I still think adding a whiteboard spec implementation should not change 
default XML factory implementation and so touch the whole OSGi runtime (other 
non whiteboard code). And if it change the defaults, they should work. ;)

> XMLInputFactory gets broken
> ---------------------------
>
>                 Key: ARIES-1965
>                 URL: https://issues.apache.org/jira/browse/ARIES-1965
>             Project: Aries
>          Issue Type: Bug
>          Components: jax-rs-whiteboard
>    Affects Versions: jax-rs-whiteboard-1.0.5
>            Reporter: Markus Rathgeb
>            Priority: Major
>
> In my code I used the following line:
> {code:java}
> final XMLInputFactory inputFactory = XMLInputFactory.newInstance();{code}
> After adding the Aires JAX-RS Whiteboard this does not work anymore but 
> raises a service configuration error.
> {noformat}
> java.util.ServiceConfigurationError: javax.xml.stream.XMLInputFactory: 
> Provider com.ctc.wstx.stax.WstxInputFactory not found
>       at java.util.ServiceLoader.fail(ServiceLoader.java:239)
>       at java.util.ServiceLoader.access$300(ServiceLoader.java:185)
>       at 
> java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:372)
>       at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
>       at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
>       at 
> javax.xml.stream.$FactoryFinder.lambda$findServiceProvider$3($FactoryFinder.java:186)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at 
> javax.xml.stream.$FactoryFinder.findServiceProvider($FactoryFinder.java:181)
>       at javax.xml.stream.$FactoryFinder.find($FactoryFinder.java:164)
>       at javax.xml.stream.$FactoryFinder.find($FactoryFinder.java:106)
>       at javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:66)
>       at ... custom code ...
>       at ... custom code ...
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:695)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
>       at 
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852)
>       at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
>       at 
> org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
>       at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1591)
>       at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:542)
>       at 
> org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
>       at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
>       at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
>       at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307)
>       at 
> org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
>       at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482)
>       at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>       at 
> org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)
>       at 
> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:772)
>       at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>       at org.eclipse.jetty.server.Server.handle(Server.java:494)
>       at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374)
>       at 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268)
>       at 
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
>       at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>       at 
> org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:426)
>       at 
> org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:320)
>       at 
> org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:158)
>       at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>       at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
>       at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
>       at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
>       at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
>       at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
>       at 
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367)
>       at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782)
>       at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918)
>       at java.lang.Thread.run(Thread.java:748){noformat}
> I checked the classes of all bundles in the runtime which one contains 
> com.ctc.wstx.stax.... ones.
> It is the one with BSN "org.apache.aries.jax.rs.whiteboard".
>  
> So, I am assume some bundled stuff in your code base changes the default XML 
> event factory.
> But perhaps not correctly because the provider is not found.
>  
> I does not expect that the default XML providers are touched by such an 
> specification implementation at all, but I assume no one cares as long as it 
> is still working.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to