NOTICE! This is a static HTML version of a legacy Fiji BugZilla bug.

The Fiji project now uses GitHub Issues for issue tracking.

Please file all new issues there.

Bug 339 - Fiji fails to compile after "./Build.sh clean"
Fiji fails to compile after "./Build.sh clean"
Status: RESOLVED INVALID
Product: Fiji
Classification: Unclassified
Component: Other
unspecified
PC Linux
: P2 normal
Assigned To: ImageJ Bugs Mailing List
Depends on:
Blocks:
 
Reported: 2011-07-21 10:56 CDT by Albert Cardona
Modified: 2011-07-22 01:00 CDT
0 users

See Also:

Description Albert Cardona 2011-07-21 10:56:08 CDT
I checked out imglib and bioformats like:

git submodule update modules/bio-formats modules/imglib

.. and failed to build (see below).

When checking out the master branches of these two repositories, fiji also fails to compile.

The error:


Building jars/imglib-io.jar <- plugins/loci_tools.jar jars/imglib....
Building in modules/imglib/
Building imglib-io.jar <- imglib1/io/src/main/java/mpicbg/imglib/i...
./modules/imglib/imglib1/io/src/main/java/mpicbg/imglib/io/ImageOpener.java:42: cannot find symbol
symbol  : class PositiveFloat
location: package ome.xml.model.primitives
import ome.xml.model.primitives.PositiveFloat;
                               ^
./modules/imglib/imglib1/io/src/main/java/mpicbg/imglib/io/ImageOpener.java:417: cannot find symbol
symbol  : class PositiveFloat
location: class mpicbg.imglib.io.ImageOpener
			PositiveFloat cal;
			^
./modules/imglib/imglib1/io/src/main/java/mpicbg/imglib/io/LOCI.java:472: cannot find symbol
symbol  : method getValue()
location: class java.lang.Double
			float cal = retrieve.getPixelsPhysicalSizeX( 0 ).getValue().floatValue();
			                                                ^
./modules/imglib/imglib1/io/src/main/java/mpicbg/imglib/io/LOCI.java:483: cannot find symbol
symbol  : method getValue()
location: class java.lang.Double
				cal = retrieve.getPixelsPhysicalSizeY( 0 ).getValue().floatValue();
				                                          ^
./modules/imglib/imglib1/io/src/main/java/mpicbg/imglib/io/LOCI.java:494: cannot find symbol
symbol  : method getValue()
location: class java.lang.Double
				cal = retrieve.getPixelsPhysicalSizeZ( 0 ).getValue().floatValue();
				                                          ^
5 errors
Fake failed: Compile error
	in rule imglib-io.jar <- imglib1/io/src/main/java/mpicbg/imglib/i...
	in rule jars/imglib-io.jar <- plugins/loci_tools.jar jars/imglib....
	in rule plugins/SPIM_Registration.jar <- src-plugins/SPIM_Registr...
	in rule all <- fiji jars/ij.jar misc/headless.jar plugins/loci_to...
Comment 1 Albert Cardona 2011-07-21 11:00:44 CDT
Additionally, the Scripting_.jar has the same problem as the imglib-io.jar:

Building plugins/Stitching_.jar <- src-plugins/Stitching_/stitchin...
src-plugins/Stitching_/Stitch_Multiple_Series_File.java:231: cannot find symbol
symbol  : method getValue()
location: class java.lang.Double
					cal = retrieve.getPixelsPhysicalSizeX( 0 ).getValue();
					                                          ^
src-plugins/Stitching_/Stitch_Multiple_Series_File.java:238: cannot find symbol
symbol  : method getValue()
location: class java.lang.Double
					cal = retrieve.getPixelsPhysicalSizeY( 0 ).getValue();
					                                          ^
src-plugins/Stitching_/Stitch_Multiple_Series_File.java:245: cannot find symbol
symbol  : method getValue()
location: class java.lang.Double
					cal = retrieve.getPixelsPhysicalSizeZ( 0 ).getValue();
					                                          ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
3 errors
Compile error
	in rule plugins/Stitching_.jar <- src-plugins/Stitching_/stitchin...
	in rule plugins/Trainable_Segmentation.jar <- src-plugins/Trainab...
	in rule all <- fiji jars/ij.jar misc/headless.jar plugins/loci_to...
Comment 2 Albert Cardona 2011-07-21 11:06:09 CDT
Finally, checking out the master branch of modules/bio-formats and rebuilding the loci_tools.jar like this:

./Build.sh plugins/loci_tools.jar-rebuild

... and then building again:

./Build.sh

... solved the compilation problem.

I cannot understand how this is different that what I originally did: pull and checkout the master branch of imglib, bio-formats, ImageJA, mpicbg and TrakEM2, and then run a ./Build.sh clean and a ./Build.sh.
Comment 3 Johannes Schindelin 2011-07-21 12:33:42 CDT
I vaguely remember that there was a recent update in the Bio-Formats submodule, but I did not have problems with compiling, so I did not check whether the precompiled/uploaded/committed versions of all involved components work together well...
Comment 4 Curtis Rueden 2011-07-21 15:27:18 CDT
As Johannes says, I recently updated the Bio-Formats submodule:
  http://pacific.mpi-cbg.de/cgi-bin/gitweb.cgi?p=fiji.git;a=commit;h=25d8637c48932a9a95921d568d47e789781379ca

But I did not update precompiled/loci_tools.jar. Could that be the cause?
Comment 5 Johannes Schindelin 2011-07-21 18:01:58 CDT
Curtis: only if the PositiveFloat was introduced since I committed precompiled/loci_tools.jar last. Let me see.

Clicketyclick.

No, it should be fine... Chris introduced the PositiveFloat class in 5abf3e0 on May 18 2011, but the latest precompiled loci_tools.jar is from de73a66 from June 5 2011.

Clicketyclick.

And the loci_tools.jar I committed into precompiled/ also has that class. I fear it is something with the dependencies (loci_tools.jar might not have been "built", but since Albert did not have a look at plugins/loci_tools.jar -- or whether it was there to begin with -- I am afraid that we will not find out now).

I am less worried because Jenkins actually succeeded just fine to build everything from scratch (with all submodules checked out). I should probably add a stage where all the submodules are emptied, git clean is called, and everything builds again, to make sure that the bare build (only with precompiled stuff) works. Will do so as I find time.
Comment 6 Curtis Rueden 2011-07-21 23:50:42 CDT
For Jenkins, I recommend we create a second job of "Fiji-basic" or some such, which builds without any submodules checked out. It will be easier to maintain two workspaces than one that bounces back and forth.
Comment 7 Johannes Schindelin 2011-07-22 01:00:59 CDT
That's how we did things on pacific (which is much snappier now that the nightly build was moved to Wisconsin, thank you!). But I could not really find out how to make Jenkins _not_ check out all submodules :-)