Bug 151845 - NPE while building
Summary: NPE while building
Status: RESOLVED FIXED
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: DEVELOPMENT   Edit
Hardware: PC Linux-GTK
: P3 normal (vote)
Target Milestone: 1.5.3   Edit
Assignee: aspectj inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 152024 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-07-26 09:44 EDT by Hermann Voßeler CLA
Modified: 2006-07-31 03:32 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hermann Voßeler CLA 2006-07-26 09:44:50 EDT
Building of a large project fails while weaving. 
NPE in EclipseSourceContext.removeUnnecessaryProblems(..)

The project was just migrated to Eclipse 3.2
Eclipse newly installed with Eclipse SDK and via Update manager with
AJDT, CDT, Web/J2EE tools, SubClipse, SpringIDE.

Same Project workes in Eclipse 3.1.
Simple Test AspectJ-Project workes OK
Building with Ant/AspectJ compiler (as external Tools Launch in Eclipse)
works.

I tried the following, but got the error anyway:
 - Checked out as a new AspectJ Project
 - upgraded to the developement Version of AJDT
Comment 1 Hermann Voßeler CLA 2006-07-26 09:47:56 EDT
Version: 1.4.1
Build id: 20060726064959
AspectJ version: 1.5.3.20060726092219


Stacktrace/Error Output:
java.lang.NullPointerException
at org.aspectj.ajdt.internal.core.builder.EclipseSourceContext.removeUnnecessaryProblems(EclipseSourceContext.java:82)
at org.aspectj.weaver.bcel.BcelAdvice.removeUnnecessaryProblems(BcelAdvice.java:297)
at org.aspectj.weaver.bcel.BcelAdvice.implementOn(BcelAdvice.java:214)
at org.aspectj.weaver.Shadow.implementMungers(Shadow.java:684)
at org.aspectj.weaver.Shadow.implement(Shadow.java:471)
at org.aspectj.weaver.bcel.BcelClassWeaver.implement(BcelClassWeaver.java:2825)
at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:502)
at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:115)
at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1591)
at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1542)
at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1322)
at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1143)
at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.weave(AjCompilerAdapter.java:321)
at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.afterCompiling(AjCompilerAdapter.java:192)
at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc$afterReturning$org_aspectj_ajdt_internal_compiler_CompilerAdapter$2$f9cc9ca0(CompilerAdapter.aj:70)
at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:367)
at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:890)
at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:245)
at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:164)
at org.aspectj.ajde.internal.CompilerAdapter.compile(CompilerAdapter.java:122)
at org.aspectj.ajde.internal.AspectJBuildManager$CompilerThread.run(AspectJBuildManager.java:191)

trouble in: 
public abstract class baag.boa.esn.client.ESNEnumDao extends java.lang.Object implements baag.boa.mvc.element.enums.EnumFilter:
  protected baag.boa.common.interfaces.ESN esn
  private String filterDaoID
  private baag.boa.esn.server.workflowfw.dao.ClientDataDao filterDAO
  private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 [Synthetic]
  public void <init>():
                    ALOAD_0     // Lbaag/boa/esn/client/ESNEnumDao; this   (line 37)
                    INVOKESPECIAL java.lang.Object.<init> ()V
    constructor-execution(void baag.boa.esn.client.ESNEnumDao.<init>())
    |               ALOAD_0     // Lbaag/boa/esn/client/ESNEnumDao; this   (line 47)
    |               ACONST_NULL
    |               PUTFIELD baag.boa.esn.client.ESNEnumDao.filterDaoID Ljava/lang/String;
    |               ALOAD_0     // Lbaag/boa/esn/client/ESNEnumDao; this   (line 59)
    |               ACONST_NULL
    |               PUTFIELD baag.boa.esn.client.ESNEnumDao.filterDAO Lbaag/boa/esn/server/workflowfw/dao/ClientDataDao;
    |               RETURN   (line 37)
    constructor-execution(void baag.boa.esn.client.ESNEnumDao.<init>())
  end public void <init>()

  public void setEsn(baag.boa.common.interfaces.ESN)    org.aspectj.weaver.MethodDeclarationLineNumber: 42:1596
