NullPointerException when calling sizeInBytes and setHasVectors concurrently.
-----------------------------------------------------------------------------

                 Key: LUCENE-3066
                 URL: https://issues.apache.org/jira/browse/LUCENE-3066
             Project: Lucene - Java
          Issue Type: Bug
    Affects Versions: 3.1
         Environment: java 1.6.0_24 
Ubuntu 10.10
            Reporter: Adrian Nistor
         Attachments: Test.java

Hi,

I am encountering a NullPointerException when using 
org.apache.lucene.index.SegmentInfo. It appears in version 3.1.0 and also in 
revision 1099085 (May 3rd 2011).

The NullPointerException is thrown by SegmentInfo.sizeInBytes(false) when 
calling SegmentInfo.sizeInBytes(false) and SegmentInfo.setHasVectors(true) in 
parallel. When these methods are called sequentially, they do not throw any 
exception.

I have attached a test that exposes this problem. If you set ExposeBug = true,
the methods are called concurrently and you get the NullPointerException. If you
set  ExposeBug = false, the methods are called sequentially, and there is no
exception. Note that, in the sequential version, the methods are called many
times (just like in the parallel version), and in different orders (just like
in the parallel version).

The concurrent test (ExposeBug = true) always throws NullPointerException 
under heavy load (ManyIterations = 100000000). Under small load (e.g., if you
set ManyIterations = 10), the NullPointerException will not manifest. I suppose
you need a certain thread interleaving for the NullPointerException to happen,
and thus you need the heavy load.

Is this a bug? Is there a patch for it?

Thanks!

Adrian


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

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

Reply via email to