Re: [aspectwerkz-dev] Sort of a bug in AspectWerkzPreProcessor.java

Alexandre Vasseur <[email protected]> Tue, 8 Feb 2005 11:27:10 +0100
Newsgroups gmane.comp.java.aspectwerkz.devel
Message-ID <[email protected]>
Hi

It is fixed in cvs head and thus will be part of 2.0 final
My apologies for not having tracking that one correctly

Alex


On Mon, 07 Feb 2005 15:54:01 +0100, Niklas Therning <[email protected]> wrote:
> Hi,
> 
> I noticed that this has not yet been fixed in RC3. At the moment I'm
> using my own patched version of AW. But I would rather be able to use
> the current release without having to patch anything. Any chances this
> will be fixed before 2.0? My particular problem seems to be with Xalan
> which I guess compiles XSLT-files into Java byte code on the fly.
> 
> /Niklas
> 
> Alexandre Vasseur wrote:
> 
> >Hi
> >
> >I will fix it in RC2. Just be aware that this means that someone is
> >trying to define a on the fly generated class (f.e. a proxy) with a
> >"null" name.
> >This has been deprecated (see javadoc for ClassLoader . defineClass)
> >but was used perhaps 6 month ago in some (old) cglib verrsion f.e.
> >
> >I ll let you know when fixed (though I won't have a good test case for it)
> >
> >Alex
> >
> >
> >On Tue, 07 Dec 2004 13:31:50 +0100, Niklas Therning <[email protected]> wrote:
> >
> >
> >>Hi,
> >>
> >>I've just started using AspectWerkz and I find it very useful! I'm using
> >>it in a cocoon-based webapp. My problem is that on each http request I
> >>get the following (several times) on the console:
> >>
> >>AspectWerkz - WARN - Error pre-processing class null in
> >>Thread[Thread-15,5,main]
> >>java.lang.NullPointerException
> >>        at
> >>org.codehaus.aspectwerkz.transform.AspectWerkzPreProcessor.preProcess(AspectWerkzPreProcessor.java:131)
> >>        at
> >>org.codehaus.aspectwerkz.hook.impl.ClassPreProcessorHelper.defineClass0Pre(ClassPreProcessorHelper.java:107)
> >>        at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
> >>        at java.lang.ClassLoader.defineClass(ClassLoader.java:448)
> >>        at
> >>org.apache.xalan.xsltc.trax.TemplatesImpl$TransletClassLoader.defineClass(TemplatesImpl.java:125)
> >>        at
> >>org.apache.xalan.xsltc.trax.TemplatesImpl.defineTransletClasses(TemplatesImpl.java:296)
> >>        at
> >>org.apache.xalan.xsltc.trax.TemplatesImpl.getTransletInstance(TemplatesImpl.java:333)
> >>        at
> >>org.apache.xalan.xsltc.trax.TemplatesImpl.newTransformer(TemplatesImpl.java:366)
> >>...
> >>
> >>The NPE is thrown on this line:
> >>
> >>final String className = name.replace('/', '.');
> >>
> >>I think it should rather be
> >>
> >>final String className = name != null ? name.replace('/', '.') : null;
> >>
> >>As I understand it the filter() method, which is called right after the
> >>line above, will filter out classes with a null name anyway.
> >>
> >>I guess it's not really a bug since
> >>ClassPreProcessorHelper.defineClass0Pre() uses the original byte-array
> >>if an exception is thrown within AspectWerkzPreProcessor.preProcess().
> >>The problem is that since this gets written directly to stderr there's
> >>no way for me to suppress these error messages and it's rely annoying
> >>and could even introduce a performance penalty in my application.
> >>
> >>Regards,
> >>Niklas Therning
> >>
> >>
> >>
> >>
> >
> >
> >
> 
>