Tracker: Bugs

9 jmlc doesn't work when interacting with 1.5 compiled files - ID: 1288594
Last Update: Comment added ( leavens )

when i compile my Purse.java with jmlc , i get this long
list of errors that starts with

java.lang.RuntimeException: fail reached

at org.multijava.util.Utils.fail(Utils.java:100)
.......................

and it ends with this line:

at org.jmlspec.jmlrac.Main.main(Main.java:74)

Here is my Purse.java :
public class Purse {

int balance;
//@ public invariant balance >= 0;

/*@ ensures balance == 0;
@*/
public Purse() {
balance = 0;
}


/*@ requires s >= 0;
@ ensures balance == \old(balance) + s;
@*/
public void credit(int s) {
balance = balance + s;
}

/*@ public normal_behavior
@ requires s >= 0 && s <= balance;
@ assignable balance;
@ ensures balance == \old(balance) - s;
@*/
public void withdraw(int s) {
balance = balance - s;
}

}

the jmldoc command works..
i am using j2sdk1.4.2_08
thks


jmlnewbie ( jmlnewbie ) - 2005-09-12 11:12

9

Closed

Fixed

Nobody/Anonymous

jmlrac (i.e., the jmlc tool)

user reported

Public


Comments ( 7 )

Date: 2006-05-25 22:21
Sender: leavensSourceForge.net DonorProject Admin

Logged In: YES
user_id=633675

We now have a fix for this, thanks to Ovidio Mallo, and his
fix to MJ's top bug.


Date: 2006-05-25 22:21
Sender: leavensSourceForge.net DonorProject Admin

Logged In: YES
user_id=633675

This bug has been fixed and the fix will appear in the next release
of JML. Thanks for submitting your bug report!


Date: 2005-09-12 15:13
Sender: leavensSourceForge.net DonorProject Admin

Logged In: YES
user_id=633675

Sorry, at present the JML tools do not work with Java 1.5 (Java
five). You cannot use JML with Java classes compiled with a Java
1.5 compiler. However, I think if you work completely from
sources, you might be able to use the Java 1.5 virtual machine
(jre), but since that usually comes with compiled class files, these
probably won't work at all.

We have only tested the JML tools using Java 1.4.1 and 1.4.2.

We are hoping that in the not-too-distant future we will have
support for Java 1.5. Sorry it's not presently available.


Date: 2005-09-12 15:13
Sender: leavensSourceForge.net DonorProject Admin

Logged In: YES
user_id=633675

It seems that the problem is that you are using the tools
with files compiled with JDK 1.5 (probably this
characterizes Tomcat). Currently our tools do not deal
correctly with the Java 1.5 class file format (which has
changed). I believe this is shown in the output:

org.multijava.mjc.CType$MethodSignatureParser.parseGenericTypeSignatu
re(CType.java:903)

We need to fix this as a bug. The workaround is to make
sure that all the files you work with are compiled with JDK
1.5. It may help to uninstall JDK 1.5 and see if you can do
normal Java work (with 1.4.2) first.

Sorry we are slow getting this support.




Date: 2005-09-12 13:22
Sender: jmlnewbie

Logged In: YES
user_id=1343185

