Issue 2: Race condition beetween loading threads
Status:  Fixed
Owner:
Closed:  Jul 2013
Reported by treil...@gmail.com, Jul 27, 2013
What steps will reproduce the problem?
1.Create a thread that load a dds file 
2.Launch multiple threads loading different images

What is the expected output? What do you see instead?
Expected : fully loaded images
Instead:
<code>
Exception in thread "Thread-9" java.lang.ArrayIndexOutOfBoundsException: 4
	at net.nikr.dds.DDSLineReader.decodeDXT(DDSLineReader.java:182)
	at net.nikr.dds.DDSLineReader.decodeLine(DDSLineReader.java:86)
	at net.nikr.dds.DDSImageReader.read(DDSImageReader.java:280)
	at javax.imageio.ImageIO.read(ImageIO.java:1448)
	at javax.imageio.ImageIO.read(ImageIO.java:1308)
	at lol.reader.img.Image.get(Image.java:37)
	at lol.viewer.table.CellFactory$2$2.loadProcess(CellFactory.java:215)
	at lol.viewer.table.CellFactory$2$2.loadProcess(CellFactory.java:1)
	at lol.viewer.table.CellLoader$1.run(CellLoader.java:91)
	at java.lang.Thread.run(Thread.java:722)
Exception in thread "Thread-11" java.lang.ArrayIndexOutOfBoundsException: 4096
	at net.nikr.dds.DDSLineReader.decodeAtiAndDxt5AlphaBlock(DDSLineReader.java:330)
	at net.nikr.dds.DDSLineReader.decodeDXT(DDSLineReader.java:172)
	at net.nikr.dds.DDSLineReader.decodeLine(DDSLineReader.java:86)
	at net.nikr.dds.DDSImageReader.read(DDSImageReader.java:280)
	at javax.imageio.ImageIO.read(ImageIO.java:1448)
	at javax.imageio.ImageIO.read(ImageIO.java:1308)
	at lol.reader.img.Image.get(Image.java:37)
	at lol.viewer.table.CellFactory$2$2.loadProcess(CellFactory.java:215)
	at lol.viewer.table.CellFactory$2$2.loadProcess(CellFactory.java:1)
	at lol.viewer.table.CellLoader$1.run(CellLoader.java:91)
	at java.lang.Thread.run(Thread.java:722)
</code>

What version of the product are you using? On what operating system?
version used : HEAD on Win7 64

Please provide any additional information below.

The issue seems to be solved by changing variable declaration in DDSLineReader from:
<code language="java">
   private static byte[][][] linesColor;
   private static int lineNumber = 0;
</code>
to:
<code language="java">
   private byte[][][] linesColor;
   private int lineNumber = 0;
</code>
Jul 27, 2013
Project Member #1 nikla...@gmail.com
Thank you for your bug report with included fix.

Suggested solution applied in r18
Status: Fixed
Owner: nikla...@gmail.com