Bug#733234: Groovy fails with groovy.lang.MissingMethodException
Bálint Réczey
balint at balintreczey.hu
Fri Dec 27 15:28:39 UTC 2013
Package: groovy
Version: 1.8.6-1
Severity: normal
Hi,
Using groovy to generate code in XBMC build fails.
Steps to reproduce:
apt-get -t experimental groovy
apt-get build-dep xbmc
dget http://http.debian.net/debian/pool/main/x/xbmc/xbmc_12.3+dfsg1-1.dsc
# if extraction fails
dpkg-source -x xbmc_12.3+dfsg1-1.dsc
cd xbmc-12.3+dfsg1/
sed -i 's/groovyc/# groovyc/' codegenerator.mk
make -f codegenerator.mk
Result:
...
groovy -cp "/usr/share/java/groovy-all-1.8.6.jar:/usr/share/java/commons-lang-2.6.jar:./tools/codegenerator:xbmc/interfaces/python"
\
./tools/codegenerator/Generator.groovy
xbmc/interfaces/python/generated/AddonModuleXbmc.xml
xbmc/interfaces/python/PythonSwig.cpp.template
xbmc/interfaces/python/generated/AddonModuleXbmc.cpp
xbmc/interfaces/python/generated/doxygenxml
[xbmc/interfaces/python/generated/AddonModuleXbmc.xml,
xbmc/interfaces/python/PythonSwig.cpp.template,
xbmc/interfaces/python/generated/AddonModuleXbmc.cpp,
xbmc/interfaces/python/generated/doxygenxml]
Caught: groovy.lang.MissingMethodException: No signature of method:
java.lang.String.name() is applicable for argument types: () values:
[]
Possible solutions: take(int), any(), any(groovy.lang.Closure),
wait(), size(), next()
groovy.lang.MissingMethodException: No signature of method:
java.lang.String.name() is applicable for argument types: () values:
[]
Possible solutions: take(int), any(), any(groovy.lang.Closure),
wait(), size(), next()
at Helper$_retrieveDocStringFromDoxygen_closure1.doCall(Helper.groovy:109)
at Helper.retrieveDocStringFromDoxygen(Helper.groovy:108)
at Helper$_transformSwigXml_closure14.doCall(Helper.groovy:484)
at Helper.transformSwigXml(Helper.groovy:479)
at Helper$transformSwigXml$0.call(Unknown Source)
at Generator.run(Generator.groovy:61)
make: *** [xbmc/interfaces/python/generated/AddonModuleXbmc.cpp] Error 1
groovy 1.8.6-1 from unstable fails differently:
...
groovy -cp "/usr/share/java/groovy-all-1.8.6.jar:/usr/share/java/commons-lang-2.6.jar:./tools/codegenerator:xbmc/interfaces/python"
\
./tools/codegenerator/Generator.groovy
xbmc/interfaces/python/generated/AddonModuleXbmc.xml
xbmc/interfaces/python/PythonSwig.cpp.template
xbmc/interfaces/python/generated/AddonModuleXbmc.cpp
xbmc/interfaces/python/generated/doxygenxml
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/root/xbmc-12.3+dfsg1/tools/codegenerator/Generator.groovy: 26: unable
to resolve class Helper
@ line 26, column 1.
import Helper
^
1 error
make: *** [xbmc/interfaces/python/generated/AddonModuleXbmc.cpp] Error 1
But it gives less clue about the actual problem.
Trying different JREs gives more hint:
gij-4.8 -cp "/usr/share/java/groovy-all-1.8.6.jar:/usr/share/java/commons-lang-2.6.jar:./tools/codegenerator:xbmc/interfaces/python"
groovy.ui.GroovyMain ./tools/codegenerator/Generator.groovy
xbmc/interfaces/python/generated/AddonModuleXbmc.xml
xbmc/interfaces/python/PythonSwig.cpp.template
xbmc/interfaces/python/generated/AddonModuleXbmc.cpp
xbmc/interfaces/python/generated/doxygenxml
java.lang.ExceptionInInitializerError
at java.lang.Class.initializeClass(libgcj.so.14)
at org.codehaus.groovy.reflection.ReflectionCache.getCachedClass(ReflectionCache.java:107)
at org.codehaus.groovy.reflection.ReflectionCache.<clinit>(ReflectionCache.java:52)
at java.lang.Class.initializeClass(libgcj.so.14)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerMethods(MetaClassRegistryImpl.java:161)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:83)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:61)
at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:29)
at java.lang.Class.initializeClass(libgcj.so.14)
at org.codehaus.groovy.runtime.InvokerHelper.<clinit>(InvokerHelper.java:49)
at java.lang.Class.initializeClass(libgcj.so.14)
at groovy.lang.GroovyObjectSupport.<init>(GroovyObjectSupport.java:32)
at groovy.lang.Binding.<init>(Binding.java:34)
at groovy.lang.GroovyShell.<init>(GroovyShell.java:70)
at groovy.ui.GroovyMain.processOnce(GroovyMain.java:544)
at groovy.ui.GroovyMain.run(GroovyMain.java:337)
at groovy.ui.GroovyMain.process(GroovyMain.java:323)
at groovy.ui.GroovyMain.processArgs(GroovyMain.java:120)
at groovy.ui.GroovyMain.main(GroovyMain.java:100)
Caused by: java.lang.NullPointerException
at java.lang.ref.Reference.<init>(libgcj.so.14)
at java.lang.ref.WeakReference.<init>(libgcj.so.14)
at org.codehaus.groovy.reflection.ClassInfo.<clinit>(ClassInfo.java:413)
at java.lang.Class.initializeClass(libgcj.so.14)
...18 more
Caught: java.lang.NoClassDefFoundError:
org.codehaus.groovy.reflection.ReflectionCache
java.lang.NoClassDefFoundError: org.codehaus.groovy.reflection.ReflectionCache
<<No stacktrace available>>
I started working on a fix handling the exceptions somewhere, but now
I think caching signatures from java.lang and other system packages is
simply not portable.
Cheers,
Balint
-- System Information:
Debian Release: jessie/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 3.11-0.bpo.2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages groovy depends on:
ii antlr 2.7.7+dfsg-5
ii default-jre [java6-runtime] 1:1.7-50
ii default-jre-headless 1:1.7-50
ii ivy 2.3.0-3
ii junit4 4.11-2
ii libasm4-java 4.1-3
ii libbsf-java 1:2.4.0-5
ii libcommons-cli-java 1.2-3
ii libcommons-logging-java 1.1.3-1
ii libjansi-java 1.4-3
ii libjline2-java 2.11-2
ii libqdox-java 1.12-1
ii libservlet2.5-java 6.0.37-1
ii libxstream-java 1.4.4-1
ii openjdk-7-jre [java6-runtime] 7u45-2.4.3-4
Versions of packages groovy recommends:
ii ant 1.9.2-1
ii ant-optional 1.9.2-1
pn libgpars-groovy-java <none>
ii libjcommander-java 1.32-1
ii testng 6.8.7-2
Versions of packages groovy suggests:
pn groovy-doc <none>
-- no debconf information
More information about the pkg-java-maintainers
mailing list