here is the list of errors
C:\mennen\downloads\HTTPUnit\mennen_tests>jmlc
Purse.java
parsing Purse.java
java.lang.RuntimeException: fail reached
at org.multijava.util.Utils.fail(Utils.java:100)
at
org.multijava.mjc.CType$MethodSignatureParser.parseSignat
ure(CType.ja
va:824)
at
org.multijava.mjc.CType$MethodSignatureParser.parseSignat
ure(CType.ja
va:770)
at
org.multijava.mjc.CType$MethodSignatureParser.parseGeneri
cTypeSignatu
re(CType.java:900)
at
org.multijava.mjc.CType$MethodSignatureParser.parseTypeAr
gumentSignat
ure(CType.java:914)
at
org.multijava.mjc.CType$MethodSignatureParser.parseGeneri
cTypeSignatu
re(CType.java:903)
at
org.multijava.mjc.CType$MethodSignatureParser.parseMetho
dSignature(CT
ype.java:1009)
at org.multijava.mjc.CType.parseMethodSignature
(CType.java:555)
at org.multijava.mjc.CBinaryMethod.buildReceiverClass
(CBinaryMethod.java
:98)
at org.multijava.mjc.CBinaryMethod.<init>
(CBinaryMethod.java:57)
at org.multijava.mjc.ClassCreator.createBinaryMethod
(ClassCreator.java:6
5)
at org.multijava.mjc.CBinaryClass.<init>
(CBinaryClass.java:135)
at org.multijava.mjc.CBinaryClass.<init>
(CBinaryClass.java:56)
at org.multijava.mjc.TypeLoader.createClassInfo
(TypeLoader.java:370)
at org.jmlspecs.checker.JmlTypeLoader.createClassInfo
(JmlTypeLoader.java
:584)
at org.multijava.mjc.TypeLoader.loadType
(TypeLoader.java:306)
at org.multijava.mjc.CTopLevel.loadClass
(CTopLevel.java:174)
at
org.multijava.mjc.CClassNameType.setClassFromNameOrDie
Trying(CClassNa
meType.java:373)
at org.multijava.mjc.CClassFQNameType.checkType
(CClassFQNameType.java:16
5)
at org.multijava.mjc.CClassNameType.getCClass
(CClassNameType.java:149)
at org.multijava.mjc.CClassType.equals
(CClassType.java:209)
at org.multijava.mjc.CClassType.equals
(CClassType.java:191)
at
org.multijava.mjc.JClassDeclaration.preprocessDependencies
(JClassDecl
aration.java:126)
at
org.jmlspecs.checker.JmlTypeDeclaration.preprocessDepend
encies(JmlTyp
eDeclaration.java:635)
at
org.multijava.mjc.JCompilationUnit.preprocessDependencies
(JCompilatio
nUnit.java:387)
at
org.jmlspecs.checker.JmlCompilationUnit.preprocessDepende
ncies(JmlCom
pilationUnit.java:278)
at
org.jmlspecs.checker.JmlCompilationUnit.preprocessDepende
ncies(JmlCom
pilationUnit.java:461)
at org.multijava.mjc.Main$PreprocessTask.processTree
(Main.java:2228)
at org.multijava.mjc.Main$TreeProcessingTask.execute
(Main.java:2167)
at org.multijava.mjc.Main$PreprocessTask.execute
(Main.java:2215)
at org.multijava.mjc.Main.processTaskQueue
(Main.java:944)
at org.multijava.mjc.Main.runCompilation(Main.java:324)
at org.multijava.mjc.Main.run(Main.java:129)
at org.jmlspecs.jmlrac.Main.compile(Main.java:80)
at org.jmlspecs.jmlrac.Main.main(Main.java:74)
Exception in thread "main" java.lang.RuntimeException: fail
reached
at org.multijava.util.Utils.fail(Utils.java:100)
at
org.multijava.mjc.CType$MethodSignatureParser.parseSignat
ure(CType.ja
va:824)
at
org.multijava.mjc.CType$MethodSignatureParser.parseSignat
ure(CType.ja
va:770)
at
org.multijava.mjc.CType$MethodSignatureParser.parseGeneri
cTypeSignatu
re(CType.java:900)
at
org.multijava.mjc.CType$MethodSignatureParser.parseTypeAr
gumentSignat
ure(CType.java:914)
at
org.multijava.mjc.CType$MethodSignatureParser.parseGeneri
cTypeSignatu
re(CType.java:903)
at
org.multijava.mjc.CType$MethodSignatureParser.parseMetho
dSignature(CT
ype.java:1009)
at org.multijava.mjc.CType.parseMethodSignature
(CType.java:555)
at org.multijava.mjc.CBinaryMethod.buildReceiverClass
(CBinaryMethod.java
:98)
at org.multijava.mjc.CBinaryMethod.<init>
(CBinaryMethod.java:57)
at org.multijava.mjc.ClassCreator.createBinaryMethod
(ClassCreator.java:6
5)
at org.multijava.mjc.CBinaryClass.<init>
(CBinaryClass.java:135)
at org.multijava.mjc.CBinaryClass.<init>
(CBinaryClass.java:56)
at org.multijava.mjc.TypeLoader.createClassInfo
(TypeLoader.java:370)
at org.jmlspecs.checker.JmlTypeLoader.createClassInfo
(JmlTypeLoader.java
:584)
at org.multijava.mjc.TypeLoader.loadType
(TypeLoader.java:306)
at org.multijava.mjc.CTopLevel.loadClass
(CTopLevel.java:174)
at
org.multijava.mjc.CClassNameType.setClassFromNameOrDie
Trying(CClassNa
meType.java:373)
at org.multijava.mjc.CClassFQNameType.checkType
(CClassFQNameType.java:16
5)
at org.multijava.mjc.CClassNameType.getCClass
(CClassNameType.java:149)
at org.multijava.mjc.CClassType.equals
(CClassType.java:209)
at org.multijava.mjc.CClassType.equals
(CClassType.java:191)
at
org.multijava.mjc.JClassDeclaration.preprocessDependencies
(JClassDecl
aration.java:126)
at
org.jmlspecs.checker.JmlTypeDeclaration.preprocessDepend
encies(JmlTyp
eDeclaration.java:635)
at
org.multijava.mjc.JCompilationUnit.preprocessDependencies
(JCompilatio
nUnit.java:387)
at
org.jmlspecs.checker.JmlCompilationUnit.preprocessDepende
ncies(JmlCom
pilationUnit.java:278)
at
org.jmlspecs.checker.JmlCompilationUnit.preprocessDepende
ncies(JmlCom
pilationUnit.java:461)
at org.multijava.mjc.Main$PreprocessTask.processTree
(Main.java:2228)
at org.multijava.mjc.Main$TreeProcessingTask.execute
(Main.java:2167)
at org.multijava.mjc.Main$PreprocessTask.execute
(Main.java:2215)
at org.multijava.mjc.Main.processTaskQueue
(Main.java:944)
at org.multijava.mjc.Main.runCompilation(Main.java:324)
at org.multijava.mjc.Main.run(Main.java:129)
at org.jmlspecs.jmlrac.Main.compile(Main.java:80)
at org.jmlspecs.jmlrac.Main.main(Main.java:74)


