maven-pax-provision + равноденствие: java.lang.Long нельзя привести к java.lang.String

я испытываю какое-то странное, невоспроизводимое поведение.

Я разрабатываю приложение OSGi, используя плагин maven-bundle-plugin и плагин maven-pax-plugin для его запуска в Apache Felix и Eclipse Equinox.

С сегодняшнего дня я иногда получаю следующую ошибку, когда пытаюсь запустить или остановить пакет, например.

фунт работает нормально

Выход (выдержка):

0|Active     |    0|OSGi System Bundle (3.8.1.v20120830-144521)
1|Active     |    1|Console plug-in (1.0.0.v20120522-1841)
2|Active     |    1|Apache Felix Gogo Command (0.12.0)
3|Active     |    1|Apache Felix Gogo Runtime (0.10.0)
4|Active     |    1|Apache Felix Gogo Shell (0.10.0)
5|Active     |    5|OSGi R4 Core Bundle (4.1.0)
6|Active     |    5|slf4j-api (1.6.6)
7|Active     |    5|Logback Core Module (1.0.7)
8|Active     |    5|Logback Classic Module (1.0.7)

но когда я пытаюсь остановить 6, например, я получаю следующее исключение:

g! stop 6
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String
at org.eclipse.equinox.console.commands.EquinoxCommandsConverter.convert(EquinoxCommandsConverter.java:61)
at org.apache.felix.gogo.runtime.CommandProcessorImpl.convert(CommandProcessorImpl.java:254)
at org.apache.felix.gogo.runtime.CommandSessionImpl.convert(CommandSessionImpl.java:374)
at org.apache.felix.gogo.runtime.Reflective.coerce(Reflective.java:389)
at org.apache.felix.gogo.runtime.Reflective.coerce(Reflective.java:310)
at org.apache.felix.gogo.runtime.Reflective.invoke(Reflective.java:110)
at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477)
at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403)
at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)
at org.apache.felix.gogo.shell.Console.run(Console.java:62)
at org.apache.felix.gogo.shell.Shell.console(Shell.java:203)
at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:128)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.felix.gogo.runtime.Reflective.invoke(Reflective.java:137)
at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477)
at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403)
at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)
at org.apache.felix.gogo.shell.Activator.run(Activator.java:75)
at java.lang.Thread.run(Thread.java:722)

Это происходит с каждым Bundle. В Felix hard все работает отлично.

Любые идеи?


person hueck    schedule 05.12.2012    source источник


Ответы (1)


Это ошибка внутри пакета команд равноденствия. Он не может правильно преобразовать тип. Среда выполнения gogo печатает printStackTrace и правильно выполняет команду с помощью команд felix.

person Dmytro Pishchukhin    schedule 05.12.2012