:
    method-execution(void baag.boa.esn.client.ESNEnumDao.setEsn(baag.boa.common.interfaces.ESN))
    |               ALOAD_0     // Lbaag/boa/esn/client/ESNEnumDao; this   (line 42)
    |               ALOAD_1     // Lbaag/boa/common/interfaces/ESN; esn
    |               PUTFIELD baag.boa.esn.client.ESNEnumDao.esn Lbaag/boa/common/interfaces/ESN;
    |               RETURN
    method-execution(void baag.boa.esn.client.ESNEnumDao.setEsn(baag.boa.common.interfaces.ESN))
  end public void setEsn(baag.boa.common.interfaces.ESN)

  public void setFilterDaoID(String)    org.aspectj.weaver.MethodDeclarationLineNumber: 46:1754
:
    method-execution(void baag.boa.esn.client.ESNEnumDao.setFilterDaoID(java.lang.String))
    |               ALOAD_0     // Lbaag/boa/esn/client/ESNEnumDao; this   (line 46)
    |               ALOAD_1     // Ljava/lang/String; fidID
    |               PUTFIELD baag.boa.esn.client.ESNEnumDao.filterDaoID Ljava/lang/String;
    |               RETURN
    method-execution(void baag.boa.esn.client.ESNEnumDao.setFilterDaoID(java.lang.String))
  end public void setFilterDaoID(String)

  protected baag.boa.esn.server.workflowfw.dao.ClientDataDao getFilter() throws baag.boa.exception.BOAException    org.aspectj.weaver.MethodDeclarationLineNumber: 51:1946
