[jira] [Commented] (ARIES-1801) SPI Fly does not work with a dynamic class object
[ https://issues.apache.org/jira/browse/ARIES-1801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489313#comment-16489313 ] Björn Kautler commented on ARIES-1801: -- I don't know, it was just a suspicion that this was the cause. Maybe debug into the code and see? Put some breakpoints to the usages of {{lastLDCType}} and see where it gets set. For me it was {{null}} and thus the exception occurred. > SPI Fly does not work with a dynamic class object > - > > Key: ARIES-1801 > URL: https://issues.apache.org/jira/browse/ARIES-1801 > Project: Aries > Issue Type: Bug >Affects Versions: 1.0 >Reporter: Björn Kautler >Priority: Major > > SLF4J changes in version 1.8 how implementations are looked up to > {{java.util.ServiceLoader}}. > In our codebase we dynamically search for an SLF4J implementation and use a > default logger if none is found. > To adapt to the new mechanism but remain compatible with SLF4J 1.7 I added to > our codebase > {code:java} > try { > // post-1.8 mechanism > Class slf4jServiceProviderClass = > Class.forName("org.slf4j.spi.SLF4JServiceProvider"); > if (ServiceLoader.load(slf4jServiceProviderClass).iterator().hasNext()) { > noLogger.set(false); > return true; > } > } catch (ClassNotFoundException e) { > // ignore > } > {code} > If I now use the {{org.apache.aries.spifly.dynamic.bundle}} 1.0.10, I get an > exception as SPI Fly seemingly only supports class constants. While > traversing the ASM tree it remembers the last class constant seen and uses > that to transform the {{load}} call. > Here the exception I get: > {code:java} > java.lang.ClassFormatError: Weaving hook failed. > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.transformClass(BundleWiringImpl.java:2479) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2152) > at > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1607) > at > org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at > org.javacord.core.util.logging.ExceptionLoggerDelegateImpl.(ExceptionLoggerDelegateImpl.java:20) > at > org.javacord.core.util.DelegateFactoryDelegateImpl.createExceptionLoggerDelegate(DelegateFactoryDelegateImpl.java:180) > at > org.javacord.api.util.internal.DelegateFactory.(DelegateFactory.java:74) > at org.javacord.api.DiscordApiBuilder.(DiscordApiBuilder.java:20) > at net.kautler.test.osgi.OsgiTest.start(OsgiTest.java:17) > at > org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697) > at org.apache.felix.framework.Felix.activateBundle(Felix.java:2240) > at org.apache.felix.framework.Felix.startBundle(Felix.java:2146) > at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1373) > at > org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.lang.IllegalArgumentException: value null > at org.objectweb.asm.ClassWriter.newConstItem(ClassWriter.java:1057) > at org.objectweb.asm.MethodWriter.visitLdcInsn(MethodWriter.java:1126) > at > org.apache.aries.spifly.weaver.TCCLSetterVisitor$TCCLSetterMethodVisitor.visitMethodInsn(TCCLSetterVisitor.java:194) > at org.objectweb.asm.ClassReader.readCode(ClassReader.java:1416) > at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1017) > at org.objectweb.asm.ClassReader.accept(ClassReader.java:693) > at org.objectweb.asm.ClassReader.accept(ClassReader.java:506) > at > org.apache.aries.spifly.dynamic.ClientWeavingHook.weave(ClientWeavingHook.java:61) > at > org.apache.felix.framework.util.SecureAction.invokeWeavingHook(SecureAction.java:1203) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.transformClass(BundleWiringImpl.java:2465) > ... 16 more > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARIES-1801) SPI Fly does not work with a dynamic class object
[ https://issues.apache.org/jira/browse/ARIES-1801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489205#comment-16489205 ] David Bosschaert commented on ARIES-1801: - Hmm, but when I run the test with the two lines you quoted commented out, the test still passes. Or am I missing something? > SPI Fly does not work with a dynamic class object > - > > Key: ARIES-1801 > URL: https://issues.apache.org/jira/browse/ARIES-1801 > Project: Aries > Issue Type: Bug >Affects Versions: 1.0 >Reporter: Björn Kautler >Priority: Major > > SLF4J changes in version 1.8 how implementations are looked up to > {{java.util.ServiceLoader}}. > In our codebase we dynamically search for an SLF4J implementation and use a > default logger if none is found. > To adapt to the new mechanism but remain compatible with SLF4J 1.7 I added to > our codebase > {code:java} > try { > // post-1.8 mechanism > Class slf4jServiceProviderClass = > Class.forName("org.slf4j.spi.SLF4JServiceProvider"); > if (ServiceLoader.load(slf4jServiceProviderClass).iterator().hasNext()) { > noLogger.set(false); > return true; > } > } catch (ClassNotFoundException e) { > // ignore > } > {code} > If I now use the {{org.apache.aries.spifly.dynamic.bundle}} 1.0.10, I get an > exception as SPI Fly seemingly only supports class constants. While > traversing the ASM tree it remembers the last class constant seen and uses > that to transform the {{load}} call. > Here the exception I get: > {code:java} > java.lang.ClassFormatError: Weaving hook failed. > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.transformClass(BundleWiringImpl.java:2479) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2152) > at > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1607) > at > org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at > org.javacord.core.util.logging.ExceptionLoggerDelegateImpl.(ExceptionLoggerDelegateImpl.java:20) > at > org.javacord.core.util.DelegateFactoryDelegateImpl.createExceptionLoggerDelegate(DelegateFactoryDelegateImpl.java:180) > at > org.javacord.api.util.internal.DelegateFactory.(DelegateFactory.java:74) > at org.javacord.api.DiscordApiBuilder.(DiscordApiBuilder.java:20) > at net.kautler.test.osgi.OsgiTest.start(OsgiTest.java:17) > at > org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697) > at org.apache.felix.framework.Felix.activateBundle(Felix.java:2240) > at org.apache.felix.framework.Felix.startBundle(Felix.java:2146) > at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1373) > at > org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.lang.IllegalArgumentException: value null > at org.objectweb.asm.ClassWriter.newConstItem(ClassWriter.java:1057) > at org.objectweb.asm.MethodWriter.visitLdcInsn(MethodWriter.java:1126) > at > org.apache.aries.spifly.weaver.TCCLSetterVisitor$TCCLSetterMethodVisitor.visitMethodInsn(TCCLSetterVisitor.java:194) > at org.objectweb.asm.ClassReader.readCode(ClassReader.java:1416) > at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1017) > at org.objectweb.asm.ClassReader.accept(ClassReader.java:693) > at org.objectweb.asm.ClassReader.accept(ClassReader.java:506) > at > org.apache.aries.spifly.dynamic.ClientWeavingHook.weave(ClientWeavingHook.java:61) > at > org.apache.felix.framework.util.SecureAction.invokeWeavingHook(SecureAction.java:1203) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.transformClass(BundleWiringImpl.java:2465) > ... 16 more > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARIES-619) Fix SPI-FLY and SUBSYSTEM tio use release by bundle scheme
[ https://issues.apache.org/jira/browse/ARIES-619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489199#comment-16489199 ] David Bosschaert commented on ARIES-619: This is a very old issue and I'm not sure it's still relevant. [~zoe] [~hughesj] do you think we still need this, or can the issue be closed? > Fix SPI-FLY and SUBSYSTEM tio use release by bundle scheme > -- > > Key: ARIES-619 > URL: https://issues.apache.org/jira/browse/ARIES-619 > Project: Aries > Issue Type: Bug >Reporter: zoe slattery >Assignee: Jeremy Hughes >Priority: Major > > In summary: > Split parent and reactor poms (Reactor just contains a list of modules, no > SCM element) > Add packageinfo files for package export versions > Make each bundle pom depend on the 0.4 released parent (if possible) > Switch depenedencies to point at released versions (where possible) > Add an SCM element to each modules pom. > Fix build warnings caused by default settings for maven-bundle-plugin -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARIES-1470) java.util.ServiceConfigurationError
[ https://issues.apache.org/jira/browse/ARIES-1470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489198#comment-16489198 ] David Bosschaert commented on ARIES-1470: - [~setya] Is this issue still relevant, or can we close it? > java.util.ServiceConfigurationError > --- > > Key: ARIES-1470 > URL: https://issues.apache.org/jira/browse/ARIES-1470 > Project: Aries > Issue Type: Bug > Components: SPI Fly >Affects Versions: spifly-1.0.6 > Environment: Eclipse Virgo Jetty Server 3.6.4, Spring Framework 3.2.5 >Reporter: Setya >Priority: Major > > Deploying application that relies on 3rd party framework that's using > ServiceLoader into Eclipse Virgo intermittenly causes the following exception > to be thrown: > Caused by: java.util.ServiceConfigurationError: > org.axonframework.serializer.ContentTypeConverter: Provider > org.axonframework.serializer.converters.ByteArrayToInputStreamConverter not a > subtype > at java.util.ServiceLoader.fail(ServiceLoader.java:231) > at java.util.ServiceLoader.access$300(ServiceLoader.java:181) > at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:369) > at java.util.ServiceLoader$1.next(ServiceLoader.java:445) > at > org.axonframework.serializer.ChainingConverterFactory.(ChainingConverterFactory.java:51) > at > org.axonframework.serializer.AbstractXStreamSerializer.(AbstractXStreamSerializer.java:106) > at > org.axonframework.serializer.AbstractXStreamSerializer.(AbstractXStreamSerializer.java:81) > at > org.axonframework.serializer.AbstractXStreamSerializer.(AbstractXStreamSerializer.java:70) > at > org.axonframework.serializer.xml.XStreamSerializer.(XStreamSerializer.java:53) > at > org.axonframework.contextsupport.spring.FileSystemEventStoreBeanDefinitionParser.doParse(FileSystemEventStoreBeanDefinitionParser.java:76) > at > org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser.parseInternal(AbstractSingleBeanDefinitionParser.java:85) > at > org.springframework.beans.factory.xml.AbstractBeanDefinitionParser.parse(AbstractBeanDefinitionParser.java:59) > at > org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73) > at > org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438) > at > org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428) > at > org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:195) > at > org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139) > at > org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108) > at > org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493) > at > org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390) > ... 21 common frames omitted > Have tried to weave static bundle using SPI Fly, but the problem persists. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Closed] (ARIES-938) Proposal: SPI Catch (plug-in discovery for both plain Java >=5 and OSGi)
[ https://issues.apache.org/jira/browse/ARIES-938?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] David Bosschaert closed ARIES-938. -- Resolution: Won't Do > Proposal: SPI Catch (plug-in discovery for both plain Java >=5 and OSGi) > > > Key: ARIES-938 > URL: https://issues.apache.org/jira/browse/ARIES-938 > Project: Aries > Issue Type: New Feature >Reporter: Jeremias Maerki >Priority: Major > Attachments: spi-catch.zip > > > As discussed in http://aries.markmail.org/thread/i2vgjryf5caitqmy I propose a > new component for Apache Aries, code-named "SPI Catch", as a complement to > SPI Fly. > SPI Catch provides an abstraction to plug-in discovery that for libraries > that make use of the JAR service provider mechanism (through > META-INF/services) to discover plug-ins. It shields the client from OSGi > specifics but all the same offering the dynamics provided through the OSGi > service registry. It is an deal counter-part to Apache Aries SPI Fly which is > used to publish SPI providers as OSGi services. And finally, another focus is > on preserving the runnability totally outside of OSGi. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Comment Edited] (ARIES-1801) SPI Fly does not work with a dynamic class object
[ https://issues.apache.org/jira/browse/ARIES-1801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489193#comment-16489193 ] Björn Kautler edited comment on ARIES-1801 at 5/24/18 3:16 PM: --- Maybe the {code:java} // Try to irritate TCCLSetterVisitor by forcing an (irrelevant) LDC. @SuppressWarnings("unused") Class causeLDC = String.class; {code} is the difference? In my case there is no last class constant, so the value is {{null}} and you get the {{IAE}}. In that case the last class constant is there, it just has nothing to do with the loaded service. was (Author: vampire): Maybe the {code:java} // Try to irritate TCCLSetterVisitor by forcing an (irrelevant) LDC. @SuppressWarnings("unused") Class causeLDC = String.class; {code} is the difference? In my case there is no last class constant, so the value is {{null}} and you get the {{IAE}}. In that case the last class constant is there, it just has nothing to do with the loaded service. > SPI Fly does not work with a dynamic class object > - > > Key: ARIES-1801 > URL: https://issues.apache.org/jira/browse/ARIES-1801 > Project: Aries > Issue Type: Bug >Affects Versions: 1.0 >Reporter: Björn Kautler >Priority: Major > > SLF4J changes in version 1.8 how implementations are looked up to > {{java.util.ServiceLoader}}. > In our codebase we dynamically search for an SLF4J implementation and use a > default logger if none is found. > To adapt to the new mechanism but remain compatible with SLF4J 1.7 I added to > our codebase > {code:java} > try { > // post-1.8 mechanism > Class slf4jServiceProviderClass = > Class.forName("org.slf4j.spi.SLF4JServiceProvider"); > if (ServiceLoader.load(slf4jServiceProviderClass).iterator().hasNext()) { > noLogger.set(false); > return true; > } > } catch (ClassNotFoundException e) { > // ignore > } > {code} > If I now use the {{org.apache.aries.spifly.dynamic.bundle}} 1.0.10, I get an > exception as SPI Fly seemingly only supports class constants. While > traversing the ASM tree it remembers the last class constant seen and uses > that to transform the {{load}} call. > Here the exception I get: > {code:java} > java.lang.ClassFormatError: Weaving hook failed. > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.transformClass(BundleWiringImpl.java:2479) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2152) > at > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1607) > at > org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at > org.javacord.core.util.logging.ExceptionLoggerDelegateImpl.(ExceptionLoggerDelegateImpl.java:20) > at > org.javacord.core.util.DelegateFactoryDelegateImpl.createExceptionLoggerDelegate(DelegateFactoryDelegateImpl.java:180) > at > org.javacord.api.util.internal.DelegateFactory.(DelegateFactory.java:74) > at org.javacord.api.DiscordApiBuilder.(DiscordApiBuilder.java:20) > at net.kautler.test.osgi.OsgiTest.start(OsgiTest.java:17) > at > org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697) > at org.apache.felix.framework.Felix.activateBundle(Felix.java:2240) > at org.apache.felix.framework.Felix.startBundle(Felix.java:2146) > at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1373) > at > org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.lang.IllegalArgumentException: value null > at org.objectweb.asm.ClassWriter.newConstItem(ClassWriter.java:1057) > at org.objectweb.asm.MethodWriter.visitLdcInsn(MethodWriter.java:1126) > at > org.apache.aries.spifly.weaver.TCCLSetterVisitor$TCCLSetterMethodVisitor.visitMethodInsn(TCCLSetterVisitor.java:194) > at org.objectweb.asm.ClassReader.readCode(ClassReader.java:1416) > at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1017) > at org.objectweb.asm.ClassReader.accept(ClassReader.java:693) > at org.objectweb.asm.ClassReader.accept(ClassReader.java:506) > at > org.apache.aries.spifly.dynamic.ClientWeavingHook.weave(ClientWeavingHook.java:61) > at > org.apache.felix.framework.util.SecureAction.invokeWeavingHook(SecureAction.java:1203) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.transformClass(BundleWiringImpl.java:2465) >
[jira] [Commented] (ARIES-1801) SPI Fly does not work with a dynamic class object
[ https://issues.apache.org/jira/browse/ARIES-1801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489193#comment-16489193 ] Björn Kautler commented on ARIES-1801: -- Maybe the {code:java} // Try to irritate TCCLSetterVisitor by forcing an (irrelevant) LDC. @SuppressWarnings("unused") Class causeLDC = String.class; {code} is the difference? In my case there is no last class constant, so the value is {{null}} and you get the {{IAE}}. In that case the last class constant is there, it just has nothing to do with the loaded service. > SPI Fly does not work with a dynamic class object > - > > Key: ARIES-1801 > URL: https://issues.apache.org/jira/browse/ARIES-1801 > Project: Aries > Issue Type: Bug >Affects Versions: 1.0 >Reporter: Björn Kautler >Priority: Major > > SLF4J changes in version 1.8 how implementations are looked up to > {{java.util.ServiceLoader}}. > In our codebase we dynamically search for an SLF4J implementation and use a > default logger if none is found. > To adapt to the new mechanism but remain compatible with SLF4J 1.7 I added to > our codebase > {code:java} > try { > // post-1.8 mechanism > Class slf4jServiceProviderClass = > Class.forName("org.slf4j.spi.SLF4JServiceProvider"); > if (ServiceLoader.load(slf4jServiceProviderClass).iterator().hasNext()) { > noLogger.set(false); > return true; > } > } catch (ClassNotFoundException e) { > // ignore > } > {code} > If I now use the {{org.apache.aries.spifly.dynamic.bundle}} 1.0.10, I get an > exception as SPI Fly seemingly only supports class constants. While > traversing the ASM tree it remembers the last class constant seen and uses > that to transform the {{load}} call. > Here the exception I get: > {code:java} > java.lang.ClassFormatError: Weaving hook failed. > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.transformClass(BundleWiringImpl.java:2479) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2152) > at > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1607) > at > org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at > org.javacord.core.util.logging.ExceptionLoggerDelegateImpl.(ExceptionLoggerDelegateImpl.java:20) > at > org.javacord.core.util.DelegateFactoryDelegateImpl.createExceptionLoggerDelegate(DelegateFactoryDelegateImpl.java:180) > at > org.javacord.api.util.internal.DelegateFactory.(DelegateFactory.java:74) > at org.javacord.api.DiscordApiBuilder.(DiscordApiBuilder.java:20) > at net.kautler.test.osgi.OsgiTest.start(OsgiTest.java:17) > at > org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697) > at org.apache.felix.framework.Felix.activateBundle(Felix.java:2240) > at org.apache.felix.framework.Felix.startBundle(Felix.java:2146) > at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1373) > at > org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.lang.IllegalArgumentException: value null > at org.objectweb.asm.ClassWriter.newConstItem(ClassWriter.java:1057) > at org.objectweb.asm.MethodWriter.visitLdcInsn(MethodWriter.java:1126) > at > org.apache.aries.spifly.weaver.TCCLSetterVisitor$TCCLSetterMethodVisitor.visitMethodInsn(TCCLSetterVisitor.java:194) > at org.objectweb.asm.ClassReader.readCode(ClassReader.java:1416) > at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1017) > at org.objectweb.asm.ClassReader.accept(ClassReader.java:693) > at org.objectweb.asm.ClassReader.accept(ClassReader.java:506) > at > org.apache.aries.spifly.dynamic.ClientWeavingHook.weave(ClientWeavingHook.java:61) > at > org.apache.felix.framework.util.SecureAction.invokeWeavingHook(SecureAction.java:1203) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.transformClass(BundleWiringImpl.java:2465) > ... 16 more > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARIES-1801) SPI Fly does not work with a dynamic class object
[ https://issues.apache.org/jira/browse/ARIES-1801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16489175#comment-16489175 ] David Bosschaert commented on ARIES-1801: - Interestingly enough, there seems to be a test for this use case: The method testClientSpecifyingDifferentMethodsLimitedToDifferentProviders() in https://svn.apache.org/repos/asf/aries/trunk/spi-fly/spi-fly-dynamic-bundle/src/test/java/org/apache/aries/spifly/dynamic/ClientWeavingHookTest.java internally exercises the testService() method in https://svn.apache.org/repos/asf/aries/trunk/spi-fly/spi-fly-dynamic-bundle/src/test/java/org/apache/aries/spifly/dynamic/TestClient.java which passes a Class object which is a parameter to the method to ServiceLoader.load() So I guess the question is: how is the use-case filed in this issue different? > SPI Fly does not work with a dynamic class object > - > > Key: ARIES-1801 > URL: https://issues.apache.org/jira/browse/ARIES-1801 > Project: Aries > Issue Type: Bug >Affects Versions: 1.0 >Reporter: Björn Kautler >Priority: Major > > SLF4J changes in version 1.8 how implementations are looked up to > {{java.util.ServiceLoader}}. > In our codebase we dynamically search for an SLF4J implementation and use a > default logger if none is found. > To adapt to the new mechanism but remain compatible with SLF4J 1.7 I added to > our codebase > {code:java} > try { > // post-1.8 mechanism > Class slf4jServiceProviderClass = > Class.forName("org.slf4j.spi.SLF4JServiceProvider"); > if (ServiceLoader.load(slf4jServiceProviderClass).iterator().hasNext()) { > noLogger.set(false); > return true; > } > } catch (ClassNotFoundException e) { > // ignore > } > {code} > If I now use the {{org.apache.aries.spifly.dynamic.bundle}} 1.0.10, I get an > exception as SPI Fly seemingly only supports class constants. While > traversing the ASM tree it remembers the last class constant seen and uses > that to transform the {{load}} call. > Here the exception I get: > {code:java} > java.lang.ClassFormatError: Weaving hook failed. > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.transformClass(BundleWiringImpl.java:2479) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2152) > at > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1607) > at > org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at > org.javacord.core.util.logging.ExceptionLoggerDelegateImpl.(ExceptionLoggerDelegateImpl.java:20) > at > org.javacord.core.util.DelegateFactoryDelegateImpl.createExceptionLoggerDelegate(DelegateFactoryDelegateImpl.java:180) > at > org.javacord.api.util.internal.DelegateFactory.(DelegateFactory.java:74) > at org.javacord.api.DiscordApiBuilder.(DiscordApiBuilder.java:20) > at net.kautler.test.osgi.OsgiTest.start(OsgiTest.java:17) > at > org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697) > at org.apache.felix.framework.Felix.activateBundle(Felix.java:2240) > at org.apache.felix.framework.Felix.startBundle(Felix.java:2146) > at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1373) > at > org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.lang.IllegalArgumentException: value null > at org.objectweb.asm.ClassWriter.newConstItem(ClassWriter.java:1057) > at org.objectweb.asm.MethodWriter.visitLdcInsn(MethodWriter.java:1126) > at > org.apache.aries.spifly.weaver.TCCLSetterVisitor$TCCLSetterMethodVisitor.visitMethodInsn(TCCLSetterVisitor.java:194) > at org.objectweb.asm.ClassReader.readCode(ClassReader.java:1416) > at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1017) > at org.objectweb.asm.ClassReader.accept(ClassReader.java:693) > at org.objectweb.asm.ClassReader.accept(ClassReader.java:506) > at > org.apache.aries.spifly.dynamic.ClientWeavingHook.weave(ClientWeavingHook.java:61) > at > org.apache.felix.framework.util.SecureAction.invokeWeavingHook(SecureAction.java:1203) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.transformClass(BundleWiringImpl.java:2465) > ... 16 more > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARIES-1803) Upgrade proxy to ASM 6.1.1
[ https://issues.apache.org/jira/browse/ARIES-1803?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16488896#comment-16488896 ] ASF GitHub Bot commented on ARIES-1803: --- GitHub user jbonofre opened a pull request: https://github.com/apache/aries/pull/84 [ARIES-1803] Upgrade proxy to ASM 6.1.1 You can merge this pull request into a Git repository by running: $ git pull https://github.com/jbonofre/aries ARIES-1803 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/aries/pull/84.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #84 commit c3e65403390c8217dd5da40235ae0bd2cc28fdc3 Author: Jean-Baptiste OnofréDate: 2018-05-24T12:28:43Z [ARIES-1803] Upgrade proxy to ASM 6.1.1 > Upgrade proxy to ASM 6.1.1 > -- > > Key: ARIES-1803 > URL: https://issues.apache.org/jira/browse/ARIES-1803 > Project: Aries > Issue Type: Dependency upgrade > Components: Proxy >Reporter: Jean-Baptiste Onofré >Assignee: Jean-Baptiste Onofré >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[GitHub] aries pull request #84: [ARIES-1803] Upgrade proxy to ASM 6.1.1
GitHub user jbonofre opened a pull request: https://github.com/apache/aries/pull/84 [ARIES-1803] Upgrade proxy to ASM 6.1.1 You can merge this pull request into a Git repository by running: $ git pull https://github.com/jbonofre/aries ARIES-1803 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/aries/pull/84.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #84 commit c3e65403390c8217dd5da40235ae0bd2cc28fdc3 Author: Jean-Baptiste OnofréDate: 2018-05-24T12:28:43Z [ARIES-1803] Upgrade proxy to ASM 6.1.1 ---
[jira] [Created] (ARIES-1803) Upgrade proxy to ASM 6.1.1
Jean-Baptiste Onofré created ARIES-1803: --- Summary: Upgrade proxy to ASM 6.1.1 Key: ARIES-1803 URL: https://issues.apache.org/jira/browse/ARIES-1803 Project: Aries Issue Type: Dependency upgrade Components: Proxy Reporter: Jean-Baptiste Onofré Assignee: Jean-Baptiste Onofré -- This message was sent by Atlassian JIRA (v7.6.3#76005)