Issue614605

classification
Title: Java class names cannot contain dashes
Type: Severity: normal
Components: Installer Versions:
Milestone:
process
Status: closed Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: bckfnn, dlr, fwierzbicki, pedronis
Priority: normal Keywords:

Created on 2002-09-25.20:16:11 by dlr, last changed 2006-05-12.19:31:32 by fwierzbicki.

Files
File name Uploaded Description Edit Remove
out dlr, 2002-09-25.20:16:11 Ant invocation stdout and stderr
Messages
msg743 (view) Author: Daniel L. Rall (dlr) Date: 2002-09-25.20:16:11
According to the JVM, Install.java (?) is compiled to
the class named jython-21.  The Java Language
Specification (JLS) explicitly forbids dashes in class
names.  See the description of "Java letter" characters
in section 3.8 of the JLS:

 
http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625

Using Sun's JDK 1.3.1_01 FCS, Jakarta Ant's <java> task
pukes on a java.lang.ClassFormatError when trying to
invoke the Jython 2.1 installer with the following message:

  Illegal Class name "jython-21"

Note that using <exec> with the java binary seems to
work around this most of the time, but also
intermittently produces hung builds.

I'd be happy to submit a patch correcting this behavior
if you can point me to the installer in CVS HEAD.  I
grepped today's source tree, but didn't find where the
installer .class file was built.  Perhaps its done via
liftoff?
msg744 (view) Author: Finn Bock (bckfnn) Date: 2002-09-26.07:05:03
Logged In: YES 
user_id=4201

The name of the generated installerclass is specified in the
installer/liftoff.props file.
msg745 (view) Author: Daniel L. Rall (dlr) Date: 2002-09-26.15:55:55
Logged In: YES 
user_id=6606

I tried out the renamed .class file uploaded by Samuele
Pedroni.  Even though he also patched the name of the actual
class inside the binary to the name of .class file, the JVM
is rejecting the bytecode with the following error:

java.lang.ClassFormatError: jython_21 (Extra bytes at the
end of the class file)

I've attached the full output.
msg746 (view) Author: Samuele Pedroni (pedronis) Date: 2002-09-26.21:13:33
Logged In: YES 
user_id=61408

The only way to solve:

(Extra bytes at the
end of the class file)

would be to use a plain jar. That would be less convenient 
for installing with 1.1 JVMs, maybe that's less relevant 
now, otherwise we would have to supply both.


msg747 (view) Author: Daniel L. Rall (dlr) Date: 2002-09-27.22:01:41
Logged In: YES 
user_id=6606

Note that invoking the <java> task with fork="true" does not
produce the java.lang.ClassFormatError -- it's possible that
is caused by Ant's custom class loader (which is the cause
of so many problems with Ant, bleh).
msg748 (view) Author: Frank Wierzbicki (fwierzbicki) Date: 2006-05-12.19:31:32
Logged In: YES 
user_id=193969

This is fixed with jython_21
History
Date User Action Args
2002-09-25 20:16:11dlrcreate