Bug 28919

Summary: waever tries to weave into native methods ...
Product: [Tools] AspectJ Reporter: robsi <robert.fenk>
Component: CompilerAssignee: Erik Hilsdale <eh-ajdev>
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: P3    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 2000   
Whiteboard:

Description robsi CLA 2002-12-30 16:40:03 EST
If you don't find the exception below in a bug, please add a new bug
To make the bug a priority, please include a test program
that can reproduce this exception.
bad non-abstract method with no code: private native int 
nativeMessagePumpInitialize() on public class 
plc.comm.pvi.PviCom$LinkEventHandlerImpl
bad non-abstract method with no code: private native int 
nativeMessagePumpInitialize() on public class 
plc.comm.pvi.PviCom$LinkEventHandlerImpl
java.lang.RuntimeException: bad non-abstract method with no code: private 
native int nativeMessagePumpInitialize() on public class 
plc.comm.pvi.PviCom$LinkEventHandlerImpl
        at org.aspectj.weaver.bcel.LazyMethodGen.<init>(Unknown Source)
        at org.aspectj.weaver.bcel.LazyClassGen.<init>(Unknown Source)
        at org.aspectj.weaver.bcel.BcelObjectType.getLazyClassGen(Unknown 
Source)
        at org.aspectj.weaver.bcel.BcelWeaver.weave(Unknown Source)
        at org.aspectj.weaver.bcel.BcelWeaver.weave(Unknown Source)
        at 
org.aspectj.ajdt.internal.core.builder.AjBuildManager.weaveAndGenerateClassFiles
(Unknown Source)
        at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild
(Unknown Source)
        at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(Unknown Source)
        at org.aspectj.tools.ajc.Main.run(Unknown Source)
        at org.aspectj.tools.ajc.Main.runMain(Unknown Source)
        at org.aspectj.tools.ajc.Main.main(Unknown Source)
Comment 1 Erik Hilsdale CLA 2003-01-14 15:06:20 EST
The problem was an over-eager debugging guard that throws an exception when
given seriously malformed classfiles.  Seriously malformed, in this particular
case, being non-abstract with no code.  This has now been properly relaxed to
non-(abstract or native) with no code.