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 114 - Exception during importing a stack
Exception during importing a stack
Status: RESOLVED FIXED
Product: Fiji
Classification: Unclassified
Component: TrakEM2
unspecified
PC Linux
: P2 normal
Assigned To: Albert Cardona
Depends on:
Blocks:
 
Reported: 2009-12-04 15:10 CST by Stephan Saalfeld
Modified: 2009-12-04 19:46 CST
0 users

See Also:

Description Stephan Saalfeld 2009-12-04 15:10:33 CST
I dragged a folder with 2000 images into a fresh TrakEM2 project and import this as a stack (one patch per layer).  This runs until about 1600 and then crashes with a number of exceptions of which I post here the first:

==================
ERROR:
java.lang.NullPointerException
	at ini.trakem2.display.Patch.<init>(Patch.java:110)
	at ini.trakem2.persistence.FSLoader.importStackAsPatches(FSLoader.java:1232)
	at ini.trakem2.persistence.Loader$8.run(Loader.java:3511)
	at java.lang.Thread.run(Thread.java:619)
==================
==================
ERROR:
java.io.FileNotFoundException: /media/saalfeld-sh/stack/trakem2.1259934840243.334737982.1628143856/trakem2.mipmaps/1/32/36.mouse_yz_1076.tif.jpg (Too many open files)
	at java.io.FileOutputStream.open(Native Method)
	at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
	at java.io.FileOutputStream.<init>(FileOutputStream.java:70)
	at ini.trakem2.io.ImageSaver.saveAsJpeg(ImageSaver.java:157)
	at ini.trakem2.io.ImageSaver.saveAsJpeg(ImageSaver.java:144)
	at ini.trakem2.persistence.FSLoader.generateMipMaps(FSLoader.java:1928)
	at ini.trakem2.persistence.FSLoader$7.call(FSLoader.java:2535)
	at ini.trakem2.persistence.FSLoader$7.call(FSLoader.java:2530)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)
==================

and:

Failed to save jpeg for GRAY8, 'alpha = null', level = 0 for  patch mouse_yz_1097.tif z=1097.0 #3299
==================
ERROR:
javax.imageio.IIOException: Can't create cache file!
	at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:397)
	at ini.trakem2.io.ImageSaver.saveAsJpeg(ImageSaver.java:159)
	at ini.trakem2.io.ImageSaver.saveAsJpeg(ImageSaver.java:144)
	at ini.trakem2.persistence.FSLoader.generateMipMaps(FSLoader.java:1928)
	at ini.trakem2.persistence.FSLoader$7.call(FSLoader.java:2535)
	at ini.trakem2.persistence.FSLoader$7.call(FSLoader.java:2530)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: Too many open files
	at java.io.UnixFileSystem.createFileExclusively(Native Method)
	at java.io.File.checkAndCreate(File.java:1704)
	at java.io.File.createTempFile(File.java:1792)
	at javax.imageio.stream.FileCacheImageOutputStream.<init>(FileCacheImageOutputStream.java:71)
	at com.sun.imageio.spi.OutputStreamImageOutputStreamSpi.createOutputStreamInstance(OutputStreamImageOutputStreamSpi.java:50)
	at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:393)
	... 10 more
==> Caused by:
java.io.IOException: Too many open files
	at java.io.UnixFileSystem.createFileExclusively(Native Method)
	at java.io.File.checkAndCreate(File.java:1704)
	at java.io.File.createTempFile(File.java:1792)
	at javax.imageio.stream.FileCacheImageOutputStream.<init>(FileCacheImageOutputStream.java:71)
	at com.sun.imageio.spi.OutputStreamImageOutputStreamSpi.createOutputStreamInstance(OutputStreamImageOutputStreamSpi.java:50)
	at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:393)
	at ini.trakem2.io.ImageSaver.saveAsJpeg(ImageSaver.java:159)
	at ini.trakem2.io.ImageSaver.saveAsJpeg(ImageSaver.java:144)
	at ini.trakem2.persistence.FSLoader.generateMipMaps(FSLoader.java:1928)
	at ini.trakem2.persistence.FSLoader$7.call(FSLoader.java:2535)
	at ini.trakem2.persistence.FSLoader$7.call(FSLoader.java:2530)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)
==================

and so on...
Comment 1 Albert Cardona 2009-12-04 19:46:45 CST
Fix pushed.
There were open file handles from ImageSaver recent changes. ImageIO is deceptively evil.