On 2011-11-01 01:42, Stefan Bodewig wrote:
On 2011-10-31, Rhino wrote:

I have an Ant script that changes the value of some constants in a
constants file that is used later by a Java program. The edits are
pretty trivial in nature - three booleans get set to false instead of
their normal value of true - and then the Java program which uses them
is supposed to change its behavior according to the new values of the
booleans. But even though I am sure the edits are being done and that
the .java files are only compiled after the edits have been completed,
the Java program continues to see the booleans as true, even when they
are not.
By constants you mean "static final" variables?
Yes.
javac inlines static final primitives so in

public class A {
     public static final boolean FOO = true;
}
public class B {
     public static boolean BAR = A.FOO;
}
No. What I have is a Constants file that looks like this before the build script starts running:

public class ResumeConstants {

public static final boolean FOO = true;
}

That is referenced by another Java class that looks like this:

public ResumeFileGenerator {

  if ResumeConstants.FOO { /* otherwise, print nothing */
     System.out.println("XXX");
      }

My build script prompts the person running the script whether FOO should be true or false on this run. If it should be false, ResumeConstants is edited (and saved), then all the files are compiled, then ResumeFileGenerator runs. But ResumeFileGenerator behaves as if FOO is true, even though it has been changed to false. A display of FOO in ResumeFileGenerator shows it to be true, even though I know I set it to false.
B won't even reference the A class after compilation and BAR is set to
true.  If you later change the value in A and re-compile A but not B the
value in B will not change.  You just re-compile B as well.

This is a Java concept, not an Ant concept 8-)
My Java is rusty too, I'm afraid. I'm not sure if your remark still applies now that I've clarified what's actually happening in the code?
Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org

Reply via email to