mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DIRMINA-1053) Osgi error when disposing NioSocketAccessor
Date Tue, 08 Nov 2016 16:02:58 GMT

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

Emmanuel Lecharny commented on DIRMINA-1053:
--------------------------------------------

I suspect that the problem is on your side. We do use MINA 2.0.16 in Apache Directory Studio,
which is an OSGi based IDE. 

Are you sure you import all the needed packages ?

> Osgi error when disposing NioSocketAccessor
> -------------------------------------------
>
>                 Key: DIRMINA-1053
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-1053
>             Project: MINA
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.16
>            Reporter: Antonio Maria
>
> This exception is raised when disposing a NioProcessor in osgy environments.
> {code}
> 2016-11-07 08:50:21,767 | WARN  | NioSocketAcceptor-1                               
              |           org.apache.mina.core.service.SimpleIoProcessorPool | 100 - org.apache.mina.core
- 2.0.13.1 | Failed to dispose the NioProcessor IoProcessor.
> java.lang.IllegalStateException: Unknown protocol: mvn
> 	at org.apache.felix.framework.URLHandlersStreamHandlerProxy.toExternalForm(URLHandlersStreamHandlerProxy.java:482)
> 	at org.apache.felix.framework.URLHandlersStreamHandlerProxy.toExternalForm(URLHandlersStreamHandlerProxy.java:474)
> 	at java.net.URL.toExternalForm(URL.java:929)
> 	at java.net.URL.toString(URL.java:915)
> 	at java.lang.ClassLoader.defineClassSourceLocation(ClassLoader.java:678)
> 	at java.lang.ClassLoader.defineClass(ClassLoader.java:762)
> 	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.defineClass(BundleWiringImpl.java:2370)
> 	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2154)
> 	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1542)
> 	at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)
> 	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> 	at org.apache.mina.core.polling.AbstractPollingIoProcessor.startupProcessor(AbstractPollingIoProcessor.java:438)
> 	at org.apache.mina.core.polling.AbstractPollingIoProcessor.dispose(AbstractPollingIoProcessor.java:182)
> 	at org.apache.mina.core.service.SimpleIoProcessorPool.dispose(SimpleIoProcessorPool.java:329)
> 	at org.apache.mina.core.polling.AbstractPollingIoAcceptor$Acceptor.run(AbstractPollingIoAcceptor.java:508)
> 	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at java.lang.Thread.run(Thread.java:745)
> {code}
> The root causes resides how the osgi manifest descriptor is created.
> In  mina-core/pom.xml Maven-bundle-plugin definition
> {code}
> <Export-Package>
>    org.apache.mina.core.polling;version=${project.version};-noimport:=true,
> </Export-Package>
> {code}
> Therefore: org.apache.mina.core.polling.AbstractPollingIoProcessor is exported, but this
class has a private internal class AbstractPollingIoProcessor.Processor that should be exported
as well. But It's kind of contraction to export a private class, so the osgi classpath mechanism
fails with IllegalState.
> One way to approach this problem is changing the pom.xml so:
> {code}
> ...
> <Private-Package>
>    org.apache.mina.core.polling
> </Private-Package>
> ...
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message