This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 25002 - jdk1.1 javac does not support @ operator for compiling from filelist
Summary: jdk1.1 javac does not support @ operator for compiling from filelist
Status: CLOSED FIXED
Alias: None
Product: java
Classification: Unclassified
Component: Unsupported (show other bugs)
Version: 3.x
Hardware: All All
: P3 blocker (vote)
Assignee: issues@java
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-06-20 18:01 UTC by Jiri Prazak
Modified: 2007-09-26 09:14 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jiri Prazak 2002-06-20 18:01:33 UTC
When more than 10 files are being compiled on
Windows, Netbeans generates temp file containing
list of files to be compiled.  This is however not
support prior to jdk1.2beta4.  This also relates
to javadoc from jdk1.1.

Netbeans/Forte should check which jdk version is
the external compiler before compiling using the @
operator.  This issue exists in all versions, but
most affected are Windows users because the
treshold value in Unix is apparently different and
files are passed as arguments.
Comment 1 Jan Becicka 2002-06-24 13:11:27 UTC
I'm afraid we must use @ due to limited length of Windows commad line.
Comment 2 Jiri Prazak 2002-06-26 15:06:40 UTC
There is no reason for using @ if someone is just compiling a small
project.  You comment sounds too much like we will not support
pre1.2beta4 jdks, which I believe is not the right approach.

Even with large projects, you can split the compilation into several
steps, since the code already has to generate list file, it can just
generate small enough command lines and compile them one at a time, if
it detects jdk not supporting 1.1.8.

The reason why this is important is because most browsers out there
still do not have plugins for new jdks and I'm not sure how far one
can trust the cross compilation switches.
Comment 3 Jiri Prazak 2002-06-26 15:10:24 UTC
Correction, the "detects jdk not supporting 1.1.8" should be "detects
jdk not supporting @".  Sorry about this.
Comment 4 Svata Dedic 2002-06-26 17:15:26 UTC
Well.. running the compiler several times could be a good workaround,
but the price is excess error messages. If there's a file, which has
errors in it, it could be attempted to compile several times (bcs of
references from the other files being compiled), so the error may
appear several times in the output window. But it will allow
compilation around javac AND windows limitations and the same time.
Right now, the IDE cannot detect which compiler it is working with
(although such nice thing is planned for 4.0); I think that an expert
property on java compilers could do.

BTW the cross compilation switches are quite good (-target 1.1), but
you have to set the -bootclasspath as well to be sure that you didn;t
accidentally use some class from JDK > 1.1.8 in your code.

I will try to change the java compiler invocation scheme, not sure the
implementation makes it into 3.4 release. The code which constructs
the commandline still lies in OpenIDE for the most part, making it
difficult to customize in a module. Oh well :-)

Comment 5 Svata Dedic 2002-07-08 14:25:59 UTC
I prefer not to show the controlling property in IDE GUI for 3.4 (we
are ways after feature freeze now). I will recategorize this issue as
a feature request for the new project system (4.0). I have prepared a
work around for 3.4 timeframe: when the IDE is run with parameter 
"-J-D org.netbeans.modules.java.extCompileMultistep=true"
the IDE will launch the compiler multiple times, passing filenames
whose cummulative length does not exceed some threshold to each
invocation. The threshold value is set to 256 initially and can be
adjusted by setting property
"-J-D org.openide.compilers.filelistThreshold=xxxx"
where `xxx' is the max allowed cummulative pathnames length.

Also see issue #25395

Fixed in trunk:
/cvs/java/src/org/netbeans/modules/java/JExternalCompilerGroup.java,v
 <--  JExternalCompilerGroup.java
new revision: 1.43; previous revision: 1.42
Comment 6 Jan Becicka 2002-10-15 13:01:20 UTC
Jirko, can you verify it? Thanks.
Comment 7 Jan Becicka 2003-04-01 08:06:25 UTC
VERIFIED
Comment 8 Quality Engineering 2003-07-01 13:20:54 UTC
Resolved for 3.4.x or earlier, no new info since then -> closing.