Date: 2005-09-12 13:17
Sender: jmlnewbie

Logged In: YES
user_id=1343185

here is my classpath

".;C:\Servlets+JSP;C:\jakarta-tomcat-5.5.9
\common\lib\servlet-api.jar;C:\jakarta-tomcat-5.5.9
\common\lib\jsp-api.jar;%CATALINA_HOME%;%
JMLPATH2%;%JUNIT_PATH%;%HTTPUNIT_PATH1%;%
HTTPUNIT_PATH2%"

and here are the values of the variables
JMLPATH2
C:\mennen\downloads\JML\JML\bin\jmlruntime.jar;C:\mennen\
downloads\JML\JML\bin\jmljunitruntime.jar;C:\mennen\downlo
ads\JML\JML\bin\jmlmodels.jar;C:\mennen\downloads\JML\J
ML\bin\jmlmodelsnonrac.jar;C:\mennen\downloads\JML\JML\b
in\jml-release.jar

JUNIT_PATH
C:\mennen\downloads\JUNIT\junit3.8.1\junit.jar

HTTPUNIT_PATH1
C:\mennen\downloads\HTTPUnit\httpunit-1.6\httpunit-1.6
\lib\httpunit.jar

HTTPUNIT_PATH2
C:\mennen\downloads\HTTPUnit\httpunit-1.6\httpunit-1.6
\jars\nekohtml.jar;C:\mennen\downloads\HTTPUnit\httpunit-
1.6\httpunit-1.6
\jars\Tidy.jar;C:\mennen\downloads\HTTPUnit\httpunit-1.6
\httpunit-1.6
\jars\js.jar;C:\mennen\downloads\HTTPUnit\httpunit-1.6
\httpunit-1.6\jars\xercesImpl.jar







Date: 2005-09-12 12:30
Sender: leavensSourceForge.net DonorProject Admin

Logged In: YES
user_id=633675

What is the CLASSPATH that you are using during your
compile?

Can you also send or attach the complete error output?


Attached File

No Files Currently Attached

Changes ( 12 )

Field Old Value Date By
close_date - 2006-05-25 22:21 leavens
resolution_id None 2006-05-25 22:21 leavens
status_id Open 2006-05-25 22:21 leavens
priority 5 2006-05-19 04:32 leavens
category_id None 2005-10-04 13:39 leavens
artifact_group_id None 2005-10-04 13:39 leavens
assigned_to tongjie 2005-10-04 13:38 leavens
category_id Installation problem 2005-10-04 13:38 leavens
data_type 510629 2005-10-04 13:38 leavens
summary error with jmlc 2005-10-04 13:38 leavens
assigned_to leavens 2005-09-12 15:13 leavens
category_id Tool not parsing my input 2005-09-12 12:30 leavens