[
https://issues.apache.org/jira/browse/TUSCANY-2083?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rajini Sivaram closed TUSCANY-2083.
-----------------------------------
Resolution: Fixed
GroovyClassLoader is now created using the Tuscany classloader as parent since
it is used to find Groovy classes, and not contribution classes. This change
will not have any effect during normal Tuscany run outside of OSGi since
Tuscany classloader will be the TCCL.
> GroovyClassLoader throws NoClassDefFoundError when Tuscany is run inside OSGi
> -----------------------------------------------------------------------------
>
> Key: TUSCANY-2083
> URL: https://issues.apache.org/jira/browse/TUSCANY-2083
> Project: Tuscany
> Issue Type: Bug
> Components: Java SCA Groovy Implementation Extension
> Affects Versions: Java-SCA-1.1
> Reporter: Rajini Sivaram
> Assignee: Rajini Sivaram
> Fix For: Java-SCA-1.2
>
>
> When Tuscany is run under OSGi, calculator-script sample throws the following
> exception:
> java.lang.NoClassDefFoundError: groovy.lang.Script
> at java.lang.ClassLoader.defineClassImpl(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:264)
> at java.security.SecureClassLoader.defineClass(Unknown Source)
> at groovy.lang.GroovyClassLoader.access$300(GroovyClassLoader.java:57)
> at
> groovy.lang.GroovyClassLoader$ClassCollector.createClass(GroovyClassLoader.java:445)
> at
> groovy.lang.GroovyClassLoader$ClassCollector.onClassNode(GroovyClassLoader.java:463)
> at
> groovy.lang.GroovyClassLoader$ClassCollector.call(GroovyClassLoader.java:467)
> at
> org.codehaus.groovy.control.CompilationUnit$10.call(CompilationUnit.java:701)
> at
> org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:885)
> at
> org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:436)
> at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:277)
> at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:248)
> at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:243)
> at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:225)
> at
> org.apache.tuscany.sca.contribution.groovy.GroovyModelResolver.addModel(GroovyModelResolver.java:55)
> at
> org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver.addModel(ExtensibleModelResolver.java:132)
> at
> org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.processReadPhase(ContributionServiceImpl.java:454)
> at
> org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.addContribution(ContributionServiceImpl.java:386)
> at
> org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.contribute(ContributionServiceImpl.java:203)
> at
> org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.addContribution(DefaultSCADomain.java:272)
> at
> org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(DefaultSCADomain.java:158)
> at
> org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.<init>(DefaultSCADomain.java:109)
> at
> org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:231)
> at
> org.apache.tuscany.sca.host.embedded.SCADomain.newInstance(SCADomain.java:69)
> at calculator.CalculatorTestCase.setUp(CalculatorTestCase.java:35)
> GroovyModelResolver creates a GroovyClassLoader with the thread context
> classloader as its parent. The class is already loaded from the 3rd party
> OSGi bundle and this bundle classloader is part of TCCL.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]