FS#11089 - Tomcat package has wrong dependencies!

Attached to Project: Arch Linux
Opened by Omar Chicas (theone) - Friday, 01 August 2008, 17:27 GMT
Last edited by Hugo Doria (hdoria) - Tuesday, 12 August 2008, 15:59 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Hugo Doria (hdoria)
Architecture All
Severity Low
Priority Normal
Reported Version None
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
I downloaded tomcat and installed it. However it downloaded the dependencies java-runtime (by default chooses java-gcj-compat-1.0.77-4 if jre is not specified in pacman)
**Targets: java-gcj-compat-1.0.77-4 tomcat-5.5.23-2**
Which is wrong. Tomcat needs the JRE env which conflicts with java-gcj-compat-1.0.77-4. Installing JRE before tomcat or installing JRE and removing java-gcj-compat-1.0.77-4 allows tomcat to start.

Additional info:
* package version(s)
* config and/or log files etc.


Steps to reproduce:
Remove JRE or java-gcj-compat-1.0.77-4 if already installed. Use pacman -S tomcat and it somehow chooses java-gcj-compat-1.0.77-4 over jre to be installed.
This task depends upon

Closed by  Hugo Doria (hdoria)
Tuesday, 12 August 2008, 15:59 GMT
Reason for closing:  Fixed
Comment by Jan de Groot (JGC) - Friday, 01 August 2008, 21:00 GMT
tomcat can work with java-gcj-compat unless it's compiled with java6 binary support.

java-gcj-compat will get deprecated anyways, as we'll have openjdk in the repositories soon.
Comment by Omar Chicas (theone) - Friday, 01 August 2008, 22:12 GMT
The problem is when pacman downloads java-gcj-compat and installs it as a dependency for tomcat. Tomcat can't find its path. I did a symlink for the java-gcj-compat package on /opt/java which is where tomcat looks for jvm home. However this works tomcat fails to start due to this:

1-Aug-08 7:27:23 AM org.apache.tomcat.util.digester.Digester startElement
SEVERE: Begin event threw error
java.lang.NoClassDefFoundError: org.apache.catalina.mbeans.ServerLifecycleListener
at java.lang.Class.initializeClass(libgcj.so.9)
at java.lang.Class.newInstance(libgcj.so.9)
at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:206)
at org.apache.tomcat.util.digester.Rule.begin(Rule.java:153)
at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1276)
at gnu.xml.stream.SAXParser.parse(libgcj.so.9)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562)
at org.apache.catalina.startup.Catalina.load(Catalina.java:490)
at java.lang.reflect.Method.invoke(libgcj.so.9)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:267)
at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:282)
at java.lang.reflect.Method.invoke(libgcj.so.9)
at org.apache.commons.daemon.support.DaemonLoader.load(DaemonLoader.java:160)
Caused by: java.lang.ClassNotFoundException: javax.management.modelmbean.ModelMBean not found in org.apache.catalina.loader.StandardClassLoader{urls=[file:/$
at java.net.URLClassLoader.findClass(libgcj.so.9)
at java.lang.ClassLoader.loadClass(libgcj.so.9)
at java.lang.ClassLoader.loadClass(libgcj.so.9)
at java.lang.VMClassLoader.defineClass(libgcj.so.9)
at java.lang.ClassLoader.defineClass(libgcj.so.9)
at java.security.SecureClassLoader.defineClass(libgcj.so.9)
at java.net.URLClassLoader.findClass(libgcj.so.9)
at java.lang.ClassLoader.loadClass(libgcj.so.9)
at java.lang.ClassLoader.loadClass(libgcj.so.9)
at java.lang.VMClassLoader.defineClass(libgcj.so.9)
at java.lang.ClassLoader.defineClass(libgcj.so.9)
at java.security.SecureClassLoader.defineClass(libgcj.so.9)
at java.net.URLClassLoader.findClass(libgcj.so.9)
at java.lang.ClassLoader.loadClass(libgcj.so.9)
at java.lang.ClassLoader.loadClass(libgcj.so.9)
at java.lang.Class.forName(libgcj.so.9)
at java.lang.Class.initializeClass(libgcj.so.9)
...12 more
java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(libgcj.so.9)
at org.apache.commons.daemon.support.DaemonLoader.load(DaemonLoader.java:160)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(libgcj.so.9)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:267)
at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:282)
at java.lang.reflect.Method.invoke(libgcj.so.9)
...1 more
Caused by: java.lang.NoClassDefFoundError: org.apache.catalina.mbeans.ServerLifecycleListener
at java.lang.Class.initializeClass(libgcj.so.9)
at java.lang.Class.newInstance(libgcj.so.9)
at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:206)
at org.apache.tomcat.util.digester.Rule.begin(Rule.java:153)
at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1276)
at gnu.xml.stream.SAXParser.parse(libgcj.so.9)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562)
at org.apache.catalina.startup.Catalina.load(Catalina.java:490)
at java.lang.reflect.Method.invoke(libgcj.so.9)
...4 more

Hence jre is the only one that works for the tomcat package.
Comment by Hugo Doria (hdoria) - Tuesday, 12 August 2008, 15:59 GMT
Fixed in tomcat-5.5.23-3.

Loading...