There are two attached java source classes that cause the Signature test tool to fail when the tool is running in debug mode and enabled Java assertions (with -ea VM option).
Steps to reproduce:
1. Compile a source file:
<ag153348@zenit> mkdir classes
<ag153348@zenit> javac -d classes clss44701.java
2. Run the signature setup as follows:
<ag153348@zenit> java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Server VM (build 1.6.0-b105, mixed mode)
<ag153348@zenit> which java
/set/java/re/jdk/6.0/latest/binaries/solaris-amd64/bin/java
<ag153348@zenit> java -ea -cp /set/java/re/sigtest/2.2/snapshot/fcs/latest/binaries/sigtest-2.2/lib/sigtestdev.jar com.sun.tdk.signaturetest.Setup -classpath /set/java/re/jdk/7/latest/binaries/solaris-i586/jre/lib/rt.jar:classes/ -package javasoft -filename data.sig
Class path: "/set/java/re/jdk/7/latest/binaries/solaris-i586/jre/lib/rt.jar:classes/"
Constant checking: on
Found in total: 18352 classes
Selected by -Package: 2 classes
Written to sigfile: 2 classes
STATUS:Passed.
<ag153348@zenit> java -ea -cp /set/java/re/sigtest/2.2/snapshot/fcs/latest/binaries/sigtest-2.2/lib/sigtestdev.jar com.sun.tdk.signaturetest.Setup -classpath /set/java/re/jdk/7/latest/binaries/solaris-i586/jre/lib/rt.jar:classes/ -package javasoft -filename data.sig -debug
Class path: "/set/java/re/jdk/7/latest/binaries/solaris-i586/jre/lib/rt.jar:classes/"
Constant checking: on
Found in total: 18352 classes
Synthetic method boolean java.lang.Class.access$100(java.lang.Object[],java.lang.Object[]) skipped
Synthetic method boolean java.lang.Class.access$202(boolean) skipped
Synthetic method boolean java.lang.Class.access$302(boolean) skipped
Bridge method int java.lang.String.compareTo(java.lang.Object) skipped
Exception in thread "main" java.lang.AssertionError
at com.sun.tdk.signaturetest.core.Erasurator.processMember(Erasurator.java:235)
at com.sun.tdk.signaturetest.core.Erasurator.processMember(Erasurator.java:202)
at com.sun.tdk.signaturetest.core.MethodOverridingChecker.addMethod(MemberCollectionBuilder.java:691)
at com.sun.tdk.signaturetest.core.MethodOverridingChecker.addMethods(MemberCollectionBuilder.java:706)
at com.sun.tdk.signaturetest.core.MemberCollectionBuilder.getMembers(MemberCollectionBuilder.java:270)
at com.sun.tdk.signaturetest.core.MemberCollectionBuilder.getMembers(MemberCollectionBuilder.java:231)
at com.sun.tdk.signaturetest.core.MemberCollectionBuilder.createMembers(MemberCollectionBuilder.java:106)
at com.sun.tdk.signaturetest.Setup.create(Setup.java:473)
at com.sun.tdk.signaturetest.Setup.run(Setup.java:163)
at com.sun.tdk.signaturetest.Setup.main(Setup.java:142)
Note if the debug option is not specified, the assertion exception will not be thrown.
Steps to reproduce:
1. Compile a source file:
<ag153348@zenit> mkdir classes
<ag153348@zenit> javac -d classes clss44701.java
2. Run the signature setup as follows:
<ag153348@zenit> java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Server VM (build 1.6.0-b105, mixed mode)
<ag153348@zenit> which java
/set/java/re/jdk/6.0/latest/binaries/solaris-amd64/bin/java
<ag153348@zenit> java -ea -cp /set/java/re/sigtest/2.2/snapshot/fcs/latest/binaries/sigtest-2.2/lib/sigtestdev.jar com.sun.tdk.signaturetest.Setup -classpath /set/java/re/jdk/7/latest/binaries/solaris-i586/jre/lib/rt.jar:classes/ -package javasoft -filename data.sig
Class path: "/set/java/re/jdk/7/latest/binaries/solaris-i586/jre/lib/rt.jar:classes/"
Constant checking: on
Found in total: 18352 classes
Selected by -Package: 2 classes
Written to sigfile: 2 classes
STATUS:Passed.
<ag153348@zenit> java -ea -cp /set/java/re/sigtest/2.2/snapshot/fcs/latest/binaries/sigtest-2.2/lib/sigtestdev.jar com.sun.tdk.signaturetest.Setup -classpath /set/java/re/jdk/7/latest/binaries/solaris-i586/jre/lib/rt.jar:classes/ -package javasoft -filename data.sig -debug
Class path: "/set/java/re/jdk/7/latest/binaries/solaris-i586/jre/lib/rt.jar:classes/"
Constant checking: on
Found in total: 18352 classes
Synthetic method boolean java.lang.Class.access$100(java.lang.Object[],java.lang.Object[]) skipped
Synthetic method boolean java.lang.Class.access$202(boolean) skipped
Synthetic method boolean java.lang.Class.access$302(boolean) skipped
Bridge method int java.lang.String.compareTo(java.lang.Object) skipped
Exception in thread "main" java.lang.AssertionError
at com.sun.tdk.signaturetest.core.Erasurator.processMember(Erasurator.java:235)
at com.sun.tdk.signaturetest.core.Erasurator.processMember(Erasurator.java:202)
at com.sun.tdk.signaturetest.core.MethodOverridingChecker.addMethod(MemberCollectionBuilder.java:691)
at com.sun.tdk.signaturetest.core.MethodOverridingChecker.addMethods(MemberCollectionBuilder.java:706)
at com.sun.tdk.signaturetest.core.MemberCollectionBuilder.getMembers(MemberCollectionBuilder.java:270)
at com.sun.tdk.signaturetest.core.MemberCollectionBuilder.getMembers(MemberCollectionBuilder.java:231)
at com.sun.tdk.signaturetest.core.MemberCollectionBuilder.createMembers(MemberCollectionBuilder.java:106)
at com.sun.tdk.signaturetest.Setup.create(Setup.java:473)
at com.sun.tdk.signaturetest.Setup.run(Setup.java:163)
at com.sun.tdk.signaturetest.Setup.main(Setup.java:142)
Note if the debug option is not specified, the assertion exception will not be thrown.