This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
GCJ and CORBA
- From: Roman Kennke <roman at box7954 dot elkhouse dot de>
- To: java at gcc dot gnu dot org
- Date: Fri, 3 Jun 2005 10:33:04 +0200
- Subject: GCJ and CORBA
Hi,
I try to compile GNU Classpath with GCJ (3.4 and 4.0) and stumble over
the following oddity (actually hundreds of them):
../gnu/java/rmi/RMIMarshalledObjectOutputStream.java:52: Fehler: Class
»gnu.java.rmi.RMIMarshalledObjectOutputStream« doesn't define the abstract method »void
org.omg.CORBA.portable.OutputStream.write_wstring(java.lang.String)« from class
»org.omg.CORBA.portable.OutputStream«. This method must be defined or class
»gnu.java.rmi.RMIMarshalledObjectOutputStream« must be declared abstract.
public class RMIMarshalledObjectOutputStream extends RMIObjectOutputStream
It looks like GCJ is confusing java.io.OutputStream (that is what
gnu.java.rmi.RMIMarshalledObjectOutputStream is derived from) with org.omg.CORBA.portable.OutputStream.
How is that possible? The code looks correct to me, and jikes seems to have no problem with it. Even if I
fully qualify all ObjectOutputStream references it fails. This is very odd.
I have the following proposals how to handle this:
1. don't import CORBA stuff in the GCJ tree until GCJ is fixed for these issues and add a configure option
in GNU Classpath --without-corba for those (like me) who would like to use GCJ for compiling Classpath.
or
2. implement a workaround (oh no, not another one! ;-) ) for GCJs bugs. In this case I would think
temporarily renaming the CORBA ObjectOutputStream (and other affected clash-names) would do. This is of
course very ugly, against the specs and whatnot.
Any other suggestions?
/Roman