[
https://issues.apache.org/jira/browse/DIRMINA-1053?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15647272#comment-15647272
]
Antonio Maria edited comment on DIRMINA-1053 at 11/8/16 11:55 AM:
------------------------------------------------------------------
Sorry for confusing you, and I am also confused, and driving crazy. As a recall:
My initial problem was to get rid of that I found in mina 2.0.16
{code}
java.lang.IllegalStateException: Unknown protocol: mvn
{code}
I had no clue what's was causing that, and I tried few strategies. I noticed
later on, that everytime I made new adjustments, I need clean my local repo to
take changes into used. Sometimes I forgot it, and I thought that I had fix
something, but not really. Apologies for that.
1. You are absolutely right that moving to Private Packages all inner classes
is not the way to go, as general case.
2. My purposals regarding changing the Export-Package using wildcard. It's
doesn't cause any differences. The Manifest Result is the same.
3. I moved org.apache.mina.core.polling package to Private-Package and
sometimes seems to work.
4. AbstractPollingIoAcceptor.Acceptor visibility is changed to protected
instead of private and sometimes seems to work.
So, to my taste, it's just quite a random error. I don't know if it's a mina
issue after all.
was (Author: antoniomaria):
Sorry for confusing you, and I am also confused, and driving crazy. As a recall:
My initial problem was to get rid of that I found in mina 2.0.16
{code}
java.lang.IllegalStateException: Unknown protocol: mvn
{code}
I had no clue what's was causing that, and I tried few strategies. I noticed
later on, that everytime I made new adjustments, I need clean my local repo to
take changes into used. Sometimes I forgot it, and I thought that I had fix
something, but not really. Apologies for that.
1. You are absolutely right that moving to Private Packages all inner classes
is not the way to go, as general case.
2. My purposals regarding changing the Export-Package using wildcard. It's
doesn't cause any differences. The Manifest Result is the same.
3. Inexplicably I managed to get that exception way, by moving
org.apache.mina.core.polling package to Private-Package.
4. Inexplicable as well, the error disappear when y
AbstractPollingIoAcceptor.Acceptor visibility is changed to protected instead
of private.
Only statements 3 and 4 seems to work, but I don't know why.
> 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)