users@jaxb.java.net

Re: fix for possible bug in reflection library

From: Kohsuke Kawaguchi <Kohsuke.Kawaguchi_at_Sun.COM>
Date: Fri, 22 Jun 2007 16:10:59 -0700

Thanks. I applied your fix and made a similar change in a few other places.

Hunor Bartha wrote:
> Hello,
>
> i'm using the reflection library and i had an exception when i tried to
> access the runtime information from the jaxb pojos. I've posted a
> message on this list with the error:
>
> Exception in thread "main" java.lang.NullPointerException
> at
> org.jvnet.jaxb.reflection.runtime.reflect.Accessor$FieldReflection.optimize(Unknown
>
> Source)
> at
> org.jvnet.jaxb.reflection.runtime.reflect.TransducedAccessor$CompositeTransducedAccessorImpl.<init>(Unknown
>
> Source)
> at
> org.jvnet.jaxb.reflection.runtime.reflect.TransducedAccessor.get(Unknown
> Source)
> at
> org.jvnet.jaxb.reflection.model.impl.RuntimeClassInfoImpl.calcTransducer(Unknown
>
> Source)
> at
> org.jvnet.jaxb.reflection.model.impl.RuntimeClassInfoImpl.getTransducer(Unknown
>
> Source)
> at
> org.jvnet.jaxb.reflection.model.impl.RuntimeClassInfoImpl.link(Unknown
> Source)
> at org.jvnet.jaxb.reflection.model.impl.ModelBuilder.link(Unknown
> Source)
> at
> org.jvnet.jaxb.reflection.model.impl.RuntimeModelBuilder.link(Unknown
> Source)
> at org.jvnet.jaxb.reflection.JAXBModelFactory.create(Unknown Source)
> at org.jvnet.jaxb.reflection.JAXBModelFactory.create(Unknown Source)
> at org.jvnet.jaxb.reflection.JAXBModelFactory.create(Unknown Source)
>
>
> The fix is an additional condition in the
> org.jvnet.jaxb.reflection.runtime.reflect.Accessor.java (line 200)
>
> @Override
> public Accessor<BeanT,ValueT> optimize(JAXBContextImpl context) {
> if(*context!=null *&& context.fastBoot)
> // let's not waste time on doing this for the sake of
> faster boot.
> return this;
> Accessor<BeanT,ValueT> acc = OptimizedAccessorFactory.get(f);
> if(acc!=null)
> return acc;
> else
> return this;
> }
>
> I don't know it the exception is caused by improper usage of the library
> or nut but i think the NPE guard won't do any harm, so would it be
> possible to include it in the next release, or the nightly builds? Right
> now with this fix i was able to solve our problems but it would be nice
> if we could just use the official release not the one compiled by us.
>
> Thanks,
>
> hunor
>
>
>
>


-- 
Kohsuke Kawaguchi
Sun Microsystems                   kohsuke.kawaguchi_at_sun.com