Peter, I repeated the steps you described and I can confirm that with the -classpath argument the compilation fails and without it the compilation succeeds. I also tried running javac on "src/test/*.java" instead of "src/test/Test3.java". In this case, the compilation succeeds with or without -classpath.
I think it looks like some dependency problem. Chavdar On 10/17/06, Chavdar Botev <[EMAIL PROTECTED]> wrote:
I have opened a bug report at http://issues.apache.org/bugzilla/show_bug.cgi?id=40776. Thanks, Chavdar On 10/17/06, Peter Reilly <[EMAIL PROTECTED]> wrote: > On 10/17/06, Scot P. Floess <[EMAIL PROTECTED]> wrote: > > Failed for me using Fedora Core 5, sun JDK 1.5_08 > > > > I don't think its javac as I was able to do this: > > > > touch src/test/Test3.java > > javac -d bin -sourcepath src -classpath bin src/test/Test3.java > > That worked me as well, however I modifed the build script > to do this: > <javac source="1.5" target="1.5" > srcdir="src" destdir="build/classes" > includeantruntime="no" > debug="yes" fork="yes" executable="${java.home}/../bin/javac.exe"/> > > and ran ant with -debug to see the exact command line: > > "c:\program files\java\jdk1.6.0\jre\..\bin\javac.exe" -d "C:\Documents > and Settings\reilly\learning\a\compile\build\classes" -classpath > "C:\Documents and Settings\reilly\learning\a\compile\build\classes" > -sourcepath "C:\Documents and Settings\reilly\learning\a\compile\src" > -target 1.5 -g -source 1.5 "C:\Documents and > Settings\reilly\learning\a\compile\src\org\test\Test3.java" > > This failed as well. > > I removed the differences one at a time, when -classpath was removed, > the problem > went away. > > I think that this is a javac problem, but perhaps ant does not need to set the > classpath attribute when -d is the same as -classpath ? > > Peter > > > > > Javac seems to find everything correctly...but the javac task in ant is > > having difficulties. One thing to note is that the generics referred to > > by the inner classes are defined in terms of the outer class. > > > > James Abley wrote: > > > Fails for me: > > > > > > Ubuntu Dapper, Ant 1.6.5, Sun JDK 1.5.0_07 > > > > > > <project> > > > <javac srcdir="." destdir="."/> > > > </project> > > > > > > bash:$ ant -v > > > bash:$ touch test/Test3.java > > > bash:$ ant -v > > > > > > [javac] /work/ant-test/ant-generics/test/Test3.java > > > [javac] /work/ant-test/ant-generics/test/Test3.java:8: > > > incompatible types > > > [javac] found : test.Base > > > [javac] required: test.Sub > > > [javac] public Sub p() {return this.getV();} > > > > > > Is this a javac issue rather than ANT issue? I can provide more > > > information if required. > > > > > > James > > > > > > [EMAIL PROTECTED] wrote: > > >> Also no problems .... on WinXP, Ant 1.6.5 and Java 1.5.0_06-b05. > > >> > > >>> setant 165 > > >> Apache Ant version 1.6.5 compiled on June 2 2005 > > >> > > >>> setjava 15 > > >> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05) > > >> Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing) > > >> > > >>> del test\*.class > > >> > > >>> ant -v > > >> Project base dir set to: C:\tmp\ant-generics > > >> [javac] build.xml skipped - don't know how to handle it > > >> [javac] test\Base.java added as test/Base.class doesn't exist. > > >> [javac] test\Sub.java added as test/Sub.class doesn't exist. > > >> [javac] test\Test1.java added as test/Test1.class doesn't exist. > > >> [javac] test\Test2.java added as test/Test2.class doesn't exist. > > >> [javac] test\Test3.java added as test/Test3.class doesn't exist. > > >> [javac] Compiling 5 source files to C:\tmp\ant-generics > > >> [javac] Using modern compiler > > >> [javac] Compilation arguments: > > >> [javac] '-d' > > >> [javac] 'C:\tmp\ant-generics' > > >> [javac] '-classpath' > > >> [javac] ' LOT-OF-LIBS-FROM-ANT ' > > >> [javac] '-sourcepath' > > >> [javac] 'C:\tmp\ant-generics' > > >> [javac] '-g:none' > > >> [javac] > > >> [javac] The ' characters around the executable and arguments are > > >> [javac] not part of the command. > > >> [javac] Files to be compiled: > > >> [javac] C:\tmp\ant-generics\test\Base.java > > >> [javac] C:\tmp\ant-generics\test\Sub.java > > >> [javac] C:\tmp\ant-generics\test\Test1.java > > >> [javac] C:\tmp\ant-generics\test\Test2.java > > >> [javac] C:\tmp\ant-generics\test\Test3.java > > >> BUILD SUCCESSFUL > > >> > > >>> ant -v > > >> NOTHING-TO-COMPILE > > >> > > >>> touch test\Test3.java (using Cygwin) > > >> > > >>> ant -v > > >> Project base dir set to: C:\tmp\ant-generics > > >> [javac] build.xml skipped - don't know how to handle it > > >> [javac] test\Base.class skipped - don't know how to handle it > > >> [javac] test\Base.java omitted as test/Base.class is up to date. > > >> [javac] test\Sub.class skipped - don't know how to handle it > > >> [javac] test\Sub.java omitted as test/Sub.class is up to date. > > >> [javac] test\Test1$Inner1.class skipped - don't know how to > > >> handle it > > >> [javac] test\Test1.class skipped - don't know how to handle it > > >> [javac] test\Test1.java omitted as test/Test1.class is up to date. > > >> [javac] test\Test2$Inner2.class skipped - don't know how to > > >> handle it > > >> [javac] test\Test2.class skipped - don't know how to handle it > > >> [javac] test\Test2.java omitted as test/Test2.class is up to date. > > >> [javac] test\Test3$Inner3.class skipped - don't know how to > > >> handle it > > >> [javac] test\Test3.class skipped - don't know how to handle it > > >> [javac] test\Test3.java added as test/Test3.class is outdated. > > >> [javac] Compiling 1 source file to C:\tmp\ant-generics > > >> [javac] Using modern compiler > > >> [javac] Compilation arguments: > > >> [javac] '-d' > > >> [javac] 'C:\tmp\ant-generics' > > >> [javac] '-classpath' > > >> [javac] ' LOT-OF-LIBS-FROM-ANT ' > > >> [javac] '-sourcepath' > > >> [javac] 'C:\tmp\ant-generics' > > >> [javac] '-g:none' > > >> [javac] > > >> [javac] The ' characters around the executable and arguments are > > >> [javac] not part of the command. > > >> [javac] File to be compiled: > > >> [javac] C:\tmp\ant-generics\test\Test3.java > > >> > > >> BUILD SUCCESSFUL > > >> > > >> > > >> > > >> build.xml: > > >> <project> > > >> <javac srcdir="." destdir="."/> > > >> </project> > > >> > > >> > > >> > > >> Jan > > >> > > >> > > >>> -----Ursprüngliche Nachricht----- > > >>> Von: Peter Reilly [mailto:[EMAIL PROTECTED] Gesendet: > > >>> Dienstag, 17. Oktober 2006 16:44 > > >>> An: Ant Users List > > >>> Betreff: Re: a problem compiling a Java 5 project with generics > > >>> > > >>> On 10/17/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> > > >>> wrote: > > >>>> Works for me with Ant 1.6.5 and 1.7beta2 and the given java > > >>> sources (with and without the commented line). > > >>>> <project> > > >>>> <delete dir="." includes="**/*.class"/> > > >>>> <javac srcdir="." destdir="."/> > > >>>> </project> > > >>> This works by itself, but touch Test3.java and run again. > > >>> Peter > > >>>> > > >>>> > > >>>> Jan > > >>>> > > >>>>> -----Ursprüngliche Nachricht----- > > >>>>> Von: Peter Reilly [mailto:[EMAIL PROTECTED] > > >>>>> Gesendet: Dienstag, 17. Oktober 2006 11:39 > > >>>>> An: Ant Users List > > >>>>> Betreff: Re: a problem compiling a Java 5 project with generics > > >>>>> > > >>>>> Can you enter a bugzilla report about this. > > >>>>> It is very strange. > > >>>>> > > >>>>> I tried on the commandline: > > >>>>> > > >>>>> javac -target 1.5 -g -source 1.5 -sourcepath src -d build\classes > > >>>>> src\org\test\Test3.java > > >>>>> > > >>>>> which works fine - and looks very like the command used by ant. > > >>>>> > > >>>>> Peter > > >>>>> > > >>>>> > > >>>>> On 10/17/06, Chavdar Botev <[EMAIL PROTECTED]> wrote: > > >>>>>> Hi > > >>>>>> > > >>>>>> For some reason, the mailing server included only the first > > >>>>>> attachment. Since this is the fourth or the fifth time I am > > >>>>> trying to > > >>>>>> send the java files, I give up. I'll inline them in the message. > > >>>>>> > > >>>>>> // src/test/Base.java > > >>>>>> package test; > > >>>>>> public class Base {} > > >>>>>> > > >>>>>> > > >>>>>> // src/test/Sub.java > > >>>>>> package test; > > >>>>>> public class Sub extends Base {} > > >>>>>> > > >>>>>> // src/test/Test1.java > > >>>>>> package test; > > >>>>>> public class Test1<T extends Base> { > > >>>>>> public class Inner1 { > > >>>>>> protected T v; > > >>>>>> public Inner1(T v) {this.v = v;} > > >>>>>> public T getV() {return this.v;} > > >>>>>> } > > >>>>>> public Inner1 getInner(T v) {return new Inner1(v);} } > > >>>>>> > > >>>>>> // src/test/Test2.java > > >>>>>> package test; > > >>>>>> public class Test2<T extends Base> extends Test1<T> { > > >>>>>> public class Inner2 extends Inner1 { > > >>>>>> public Inner2(T v) {super(v);} > > >>>>>> //public T getV() {return this.v;} > > >>>>>> } > > >>>>>> } > > >>>>>> > > >>>>>> // src/test/Test3.java > > >>>>>> package test; > > >>>>>> public class Test3 extends Test2<Sub> { > > >>>>>> public class Inner3 extends Inner2 { > > >>>>>> public Inner3(Sub v) {super(v);} > > >>>>>> public Sub p() {return this.getV();} > > >>>>>> } > > >>>>>> > > >>>>>> public Inner3 g() { > > >>>>>> return new Inner3(new Sub()); > > >>>>>> } > > >>>>>> } > > >>>>>> > > >>>>>> > > >>>>>> HTH, > > >>>>>> Chavdar > > >>>>>> > > >>>>>> > > >>>>>> On 10/16/06, Petar Tahchiev <[EMAIL PROTECTED]> wrote: > > >>>>>>> On 17/10/06, Chavdar Botev <[EMAIL PROTECTED]> wrote: > > >>>>>>>> Hi! > > >>>>>>>> > > >>>>>>>> I've come accross the following problem trying to > > >>> compile Java > > >>>>>>>> 5 classes with generics using Ant 1.6.5. I've attached > > >>>>> project with > > >>>>>>>> sample Java classes and a build.xml file. > > >>>>>>>> > > >>>>>>>> NOTE: Please create a src/test subdirectory and save the > > >>>>> attached > > >>>>>>>> .java files into it. The mailing list server gave me a hard > > >>>>>>>> time acepting an email with the archived project files. :( > > >>>>>>>> > > >>>>>>>> A clean build of the above project works just fine > > >>> and compiles > > >>>>>>>> without a problem. If after that, I touch the Test3.java > > >>>>> file the > > >>>>>>>> build fails with the following error: > > >>>>>>>> > > >>>>>>> [javac] C:\src\appforge\test\src\test\Test3.java:5: > > >>> incompatible > > >>>>>>> types > > >>>>>>>> [javac] found : test.Base > > >>>>>>>> [javac] required: test.Sub > > >>>>>>>> [javac] public Sub p() {return this.getV();} [javac] > > >>> ^ [javac] > > >>>>>>>> 1 error > > >>>>>>> > > >>>>>>> I must admit that this behaviour is really strange. I am > > >>>>> interested > > >>>>>>> in helping you but the problem is that I didn't receive > > >>> any .java > > >>>>>>> files. Please try to prvide them again. > > >>>>>>> > > >>>>>>> > > >>>>>>> Initially, I thought that this was a problem with the Java > > >>>>> compiler. > > >>>>>>>> After touching Test3.java, I tried running javac manually: > > >>>>>>>> > > >>>>>>>> javac -sourcepath src -d bin -g -source 1.5 -target 1.5 > > >>>>>>>> src\test\*.java > > >>>>>>>> > > >>>>>>>> It turned out that with the above command-line the project > > >>>>>>>> compiled OK. The project also compiles without a problem > > >>>>> in Eclipse 3.2.1. > > >>>>>>>> Am I missing anything? It is my understanding that the > > >>>>> build file > > >>>>>>>> and the command line should produce the same results. > > >>>>>>>> > > >>>>>>>> Upon further experimentation, if I uncomment the method in > > >>>>>>>> Test2.java fixes the problem. Touching Test3.java does > > >>>>> not break the build. > > >>>>>>>> Thanks, > > >>>>>>>> Chavdar > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>> ------------------------------------------------------------------ > > >>>>>>>> --- To unsubscribe, e-mail: > > >>> [EMAIL PROTECTED] For > > >>>>>>>> additional commands, e-mail: [EMAIL PROTECTED] > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>>>> > > >>>>>>> -- > > >>>>>>> Regards, Petar! > > >>>>>>> Karlovo, Bulgaria. > > >>>>>>> > > >>>>>>> > > >>>>>> > > >>> ------------------------------------------------------------------- > > >>>>>> -- To unsubscribe, e-mail: [EMAIL PROTECTED] For > > >>>>> additional > > >>>>>> commands, e-mail: [EMAIL PROTECTED] > > >>>>>> > > >>>>>> > > >>>> --------------------------------------------------------------------- > > >>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] For > > >>>>> additional commands, e-mail: [EMAIL PROTECTED] > > >>>>> > > >>>>> > > >>>> --------------------------------------------------------------------- > > >>>> To unsubscribe, e-mail: [EMAIL PROTECTED] For > > >>> additional > > >>>> commands, e-mail: [EMAIL PROTECTED] > > >>>> > > >>>> > > >>> --------------------------------------------------------------------- > > >>> To unsubscribe, e-mail: [EMAIL PROTECTED] For > > >>> additional commands, e-mail: [EMAIL PROTECTED] > > >>> > > >>> > > >> > > >> --------------------------------------------------------------------- > > >> To unsubscribe, e-mail: [EMAIL PROTECTED] > > >> For additional commands, e-mail: [EMAIL PROTECTED] > > >> > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > -- > > Scot P. Floess > > 27 Lake Royale > > Louisburg, NC 27549 > > > > 252-478-8087 (Home) > > 919-754-4592 (Work) > > > > Chief Architect JPlate http://sourceforge.net/projects/jplate > > Chief Architect JavaPIM http://sourceforge.net/projects/javapim > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]