:
    method-execution(baag.boa.esn.server.workflowfw.dao.ClientDataDao baag.boa.esn.client.ESNEnumDao.getFilter())
    |               ALOAD_0     // Lbaag/boa/esn/client/ESNEnumDao; this   (line 52)
    | field-get(baag.boa.esn.server.workflowfw.dao.ClientDataDao baag.boa.esn.client.ESNEnumDao.filterDAO)
    | |             GETFIELD baag.boa.esn.client.ESNEnumDao.filterDAO Lbaag/boa/esn/server/workflowfw/dao/ClientDataDao;
    | field-get(baag.boa.esn.server.workflowfw.dao.ClientDataDao baag.boa.esn.client.ESNEnumDao.filterDAO)
    |               IFNONNULL L1
    |               ALOAD_0     // Lbaag/boa/esn/client/ESNEnumDao; this   (line 53)
    | field-get(java.lang.String baag.boa.esn.client.ESNEnumDao.filterDaoID)
    | |             GETFIELD baag.boa.esn.client.ESNEnumDao.filterDaoID Ljava/lang/String;
    | field-get(java.lang.String baag.boa.esn.client.ESNEnumDao.filterDaoID)
    |               IFNONNULL L0
    |               NEW baag.boa.exception.BOARuntimeException   (line 54)
    |               DUP
    |               LDC "Fehlkonfig: ID für Filter-DAO nicht definiert."
    | constructor-call(void baag.boa.exception.BOARuntimeException.<init>(java.lang.String))
    | |             INVOKESPECIAL baag.boa.exception.BOARuntimeException.<init> (Ljava/lang/String;)V
    | constructor-call(void baag.boa.exception.BOARuntimeException.<init>(java.lang.String))
    |               ATHROW
    |           L0: ALOAD_0     // Lbaag/boa/esn/client/ESNEnumDao; this   (line 55)
    |               ALOAD_0     // Lbaag/boa/esn/client/ESNEnumDao; this
    | field-get(baag.boa.common.interfaces.ESN baag.boa.esn.client.ESNEnumDao.esn)
    | |             GETFIELD baag.boa.esn.client.ESNEnumDao.esn Lbaag/boa/common/interfaces/ESN;
    | field-get(baag.boa.common.interfaces.ESN baag.boa.esn.client.ESNEnumDao.esn)
    |               ALOAD_0     // Lbaag/boa/esn/client/ESNEnumDao; this
    | field-get(java.lang.String baag.boa.esn.client.ESNEnumDao.filterDaoID)
    | |             GETFIELD baag.boa.esn.client.ESNEnumDao.filterDaoID Ljava/lang/String;
    | field-get(java.lang.String baag.boa.esn.client.ESNEnumDao.filterDaoID)
    |               ASTORE_1
    |               ASTORE_2
    | method-call(baag.boa.esn.server.workflowfw.dao.ClientDataDao baag.boa.common.interfaces.ESN.filterData(java.lang.String))
    | |             INVOKESTATIC baag.boa.common.connect.ServerFasadenDefinition.aspectOf ()Lbaag/boa/common/connect/ServerFasadenDefinition;
    | |             ALOAD_2
    | |             BIPUSH 3
    | |             ANEWARRAY java.lang.Object
    | |             ASTORE_3
    | |             ALOAD_3
    | |             BIPUSH 0
    | |             ALOAD_0
    | |             AASTORE
    | |             ALOAD_3
    | |             BIPUSH 1
    | |             ALOAD_2
    | |             AASTORE
    | |             ALOAD_3
    | |             BIPUSH 2
    | |             ALOAD_1
    | |             AASTORE
    | |             NEW baag.boa.esn.client.ESNEnumDao$AjcClosure1
    | |             DUP
    | |             ALOAD_3
    | |             INVOKESPECIAL baag.boa.esn.client.ESNEnumDao$AjcClosure1.<init> ([Ljava/lang/Object;)V
    | |             GETSTATIC baag.boa.esn.client.ESNEnumDao.ajc$tjp_0 Lorg/aspectj/lang/JoinPoint$StaticPart;
    | |             INVOKEVIRTUAL baag.boa.common.connect.RufServer.ajc$around$baag_boa_common_connect_RufServer$1$19b2b7d5 (Ljava/lang/Object;Lorg/aspectj/runtime/internal/AroundClosure;Lorg/aspectj/lang/JoinPoint$StaticPart;)Ljava/lang/Object;
    | |             CHECKCAST baag.boa.esn.server.workflowfw.dao.ClientDataDao
    | method-call(baag.boa.esn.server.workflowfw.dao.ClientDataDao baag.boa.common.interfaces.ESN.filterData(java.lang.String))
    |               PUTFIELD baag.boa.esn.client.ESNEnumDao.filterDAO Lbaag/boa/esn/server/workflowfw/dao/ClientDataDao;
    |           L1: ALOAD_0     // Lbaag/boa/esn/client/ESNEnumDao; this   (line 57)
    | field-get(baag.boa.esn.server.workflowfw.dao.ClientDataDao baag.boa.esn.client.ESNEnumDao.filterDAO)
    | |             GETFIELD baag.boa.esn.client.ESNEnumDao.filterDAO Lbaag/boa/esn/server/workflowfw/dao/ClientDataDao;
    | field-get(baag.boa.esn.server.workflowfw.dao.ClientDataDao baag.boa.esn.client.ESNEnumDao.filterDAO)
    |               ARETURN
    method-execution(baag.boa.esn.server.workflowfw.dao.ClientDataDao baag.boa.esn.client.ESNEnumDao.getFilter())
  end protected baag.boa.esn.server.workflowfw.dao.ClientDataDao getFilter() throws baag.boa.exception.BOAException

  public java.util.List select() throws baag.boa.exception.BOAException    org.aspectj.weaver.MethodDeclarationLineNumber: 70:2497
:
    method-execution(java.util.List baag.boa.esn.client.ESNEnumDao.select())
    |               ALOAD_0     // Lbaag/boa/esn/client/ESNEnumDao; this   (line 71)
    | method-call(baag.boa.esn.server.workflowfw.dao.ClientDataDao baag.boa.esn.client.ESNEnumDao.getFilter())
    | |             INVOKEVIRTUAL baag.boa.esn.client.ESNEnumDao.getFilter ()Lbaag/boa/esn/server/workflowfw/dao/ClientDataDao;
    | method-call(baag.boa.esn.server.workflowfw.dao.ClientDataDao baag.boa.esn.client.ESNEnumDao.getFilter())
    |               ASTORE_1
    |               ALOAD_1     // Lbaag/boa/esn/server/workflowfw/dao/ClientDataDao; dau   (line 72)
    |               ICONST_0
    | method-call(void baag.boa.esn.server.workflowfw.dao.ClientDataDao.setBisElement(int))
    | |             INVOKEINTERFACE baag.boa.esn.server.workflowfw.dao.ClientDataDao.setBisElement (I)V
    | method-call(void baag.boa.esn.server.workflowfw.dao.ClientDataDao.setBisElement(int))
    |               ALOAD_0     // Lbaag/boa/esn/client/ESNEnumDao; this   (line 73)
    |               ALOAD_0     // Lbaag/boa/esn/client/ESNEnumDao; this
    | field-get(baag.boa.common.interfaces.ESN baag.boa.esn.client.ESNEnumDao.esn)
    | |             GETFIELD baag.boa.esn.client.ESNEnumDao.esn Lbaag/boa/common/interfaces/ESN;
    | field-get(baag.boa.common.interfaces.ESN baag.boa.esn.client.ESNEnumDao.esn)
    |               ALOAD_1     // Lbaag/boa/esn/server/workflowfw/dao/ClientDataDao; dau
    | method-call(java.util.List baag.boa.common.interfaces.ESN.getPresentationList(baag.boa.esn.server.workflowfw.dao.ClientDataDao))
    | |             INVOKEINTERFACE baag.boa.common.interfaces.ESN.getPresentationList (Lbaag/boa/esn/server/workflowfw/dao/ClientDataDao;)Ljava/util/List;
    | method-call(java.util.List baag.boa.common.interfaces.ESN.getPresentationList(baag.boa.esn.server.workflowfw.dao.ClientDataDao))
    | method-call(java.util.List baag.boa.esn.client.ESNEnumDao.adaptiere(java.util.List))
    | |             INVOKEVIRTUAL baag.boa.esn.client.ESNEnumDao.adaptiere (Ljava/util/List;)Ljava/util/List;
    | method-call(java.util.List baag.boa.esn.client.ESNEnumDao.adaptiere(java.util.List))
    |               ARETURN
    method-execution(java.util.List baag.boa.esn.client.ESNEnumDao.select())
  end public java.util.List select() throws baag.boa.exception.BOAException

  protected abstract java.util.List adaptiere(java.util.List)    org.aspectj.weaver.MethodDeclarationLineNumber: 79:2853
;

  static final baag.boa.esn.server.workflowfw.dao.ClientDataDao filterData_aroundBody0(baag.boa.esn.client.ESNEnumDao, baag.boa.common.interfaces.ESN, String):
                    ALOAD_1
                    ALOAD_2
                    INVOKEINTERFACE baag.boa.common.interfaces.ESN.filterData (Ljava/lang/String;)Lbaag/boa/esn/server/workflowfw/dao/ClientDataDao;   (line 55)
                    ARETURN
  end static final baag.boa.esn.server.workflowfw.dao.ClientDataDao filterData_aroundBody0(baag.boa.esn.client.ESNEnumDao, baag.boa.common.interfaces.ESN, String)
end public abstract class baag.boa.esn.client.ESNEnumDao

public class baag.boa.esn.client.ESNEnumDao$AjcClosure1 extends org.aspectj.runtime.internal.AroundClosure:
  public void <init>(Object[]):
                    ALOAD_0
                    ALOAD_1
                    INVOKESPECIAL org.aspectj.runtime.internal.AroundClosure.<init> ([Ljava/lang/Object;)V
                    RETURN
  end public void <init>(Object[])

  public Object run(Object[]):
                    ALOAD_0
                    GETFIELD org.aspectj.runtime.internal.AroundClosure.state [Ljava/lang/Object;
                    ASTORE_2
                    ALOAD_2
                    BIPUSH 0
                    AALOAD
                    CHECKCAST baag.boa.esn.client.ESNEnumDao
                    ALOAD_1
                    BIPUSH 0
                    AALOAD
                    CHECKCAST baag.boa.common.interfaces.ESN
                    ALOAD_2
                    BIPUSH 2
                    AALOAD
                    CHECKCAST java.lang.String
                    INVOKESTATIC baag.boa.esn.client.ESNEnumDao.filterData_aroundBody0 (Lbaag/boa/esn/client/ESNEnumDao;Lbaag/boa/common/interfaces/ESN;Ljava/lang/String;)Lbaag/boa/esn/server/workflowfw/dao/ClientDataDao;
                    ARETURN
  end public Object run(Object[])
end public class baag.boa.esn.client.ESNEnumDao$AjcClosure1

when implementing on shadow method-call(baag.boa.esn.server.workflowfw.dao.ClientDataDao baag.boa.common.interfaces.ESN.filterData(java.lang.String))
when weaving type baag.boa.esn.client.ESNEnumDao
when weaving classes 
when weaving 
when batch building BuildConfig[/home/hiv/devel/Arbeit/.metadata/.plugins/org.eclipse.ajdt.core/BOA3.generated.lst] #Files=658
Comment 2 Matt Chapman CLA 2006-07-27 04:42:50 EDT
Passing over to compiler
Comment 3 Andrew Clement CLA 2006-07-27 05:24:49 EDT
fix committed.  NPE guard.
Comment 4 Matt Chapman CLA 2006-07-27 18:58:12 EDT
*** Bug 152024 has been marked as a duplicate of this bug. ***
Comment 5 Andrew Clement CLA 2006-07-31 03:32:07 EDT
fix available in AJ dev builds.