lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paul Chan" <wayofdra...@gmail.com>
Subject Re: ClassCastException when writing to index writer
Date Fri, 03 Oct 2008 22:07:12 GMT
I am using Java 1.6.0_02.  Is this a problem?

On Fri, Oct 3, 2008 at 5:35 PM, Michael McCandless <
lucene@mikemccandless.com> wrote:

>
> Which Java environment are you running?
>
> super.clone() from SegmentInfos should produce a new SegmentInfos object.
>
> It seems like in your case it's somehow producing a Vector instead?
>
> Mike
>
>
> Paul Chan wrote:
>
>  Hi Mike,
>>
>> I am actually using the Compass Search Engine which in turn makes use of
>> Lucene.  They are doing the following in their code:
>>
>>       IndexWriter indexWriter = new IndexWriter(dir, autoCommit, analyzer,
>> create, deletionPolicy);
>>
>> where autoCommit = false.
>>
>> In turn, Lucene will do the following:
>>
>> public class IndexWriter {
>>
>>     public IndexWriter(Directory d, boolean autoCommit, Analyzer a,
>> boolean create, IndexDeletionPolicy deletionPolicy)
>>      throws CorruptIndexException, LockObtainFailedException, IOException
>> {
>>         init(d, a, create, false, deletionPolicy, autoCommit);
>>     }
>>
>>     private void init(Directory d, Analyzer a, final boolean create,
>> boolean closeDir,                   IndexDeletionPolicy deletionPolicy,
>> boolean autoCommit)
>>     {
>>        ...
>>        ..
>>        if (!autoCommit) {
>>          rollbackSegmentInfos = (SegmentInfos) segmentInfos.clone();
>>        }
>>     }
>> }
>>
>> which calls the clone() method that causes the exception because
>> autoCommit
>> = false.
>>
>> On Fri, Oct 3, 2008 at 4:54 PM, Michael McCandless <
>> lucene@mikemccandless.com> wrote:
>>
>>
>>> Can you describe what led up to this exception?  Ie, what calls you made
>>> to
>>> Lucene before this.
>>>
>>> Mike
>>>
>>>
>>> Paul Chan wrote:
>>>
>>> I think I know what the problem is looking at the code:
>>>
>>>>
>>>> In SegmentInfos.java (line 321):
>>>>
>>>> class SegmentInfos extends Vector
>>>> {
>>>>  public Object clone() {
>>>>    SegmentInfos sis = (SegmentInfos) super.clone();
>>>>    for(int i=0;i<sis.size();i++) {
>>>>      sis.setElementAt(((SegmentInfo) sis.elementAt(i)).clone(), i);
>>>>    }
>>>>    return sis;
>>>>  }
>>>> }
>>>>
>>>> We see that it is trying to cast a Vector into SegmentInfos which
>>>> explains
>>>> the ClassCastException.  This is definitely a bug.
>>>>
>>>>
>>>> On Fri, Oct 3, 2008 at 3:40 PM, Paul Chan <wayofdragon@gmail.com>
>>>> wrote:
>>>>
>>>> Hi,
>>>>
>>>>>
>>>>> I am using lucene 2.3.2 and I encounter the following exception when
I
>>>>> try
>>>>> to insert a object into the index.
>>>>>
>>>>> Caused by: java.lang.ClassCastException: java.util.Vector cannot be
>>>>> cast
>>>>> to
>>>>> org.apache.lucene.index.SegmentInfos
>>>>> at org.apache.lucene.index.SegmentInfos.clone(SegmentInfos.java:321)
>>>>> at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:715)
>>>>> at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:666)
>>>>>
>>>>> Has Anyone seen this problem before?  What seems to be the problem?
>>>>>
>>>>> Thanks!
>>>>>
>>>>>
>>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>>
>>>
>>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message