Hi Paul,
now i'm curious to know how the overriden java.util.Vector implements the clone
method. Any chance of posting a snippet? ;)
Cheers,
Edwin
--- Paul Chan <[EMAIL PROTECTED]> wrote:
> Seems like I found the culprit to the problem. Because I am using
> Terracotta to doing JVM clustering, it has overriden many classes of
> java.util.*. If I take out Terracotta from my configuration, then I don't
> get the ClassCastException problem any longer. I will talk to the
> Terracotta folks to see if I have done something wrong on my end.
>
> Thanks again for everyone's help!
>
> On Mon, Oct 6, 2008 at 12:26 PM, Paul Chan <[EMAIL PROTECTED]> wrote:
>
> > Hi Edwin,
> >
> > Yes, I am running the TestVector against the same class path as my actual
> > application. My class path contains the Lucene JAR files. This is very
> > bizzard because my TestVector class extends Vector and it works, but for
> > some reason SegmentInfos also extends Vector but it doesnt work.
> > I did some more investigation and I found the following:
> >
> > final class SegmentInfos extends Vector
> > {
> > public Object clone() {
> > Object a = super.clone(); --> code that I added to do some debug
> > SegmentInfos sis = (SegmentInfos) a;
> > ...
> > }
> > }
> >
> > When super.clone() returns, it actually returns a Vector object instead of
> > a SegmentInfos object against my expectation so that explains why the
> > ClassCastException occurs. On the other hand, when I run my TestVector
> > class:
> >
> > final class TestVector extends Vector
> > {
> > public Object clone() {
> > Object a = super.clone(); --> code that I added to do some debug
> > TestVector sis = (TestVector) a;
> > ...
> > }
> > }
> >
> > When super.clone() returns, it returns TestVector!
> >
> > This tells me that there is something wrong with Lucene build file that
> > causes this problem, but I have no idea what it could be. In Lucene's
> > common-build.xml, I changed the 1.4 properties to 1.6 propreties but still
> > to no avail.
> >
> >
> >
> > On Mon, Oct 6, 2008 at 12:04 PM, Edwin Lee
> <[EMAIL PROTECTED]>wrote:
> >
> >> Hi Paul,
> >>
> >> When you say that your dummy TestVector class works, are you running it
> >> using
> >> the same classpaths that you used to run your actual application? Does it
> >> contain the Lucene JAR files?
> >>
> >>
> >>
> >> Regards,
> >> Edwin
> >>
> >>
> >>
> >> --- Paul Chan <[EMAIL PROTECTED]> wrote:
> >>
> >> > I have tried to recompile Lucene 2.3.2 under my environment (SUN JDK
> >> 1.6)
> >> > and it still doesn't work. I am beginning to think that maybe there is
> >> > something wrong with lucene's build script. My TestVector class's
> >> clone()
> >> > method works without a hitch, but SegmentInfos' clone() method doesnt
> >> work
> >> > at all. I don't really know what to do at this moment. Does anyone
> >> have
> >> > any insight?
> >> >
> >> > On Sun, Oct 5, 2008 at 10:45 PM, Paul Chan <[EMAIL PROTECTED]>
> >> wrote:
> >> >
> >> > > Thank you all for your input. However, this is what I have discovered
> >> so
> >> > > far:
> >> > >
> >> > > - I tried running the test that Edwin suggested and it failed for
> >> me in
> >> > > my environment (Lucene 2.3.2, Windows XP, SUN JDK 1.5 or 1.6)
> >> > >
> >> > > e.g. SegmentInfos sis = new SegmentInfos();
> >> > > SegmentInfos sis2 = (SegmentInfos) sis.clone();
> >> > >
> >> > > - Interestingly, I tried to create a dummy test class which mimics
> >> > > SegmentInfos as follows and it works!:
> >> > >
> >> > > public class TestVector extends Vector
> >> > > {
> >> > > public TestVector clone()
> >> > > {
> >> > > TestVector cl = (TestVector)super.clone();
> >> > > return cl;
> >> > > }
> >> > > }
> >> > >
> >> > > TestVector vector = new TestVector();
> >> > > TestVector vClone = (TestVector)vector.clone();
> >> > >
> >> > > - This tells me that perhaps there is something wrong with the
> >> lucene
> >> > > package that I have downloaded (some sort of incompatibility?). I
> >> will
> >> > try
> >> > > to recompile the lucene package in my own environment and see if I
> >> can
> >> > fix
> >> > > the problem.
> >> > >
> >> > >
> >> > > On Sat, Oct 4, 2008 at 2:21 AM, Edwin Lee <[EMAIL PROTECTED]
> >> >wrote:
> >> > >
> >> > >> i think, very likely, you have another copy of java.util.Vector
> >> loaded,
> >> > >> and
> >> > >> this one tries to be too clever with its implementation of clone
> >> > >> (instantiate a
> >> > >> new Vector instance) instead of delegating to its super class
> >> (Object).
> >> > >>
> >> > >>
> >> > >>
> >> > >> HTH,
> >> > >> Edwin
> >> > >>
> >> > >>
> >> > >>
> >> > >> --- Chris Hostetter <[EMAIL PROTECTED]> wrote:
> >> > >>
> >> > >> >
> >> > >> > : SegmentInfos sis = (SegmentInfos) super.clone();
> >> > >> >
> >> > >> > : We see that it is trying to cast a Vector into SegmentInfos which
> >> > >> explains
> >> > >> > : the ClassCastException. This is definitely a bug.
> >> > >> >
> >> > >> > I'm really not sure how you could be getting that
> >> ClassCastException
> >> > >> > unless there's a really horrific bug in the JRE you are using.
> >> > >> >
> >> > >> > You'll see this in just about every (non-trivial) use of
> >> super.clone()
> >> > >> ...
> >> > >>
> >> > >>
> >> > >>
> >> > >> Yahoo! Toolbar is now powered with Search Assist.Download it
> >> now!
> >> > >> http://sg.toolbar.yahoo.com/
> >> > >>
> >> > >>
> >> > >> ---------------------------------------------------------------------
> >> > >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> > >> For additional commands, e-mail: [EMAIL PROTECTED]
> >> > >>
> >> > >>
> >> > >
> >> >
> >>
> >>
> >>
> >> Get your preferred Email name!
> >> Now you can @ymail.com and @rocketmail.com
> >> http://mail.promotions.yahoo.com/newdomains/sg/
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >
>
New Email names for you!
Get the Email name you've always wanted on the new @ymail and @rocketmail.
Hurry before someone else does!
http://mail.promotions.yahoo.com/newdomains/sg/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]