Bug 186884 - Unhandled Kind of New Exception when have advice for Pointcut call(Throwable+.new(..))
Summary: Unhandled Kind of New Exception when have advice for Pointcut call(Throwable+...
Status: RESOLVED FIXED
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: 1.5.3   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 1.6.2   Edit
Assignee: aspectj inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-05-14 17:02 EDT by jennie CLA
Modified: 2008-09-30 18:55 EDT (History)
1 user (show)

See Also:


Attachments
Reproducible bug test case (445.14 KB, application/x-zip-compressed)
2007-05-14 17:03 EDT, jennie CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description jennie CLA 2007-05-14 17:02:02 EDT
I get this error when weaving a LifeRay jar (compression-filter.jar). 

Unhandled kind of new   -1: impdep1[254](1)
when implementing on shadow constructor-call(void java.lang.NoClassDefFoundError.<init>()) when weaving classes ..

To reproduce: 

1)extract TestCase.zip. 
2) Go to the expanded TestCase/ directory.

3)do: ajc ThrowablesAspect.aj -log "test.log" -cp "<path to aspectjrt.jar>;lib\commons-logging-1.0.4.jar;lib\servlet-api.jar;lib\util-java.jar;lib\portal-kernel.jar" -injars compression-filter.jar -outjar compression-filter.jar.new

4) ajc will say there are 2 fail|aborts

NOTE: No advice or doing "around()" doesn't produce the error. The error happens when having at least "before()" or "after()" advice. I tried empty advice and it still fails. 



Full Stack Trace:
--------
trouble in: 
public class com.liferay.filters.compression.CompressionFilter extends java.lang.Object implements javax.servlet.Filter:
  static boolean useCompressionFilter
  public static final String ENCODING
  private static final String _ALREADY_FILTERED
  private static final String _COMPRESS = "compress"
  private static final String _INCLUDE = "javax.servlet.include.request_uri"
  private static org.apache.commons.logging.Log _log
  static Class class$com$liferay$filters$compression$CompressionFilter [Synthetic]
  public void init(javax.servlet.FilterConfig):
    method-execution(void com.liferay.filters.compression.CompressionFilter.init(javax.servlet.FilterConfig))
    |               RETURN   (line 80)
    method-execution(void com.liferay.filters.compression.CompressionFilter.init(javax.servlet.FilterConfig))
  end public void init(javax.servlet.FilterConfig)

  public void doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) throws java.io.IOException, javax.servlet.ServletException:
    method-execution(void com.liferay.filters.compression.CompressionFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain))
    |               GETSTATIC com.liferay.filters.compression.CompressionFilter._log Lorg/apache/commons/logging/Log;   (line 86)
    | method-call(boolean org.apache.commons.logging.Log.isDebugEnabled())
    | |             INVOKEINTERFACE org.apache.commons.logging.Log.isDebugEnabled ()Z
    | method-call(boolean org.apache.commons.logging.Log.isDebugEnabled())
    |               IFEQ L1
    |               GETSTATIC com.liferay.filters.compression.CompressionFilter.useCompressionFilter Z   (line 87)
    |               IFEQ L0
    |               GETSTATIC com.liferay.filters.compression.CompressionFilter._log Lorg/apache/commons/logging/Log;   (line 88)
    |               LDC "Compression is enabled"
    | method-call(void org.apache.commons.logging.Log.debug(java.lang.Object))
    | |             INVOKEINTERFACE org.apache.commons.logging.Log.debug (Ljava/lang/Object;)V
    | method-call(void org.apache.commons.logging.Log.debug(java.lang.Object))
    |               GOTO L1
    |           L0: GETSTATIC com.liferay.filters.compression.CompressionFilter._log Lorg/apache/commons/logging/Log;   (line 91)
    |               LDC "Compression is disabled"
    | method-call(void org.apache.commons.logging.Log.debug(java.lang.Object))
    | |             INVOKEINTERFACE org.apache.commons.logging.Log.debug (Ljava/lang/Object;)V
    | method-call(void org.apache.commons.logging.Log.debug(java.lang.Object))
    |           L1: ALOAD_1     // Ljavax/servlet/ServletRequest; req   (line 95)
    |               CHECKCAST javax.servlet.http.HttpServletRequest
    |               ASTORE 4     // Ljavax/servlet/http/HttpServletRequest; httpReq
    |               ALOAD_2     // Ljavax/servlet/ServletResponse; res   (line 96)
    |               CHECKCAST javax.servlet.http.HttpServletResponse
    |               ASTORE 5     // Ljavax/servlet/http/HttpServletResponse; httpRes
    |               ALOAD 4     // Ljavax/servlet/http/HttpServletRequest; httpReq   (line 98)
    |               GETSTATIC com.liferay.filters.compression.CompressionFilter.ENCODING Ljava/lang/String;
    | method-call(void javax.servlet.http.HttpServletRequest.setCharacterEncoding(java.lang.String))
    | |             INVOKEINTERFACE javax.servlet.http.HttpServletRequest.setCharacterEncoding (Ljava/lang/String;)V
    | method-call(void javax.servlet.http.HttpServletRequest.setCharacterEncoding(java.lang.String))
    |               ALOAD 4     // Ljavax/servlet/http/HttpServletRequest; httpReq   (line 100)
    | method-call(java.lang.String com.liferay.util.Http.getCompleteURL(javax.servlet.http.HttpServletRequest))
    | |             INVOKESTATIC com.liferay.util.Http.getCompleteURL (Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String;
    | method-call(java.lang.String com.liferay.util.Http.getCompleteURL(javax.servlet.http.HttpServletRequest))
    |               ASTORE 6     // Ljava/lang/String; completeURL
    |               GETSTATIC com.liferay.filters.compression.CompressionFilter.useCompressionFilter Z   (line 102)
    |               IFEQ L3
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionFilter; this
    |               ALOAD 4     // Ljavax/servlet/http/HttpServletRequest; httpReq
    | method-call(boolean com.liferay.filters.compression.CompressionFilter.isCompress(javax.servlet.http.HttpServletRequest))
    | |             INVOKEVIRTUAL com.liferay.filters.compression.CompressionFilter.isCompress (Ljavax/servlet/http/HttpServletRequest;)Z
    | method-call(boolean com.liferay.filters.compression.CompressionFilter.isCompress(javax.servlet.http.HttpServletRequest))
    |               IFEQ L3
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionFilter; this
    |               ALOAD 4     // Ljavax/servlet/http/HttpServletRequest; httpReq
    | method-call(boolean com.liferay.filters.compression.CompressionFilter.isInclude(javax.servlet.http.HttpServletRequest))
    | |             INVOKEVIRTUAL com.liferay.filters.compression.CompressionFilter.isInclude (Ljavax/servlet/http/HttpServletRequest;)Z
    | method-call(boolean com.liferay.filters.compression.CompressionFilter.isInclude(javax.servlet.http.HttpServletRequest))
    |               IFNE L3
    |               ALOAD 4     // Ljavax/servlet/http/HttpServletRequest; httpReq
    | method-call(boolean com.liferay.util.BrowserSniffer.acceptsGzip(javax.servlet.http.HttpServletRequest))
    | |             INVOKESTATIC com.liferay.util.BrowserSniffer.acceptsGzip (Ljavax/servlet/http/HttpServletRequest;)Z
    | method-call(boolean com.liferay.util.BrowserSniffer.acceptsGzip(javax.servlet.http.HttpServletRequest))
    |               IFEQ L3
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionFilter; this
    |               ALOAD 4     // Ljavax/servlet/http/HttpServletRequest; httpReq
    | method-call(boolean com.liferay.filters.compression.CompressionFilter.isAlreadyFiltered(javax.servlet.http.HttpServletRequest))
    | |             INVOKEVIRTUAL com.liferay.filters.compression.CompressionFilter.isAlreadyFiltered (Ljavax/servlet/http/HttpServletRequest;)Z
    | method-call(boolean com.liferay.filters.compression.CompressionFilter.isAlreadyFiltered(javax.servlet.http.HttpServletRequest))
    |               IFNE L3
    |               GETSTATIC com.liferay.filters.compression.CompressionFilter._log Lorg/apache/commons/logging/Log;   (line 106)
    | method-call(boolean org.apache.commons.logging.Log.isDebugEnabled())
    | |             INVOKEINTERFACE org.apache.commons.logging.Log.isDebugEnabled ()Z
    | method-call(boolean org.apache.commons.logging.Log.isDebugEnabled())
    |               IFEQ L2
    |               GETSTATIC com.liferay.filters.compression.CompressionFilter._log Lorg/apache/commons/logging/Log;   (line 107)
    |               NEW java.lang.StringBuffer
    |               DUP
    |               LDC "Compressing "
    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
    |               ALOAD 6     // Ljava/lang/String; completeURL
    | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
    | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
    | method-call(java.lang.String java.lang.StringBuffer.toString())
    | |             INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
    | method-call(java.lang.String java.lang.StringBuffer.toString())
    | method-call(void org.apache.commons.logging.Log.debug(java.lang.Object))
    | |             INVOKEINTERFACE org.apache.commons.logging.Log.debug (Ljava/lang/Object;)V
    | method-call(void org.apache.commons.logging.Log.debug(java.lang.Object))
    |           L2: ALOAD 4     // Ljavax/servlet/http/HttpServletRequest; httpReq   (line 110)
    |               GETSTATIC com.liferay.filters.compression.CompressionFilter._ALREADY_FILTERED Ljava/lang/String;
    |               GETSTATIC java.lang.Boolean.TRUE Ljava/lang/Boolean;
    | method-call(void javax.servlet.http.HttpServletRequest.setAttribute(java.lang.String, java.lang.Object))
    | |             INVOKEINTERFACE javax.servlet.http.HttpServletRequest.setAttribute (Ljava/lang/String;Ljava/lang/Object;)V
    | method-call(void javax.servlet.http.HttpServletRequest.setAttribute(java.lang.String, java.lang.Object))
    |               NEW com.liferay.filters.compression.CompressionResponse   (line 112)
    |               DUP
    |               ALOAD 5     // Ljavax/servlet/http/HttpServletResponse; httpRes
    | constructor-call(void com.liferay.filters.compression.CompressionResponse.<init>(javax.servlet.http.HttpServletResponse))
    | |             INVOKESPECIAL com.liferay.filters.compression.CompressionResponse.<init> (Ljavax/servlet/http/HttpServletResponse;)V
    | constructor-call(void com.liferay.filters.compression.CompressionResponse.<init>(javax.servlet.http.HttpServletResponse))
    |               ASTORE 7     // Lcom/liferay/filters/compression/CompressionResponse; compressionResponse
    |               ALOAD_3     // Ljavax/servlet/FilterChain; chain   (line 115)
    |               ALOAD_1     // Ljavax/servlet/ServletRequest; req
    |               ALOAD 7     // Lcom/liferay/filters/compression/CompressionResponse; compressionResponse
    | method-call(void javax.servlet.FilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse))
    | |             INVOKEINTERFACE javax.servlet.FilterChain.doFilter (Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
    | method-call(void javax.servlet.FilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse))
    |               ALOAD 7     // Lcom/liferay/filters/compression/CompressionResponse; compressionResponse   (line 117)
    | method-call(void com.liferay.filters.compression.CompressionResponse.finishResponse())
    | |             INVOKEVIRTUAL com.liferay.filters.compression.CompressionResponse.finishResponse ()V
    | method-call(void com.liferay.filters.compression.CompressionResponse.finishResponse())
    |               GOTO L5
    |           L3: GETSTATIC com.liferay.filters.compression.CompressionFilter._log Lorg/apache/commons/logging/Log;   (line 120)
    | method-call(boolean org.apache.commons.logging.Log.isDebugEnabled())
    | |             INVOKEINTERFACE org.apache.commons.logging.Log.isDebugEnabled ()Z
    | method-call(boolean org.apache.commons.logging.Log.isDebugEnabled())
    |               IFEQ L4
    |               GETSTATIC com.liferay.filters.compression.CompressionFilter._log Lorg/apache/commons/logging/Log;   (line 121)
    |               NEW java.lang.StringBuffer
    |               DUP
    |               LDC "Not compressing "
    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
    |               ALOAD 6     // Ljava/lang/String; completeURL
    | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
    | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
    | method-call(java.lang.String java.lang.StringBuffer.toString())
    | |             INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
    | method-call(java.lang.String java.lang.StringBuffer.toString())
    | method-call(void org.apache.commons.logging.Log.debug(java.lang.Object))
    | |             INVOKEINTERFACE org.apache.commons.logging.Log.debug (Ljava/lang/Object;)V
    | method-call(void org.apache.commons.logging.Log.debug(java.lang.Object))
    |           L4: ALOAD_3     // Ljavax/servlet/FilterChain; chain   (line 124)
    |               ALOAD_1     // Ljavax/servlet/ServletRequest; req
    |               ALOAD_2     // Ljavax/servlet/ServletResponse; res
    | method-call(void javax.servlet.FilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse))
    | |             INVOKEINTERFACE javax.servlet.FilterChain.doFilter (Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
    | method-call(void javax.servlet.FilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse))
    |           L5: RETURN   (line 126)
    method-execution(void com.liferay.filters.compression.CompressionFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain))
  end public void doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) throws java.io.IOException, javax.servlet.ServletException

  public void destroy():
    method-execution(void com.liferay.filters.compression.CompressionFilter.destroy())
    |               RETURN   (line 129)
    method-execution(void com.liferay.filters.compression.CompressionFilter.destroy())
  end public void destroy()

  protected boolean isAlreadyFiltered(javax.servlet.http.HttpServletRequest):
    method-execution(boolean com.liferay.filters.compression.CompressionFilter.isAlreadyFiltered(javax.servlet.http.HttpServletRequest))
    |               ALOAD_1     // Ljavax/servlet/http/HttpServletRequest; req   (line 132)
    |               GETSTATIC com.liferay.filters.compression.CompressionFilter._ALREADY_FILTERED Ljava/lang/String;
    | method-call(java.lang.Object javax.servlet.http.HttpServletRequest.getAttribute(java.lang.String))
    | |             INVOKEINTERFACE javax.servlet.http.HttpServletRequest.getAttribute (Ljava/lang/String;)Ljava/lang/Object;
    | method-call(java.lang.Object javax.servlet.http.HttpServletRequest.getAttribute(java.lang.String))
    |               IFNULL L0
    |               ICONST_1   (line 133)
    |               IRETURN
    |           L0: ICONST_0   (line 136)
    |               IRETURN
    method-execution(boolean com.liferay.filters.compression.CompressionFilter.isAlreadyFiltered(javax.servlet.http.HttpServletRequest))
  end protected boolean isAlreadyFiltered(javax.servlet.http.HttpServletRequest)

  protected boolean isCompress(javax.servlet.http.HttpServletRequest):
    method-execution(boolean com.liferay.filters.compression.CompressionFilter.isCompress(javax.servlet.http.HttpServletRequest))
    |               ALOAD_1     // Ljavax/servlet/http/HttpServletRequest; req   (line 141)
    |               LDC "compress"
    |               ICONST_1
    | method-call(boolean com.liferay.util.ParamUtil.get(javax.servlet.ServletRequest, java.lang.String, boolean))
    | |             INVOKESTATIC com.liferay.util.ParamUtil.get (Ljavax/servlet/ServletRequest;Ljava/lang/String;Z)Z
    | method-call(boolean com.liferay.util.ParamUtil.get(javax.servlet.ServletRequest, java.lang.String, boolean))
    |               IFNE L0
    |               ICONST_0   (line 142)
    |               IRETURN
    |           L0: ALOAD_1     // Ljavax/servlet/http/HttpServletRequest; req   (line 151)
    |               LDC "p_p_state"
    | method-call(java.lang.String com.liferay.util.ParamUtil.getString(javax.servlet.ServletRequest, java.lang.String))
    | |             INVOKESTATIC com.liferay.util.ParamUtil.getString (Ljavax/servlet/ServletRequest;Ljava/lang/String;)Ljava/lang/String;
    | method-call(java.lang.String com.liferay.util.ParamUtil.getString(javax.servlet.ServletRequest, java.lang.String))
    |               ASTORE_2     // Ljava/lang/String; windowState
    |               ALOAD_2     // Ljava/lang/String; windowState   (line 153)
    |               LDC "exclusive"
    | method-call(boolean java.lang.String.equals(java.lang.Object))
    | |             INVOKEVIRTUAL java.lang.String.equals (Ljava/lang/Object;)Z
    | method-call(boolean java.lang.String.equals(java.lang.Object))
    |               IFEQ L1
    |               ICONST_0   (line 154)
    |               IRETURN
    |           L1: ICONST_1   (line 157)
    |               IRETURN
    method-execution(boolean com.liferay.filters.compression.CompressionFilter.isCompress(javax.servlet.http.HttpServletRequest))
  end protected boolean isCompress(javax.servlet.http.HttpServletRequest)

  protected boolean isInclude(javax.servlet.http.HttpServletRequest):
    method-execution(boolean com.liferay.filters.compression.CompressionFilter.isInclude(javax.servlet.http.HttpServletRequest))
    |               ALOAD_1     // Ljavax/servlet/http/HttpServletRequest; req   (line 163)
    |               LDC "javax.servlet.include.request_uri"
    | method-call(java.lang.Object javax.servlet.http.HttpServletRequest.getAttribute(java.lang.String))
    | |             INVOKEINTERFACE javax.servlet.http.HttpServletRequest.getAttribute (Ljava/lang/String;)Ljava/lang/Object;
    | method-call(java.lang.Object javax.servlet.http.HttpServletRequest.getAttribute(java.lang.String))
    |               CHECKCAST java.lang.String
    |               ASTORE_2     // Ljava/lang/String; uri
    |               ALOAD_2     // Ljava/lang/String; uri   (line 165)
    |               IFNONNULL L0
    |               ICONST_0   (line 166)
    |               IRETURN
    |           L0: ICONST_1   (line 169)
    |               IRETURN
    method-execution(boolean com.liferay.filters.compression.CompressionFilter.isInclude(javax.servlet.http.HttpServletRequest))
  end protected boolean isInclude(javax.servlet.http.HttpServletRequest)

  static Class class(String, boolean):
    method-execution(java.lang.Class com.liferay.filters.compression.CompressionFilter.class(java.lang.String, boolean))
    | catch java.lang.ClassNotFoundException -> E0
    | |             ALOAD_0   (line 0)
    | | method-call(java.lang.Class java.lang.Class.forName(java.lang.String))
    | | |           INVOKESTATIC java.lang.Class.forName (Ljava/lang/String;)Ljava/lang/Class;
    | | method-call(java.lang.Class java.lang.Class.forName(java.lang.String))
    | |             ILOAD_1
    | |             IFNE L0
    | | method-call(java.lang.Class java.lang.Class.getComponentType())
    | | |           INVOKEVIRTUAL java.lang.Class.getComponentType ()Ljava/lang/Class;
    | | method-call(java.lang.Class java.lang.Class.getComponentType())
    | |         L0: ARETURN
    | catch java.lang.ClassNotFoundException -> E0
    |           E0: NEW java.lang.NoClassDefFoundError
    |               DUP_X1
    | constructor-call(void java.lang.NoClassDefFoundError.<init>())
    | |             INVOKESPECIAL java.lang.NoClassDefFoundError.<init> ()V
    | constructor-call(void java.lang.NoClassDefFoundError.<init>())
    | method-call(java.lang.Throwable java.lang.Throwable.initCause(java.lang.Throwable))
    | |             INVOKEVIRTUAL java.lang.Throwable.initCause (Ljava/lang/Throwable;)Ljava/lang/Throwable;
    | method-call(java.lang.Throwable java.lang.Throwable.initCause(java.lang.Throwable))
    |               ATHROW
    method-execution(java.lang.Class com.liferay.filters.compression.CompressionFilter.class(java.lang.String, boolean))
  end static Class class(String, boolean)

  public void <init>():
                    ALOAD_0     // Lcom/liferay/filters/compression/CompressionFilter; this   (line 52)
                    INVOKESPECIAL java.lang.Object.<init> ()V
    constructor-execution(void com.liferay.filters.compression.CompressionFilter.<init>())
    |               RETURN
    constructor-execution(void com.liferay.filters.compression.CompressionFilter.<init>())
  end public void <init>()

  private static final void <clinit>():
    staticinitialization(void com.liferay.filters.compression.CompressionFilter.<clinit>())
    |               GETSTATIC com.liferay.filters.compression.CompressionFilter.class$com$liferay$filters$compression$CompressionFilter Ljava/lang/Class;   (line 54)
    |               DUP
    |               IFNONNULL L0
    |               POP
    |               LDC "[Lcom.liferay.filters.compression.CompressionFilter;"
    |               ICONST_0
    | method-call(java.lang.Class com.liferay.filters.compression.CompressionFilter.class(java.lang.String, boolean))
    | |             INVOKESTATIC com.liferay.filters.compression.CompressionFilter.class (Ljava/lang/String;Z)Ljava/lang/Class;
    | method-call(java.lang.Class com.liferay.filters.compression.CompressionFilter.class(java.lang.String, boolean))
    |               DUP
    |               PUTSTATIC com.liferay.filters.compression.CompressionFilter.class$com$liferay$filters$compression$CompressionFilter Ljava/lang/Class;
    | method-call(java.lang.String java.lang.Class.getName())
    | |         L0: INVOKEVIRTUAL java.lang.Class.getName ()Ljava/lang/String;
    | method-call(java.lang.String java.lang.Class.getName())
    | method-call(java.lang.String com.liferay.util.SystemProperties.get(java.lang.String))
    | |             INVOKESTATIC com.liferay.util.SystemProperties.get (Ljava/lang/String;)Ljava/lang/String;
    | method-call(java.lang.String com.liferay.util.SystemProperties.get(java.lang.String))
    |               ICONST_1
    | method-call(boolean com.liferay.util.GetterUtil.getBoolean(java.lang.String, boolean))
    | |             INVOKESTATIC com.liferay.util.GetterUtil.getBoolean (Ljava/lang/String;Z)Z
    | method-call(boolean com.liferay.util.GetterUtil.getBoolean(java.lang.String, boolean))
    |               PUTSTATIC com.liferay.filters.compression.CompressionFilter.useCompressionFilter Z
    |               GETSTATIC com.liferay.filters.compression.CompressionFilter.useCompressionFilter Z   (line 62)
    |               IFEQ L3
    | method-call(boolean com.liferay.portal.kernel.util.ServerDetector.isJBoss())
    | |             INVOKESTATIC com.liferay.portal.kernel.util.ServerDetector.isJBoss ()Z   (line 63)
    | method-call(boolean com.liferay.portal.kernel.util.ServerDetector.isJBoss())
    |               IFNE L1
    | method-call(boolean com.liferay.portal.kernel.util.ServerDetector.isJetty())
    | |             INVOKESTATIC com.liferay.portal.kernel.util.ServerDetector.isJetty ()Z
    | method-call(boolean com.liferay.portal.kernel.util.ServerDetector.isJetty())
    |               IFNE L1
    | method-call(boolean com.liferay.portal.kernel.util.ServerDetector.isJOnAS())
    | |             INVOKESTATIC com.liferay.portal.kernel.util.ServerDetector.isJOnAS ()Z
    | method-call(boolean com.liferay.portal.kernel.util.ServerDetector.isJOnAS())
    |               IFNE L1
    | method-call(boolean com.liferay.portal.kernel.util.ServerDetector.isOC4J())
    | |             INVOKESTATIC com.liferay.portal.kernel.util.ServerDetector.isOC4J ()Z
    | method-call(boolean com.liferay.portal.kernel.util.ServerDetector.isOC4J())
    |               IFNE L1
    | method-call(boolean com.liferay.portal.kernel.util.ServerDetector.isOrion())
    | |             INVOKESTATIC com.liferay.portal.kernel.util.ServerDetector.isOrion ()Z
    | method-call(boolean com.liferay.portal.kernel.util.ServerDetector.isOrion())
    |               IFNE L1
    | method-call(boolean com.liferay.portal.kernel.util.ServerDetector.isTomcat())
    | |             INVOKESTATIC com.liferay.portal.kernel.util.ServerDetector.isTomcat ()Z
    | method-call(boolean com.liferay.portal.kernel.util.ServerDetector.isTomcat())
    |               IFEQ L2
    |           L1: ICONST_1   (line 67)
    |               PUTSTATIC com.liferay.filters.compression.CompressionFilter.useCompressionFilter Z
    |               GOTO L3
    |           L2: ICONST_0   (line 70)
    |               PUTSTATIC com.liferay.filters.compression.CompressionFilter.useCompressionFilter Z
    |           L3: NEW java.lang.StringBuffer   (line 75)
    |               DUP
    | constructor-call(void java.lang.StringBuffer.<init>())
    | |             INVOKESPECIAL java.lang.StringBuffer.<init> ()V
    | constructor-call(void java.lang.StringBuffer.<init>())
    |               GETSTATIC com.liferay.filters.compression.CompressionFilter.class$com$liferay$filters$compression$CompressionFilter Ljava/lang/Class;
    |               DUP
    |               IFNONNULL L4
    |               POP
    |               LDC "[Lcom.liferay.filters.compression.CompressionFilter;"
    |               ICONST_0
    | method-call(java.lang.Class com.liferay.filters.compression.CompressionFilter.class(java.lang.String, boolean))
    | |             INVOKESTATIC com.liferay.filters.compression.CompressionFilter.class (Ljava/lang/String;Z)Ljava/lang/Class;
    | method-call(java.lang.Class com.liferay.filters.compression.CompressionFilter.class(java.lang.String, boolean))
    |               DUP
    |               PUTSTATIC com.liferay.filters.compression.CompressionFilter.class$com$liferay$filters$compression$CompressionFilter Ljava/lang/Class;
    | method-call(java.lang.String java.lang.Class.getName())
    | |         L4: INVOKEVIRTUAL java.lang.Class.getName ()Ljava/lang/String;
    | method-call(java.lang.String java.lang.Class.getName())
    | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
    | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
    |               LDC ".encoding"
    | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
    | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
    | method-call(java.lang.String java.lang.StringBuffer.toString())
    | |             INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
    | method-call(java.lang.String java.lang.StringBuffer.toString())
    | method-call(java.lang.String com.liferay.util.SystemProperties.get(java.lang.String))
    | |             INVOKESTATIC com.liferay.util.SystemProperties.get (Ljava/lang/String;)Ljava/lang/String;
    | method-call(java.lang.String com.liferay.util.SystemProperties.get(java.lang.String))
    |               LDC "UTF-8"
    | method-call(java.lang.String com.liferay.util.GetterUtil.getString(java.lang.String, java.lang.String))
    | |             INVOKESTATIC com.liferay.util.GetterUtil.getString (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    | method-call(java.lang.String com.liferay.util.GetterUtil.getString(java.lang.String, java.lang.String))
    |               PUTSTATIC com.liferay.filters.compression.CompressionFilter.ENCODING Ljava/lang/String;
    |               NEW java.lang.StringBuffer   (line 173)
    |               DUP
    | constructor-call(void java.lang.StringBuffer.<init>())
    | |             INVOKESPECIAL java.lang.StringBuffer.<init> ()V
    | constructor-call(void java.lang.StringBuffer.<init>())
    |               GETSTATIC com.liferay.filters.compression.CompressionFilter.class$com$liferay$filters$compression$CompressionFilter Ljava/lang/Class;
    |               DUP
    |               IFNONNULL L5
    |               POP
    |               LDC "[Lcom.liferay.filters.compression.CompressionFilter;"
    |               ICONST_0
    | method-call(java.lang.Class com.liferay.filters.compression.CompressionFilter.class(java.lang.String, boolean))
    | |             INVOKESTATIC com.liferay.filters.compression.CompressionFilter.class (Ljava/lang/String;Z)Ljava/lang/Class;
    | method-call(java.lang.Class com.liferay.filters.compression.CompressionFilter.class(java.lang.String, boolean))
    |               DUP
    |               PUTSTATIC com.liferay.filters.compression.CompressionFilter.class$com$liferay$filters$compression$CompressionFilter Ljava/lang/Class;
    | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
    | |         L5: INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
    | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
    |               LDC "_ALREADY_FILTERED"
    | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
    | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
    | method-call(java.lang.String java.lang.StringBuffer.toString())
    | |             INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
    | method-call(java.lang.String java.lang.StringBuffer.toString())
    |               PUTSTATIC com.liferay.filters.compression.CompressionFilter._ALREADY_FILTERED Ljava/lang/String;
    |               GETSTATIC com.liferay.filters.compression.CompressionFilter.class$com$liferay$filters$compression$CompressionFilter Ljava/lang/Class;   (line 180)
    |               DUP
    |               IFNONNULL L6
    |               POP
    |               LDC "[Lcom.liferay.filters.compression.CompressionFilter;"
    |               ICONST_0
    | method-call(java.lang.Class com.liferay.filters.compression.CompressionFilter.class(java.lang.String, boolean))
    | |             INVOKESTATIC com.liferay.filters.compression.CompressionFilter.class (Ljava/lang/String;Z)Ljava/lang/Class;
    | method-call(java.lang.Class com.liferay.filters.compression.CompressionFilter.class(java.lang.String, boolean))
    |               DUP
    |               PUTSTATIC com.liferay.filters.compression.CompressionFilter.class$com$liferay$filters$compression$CompressionFilter Ljava/lang/Class;
    | method-call(org.apache.commons.logging.Log org.apache.commons.logging.LogFactory.getLog(java.lang.Class))
    | |         L6: INVOKESTATIC org.apache.commons.logging.LogFactory.getLog (Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
    | method-call(org.apache.commons.logging.Log org.apache.commons.logging.LogFactory.getLog(java.lang.Class))
    |               PUTSTATIC com.liferay.filters.compression.CompressionFilter._log Lorg/apache/commons/logging/Log;
    |               RETURN
    staticinitialization(void com.liferay.filters.compression.CompressionFilter.<clinit>())
  end private static final void <clinit>()
end public class com.liferay.filters.compression.CompressionFilter

	
Exception thrown from AspectJ 1.5.2

This might be logged as a bug already -- find current bugs at
  http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Compiler

Bugs for exceptions thrown have titles File:line from the top stack, 
e.g., "SomeFile.java:243"

If you don't find the exception below in a bug, please add a new bug
at http://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ
To make the bug a priority, please include a test program
that can reproduce this exception.
Unhandled kind of new   -1: impdep1[254](1)

when implementing on shadow constructor-call(void java.lang.NoClassDefFoundError.<init>())
when weaving classes 
when weaving 
when batch building BuildConfig[null] #Files=1
Unhandled kind of new   -1: impdep1[254](1)
java.lang.RuntimeException: Unhandled kind of new   -1: impdep1[254](1)
	at org.aspectj.weaver.bcel.BcelShadow.deleteNewAndDup(BcelShadow.java:226)
	at org.aspectj.weaver.bcel.BcelShadow.prepareForMungers(BcelShadow.java:284)
	at org.aspectj.weaver.Shadow.implement(Shadow.java:470)
	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:1574)
	at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1525)
	at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1305)
	at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1127)
	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:887)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:244)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:163)
	at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:112)
	at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)
	at org.aspectj.tools.ajc.Main.run(Main.java:367)
	at org.aspectj.tools.ajc.Main.runMain(Main.java:246)
	at org.aspectj.tools.ajc.Main.main(Main.java:86)

trouble in: 
public class com.liferay.filters.compression.CompressionStream extends javax.servlet.ServletOutputStream:
  private static final String _CONTENT_ENCODING = "Content-Encoding"
  private static final String _GZIP = "gzip"
  private static org.apache.commons.logging.Log _log
  private javax.servlet.http.HttpServletResponse _res
  private javax.servlet.ServletOutputStream _output
  private java.io.OutputStream _bufferedOutput
  private boolean _closed
  static Class class$com$liferay$filters$compression$CompressionStream [Synthetic]
  public void close() throws java.io.IOException:
    method-execution(void com.liferay.filters.compression.CompressionStream.close())
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 56)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._closed Z
    |               IFEQ L0
    | constructor-call(void java.io.IOException.<init>())
    | |             INVOKESTATIC com.myco.error.ThrowablesAspect.aspectOf ()Lcom/myco/error/ThrowablesAspect;
    | |             INVOKEVIRTUAL com.myco.error.ThrowablesAspect.ajc$before$com_myco_error_ThrowablesAspect$1$45ca0c36 ()V
    | |             NEW java.io.IOException
    | |             DUP
    | |             INVOKESPECIAL java.io.IOException.<init> ()V   (line 57)
    | constructor-call(void java.io.IOException.<init>())
    |               ATHROW
    |           L0: ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 60)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._bufferedOutput Ljava/io/OutputStream;
    |               INSTANCEOF java.io.ByteArrayOutputStream
    |               IFEQ L1
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 61)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._bufferedOutput Ljava/io/OutputStream;
    |               CHECKCAST java.io.ByteArrayOutputStream
    |               ASTORE_1     // Ljava/io/ByteArrayOutputStream; baos
    |               NEW java.io.ByteArrayOutputStream   (line 63)
    |               DUP
    | constructor-call(void java.io.ByteArrayOutputStream.<init>())
    | |             INVOKESPECIAL java.io.ByteArrayOutputStream.<init> ()V
    | constructor-call(void java.io.ByteArrayOutputStream.<init>())
    |               ASTORE_2     // Ljava/io/ByteArrayOutputStream; compressedContent
    |               NEW java.util.zip.GZIPOutputStream   (line 66)
    |               DUP
    |               ALOAD_2     // Ljava/io/ByteArrayOutputStream; compressedContent
    | constructor-call(void java.util.zip.GZIPOutputStream.<init>(java.io.OutputStream))
    | |             INVOKESPECIAL java.util.zip.GZIPOutputStream.<init> (Ljava/io/OutputStream;)V
    | constructor-call(void java.util.zip.GZIPOutputStream.<init>(java.io.OutputStream))
    |               ASTORE_3     // Ljava/util/zip/GZIPOutputStream; gzipOutput
    |               ALOAD_3     // Ljava/util/zip/GZIPOutputStream; gzipOutput   (line 69)
    |               ALOAD_1     // Ljava/io/ByteArrayOutputStream; baos
    | method-call(byte[] java.io.ByteArrayOutputStream.toByteArray())
    | |             INVOKEVIRTUAL java.io.ByteArrayOutputStream.toByteArray ()[B
    | method-call(byte[] java.io.ByteArrayOutputStream.toByteArray())
    | method-call(void java.util.zip.GZIPOutputStream.write(byte[]))
    | |             INVOKEVIRTUAL java.util.zip.GZIPOutputStream.write ([B)V
    | method-call(void java.util.zip.GZIPOutputStream.write(byte[]))
    |               ALOAD_3     // Ljava/util/zip/GZIPOutputStream; gzipOutput   (line 70)
    | method-call(void java.util.zip.GZIPOutputStream.finish())
    | |             INVOKEVIRTUAL java.util.zip.GZIPOutputStream.finish ()V
    | method-call(void java.util.zip.GZIPOutputStream.finish())
    |               ALOAD_2     // Ljava/io/ByteArrayOutputStream; compressedContent   (line 72)
    | method-call(byte[] java.io.ByteArrayOutputStream.toByteArray())
    | |             INVOKEVIRTUAL java.io.ByteArrayOutputStream.toByteArray ()[B
    | method-call(byte[] java.io.ByteArrayOutputStream.toByteArray())
    |               ASTORE 4     // [B compressedBytes
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 74)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._res Ljavax/servlet/http/HttpServletResponse;
    |               ALOAD 4     // [B compressedBytes
    |               ARRAYLENGTH
    | method-call(void javax.servlet.http.HttpServletResponse.setContentLength(int))
    | |             INVOKEINTERFACE javax.servlet.http.HttpServletResponse.setContentLength (I)V
    | method-call(void javax.servlet.http.HttpServletResponse.setContentLength(int))
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 75)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._res Ljavax/servlet/http/HttpServletResponse;
    |               LDC "Content-Encoding"
    |               LDC "gzip"
    | method-call(void javax.servlet.http.HttpServletResponse.addHeader(java.lang.String, java.lang.String))
    | |             INVOKEINTERFACE javax.servlet.http.HttpServletResponse.addHeader (Ljava/lang/String;Ljava/lang/String;)V
    | method-call(void javax.servlet.http.HttpServletResponse.addHeader(java.lang.String, java.lang.String))
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 77)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._output Ljavax/servlet/ServletOutputStream;
    |               ALOAD 4     // [B compressedBytes
    | method-call(void javax.servlet.ServletOutputStream.write(byte[]))
    | |             INVOKEVIRTUAL javax.servlet.ServletOutputStream.write ([B)V
    | method-call(void javax.servlet.ServletOutputStream.write(byte[]))
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 78)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._output Ljavax/servlet/ServletOutputStream;
    | method-call(void javax.servlet.ServletOutputStream.flush())
    | |             INVOKEVIRTUAL javax.servlet.ServletOutputStream.flush ()V
    | method-call(void javax.servlet.ServletOutputStream.flush())
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 79)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._output Ljavax/servlet/ServletOutputStream;
    | method-call(void javax.servlet.ServletOutputStream.close())
    | |             INVOKEVIRTUAL javax.servlet.ServletOutputStream.close ()V
    | method-call(void javax.servlet.ServletOutputStream.close())
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 81)
    |               ICONST_1
    |               PUTFIELD com.liferay.filters.compression.CompressionStream._closed Z
    |               GOTO L2
    |           L1: ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 83)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._bufferedOutput Ljava/io/OutputStream;
    |               INSTANCEOF java.util.zip.GZIPOutputStream
    |               IFEQ L2
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 84)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._bufferedOutput Ljava/io/OutputStream;
    |               CHECKCAST java.util.zip.GZIPOutputStream
    |               ASTORE_1     // Ljava/util/zip/GZIPOutputStream; gzipOutput
    |               ALOAD_1     // Ljava/util/zip/GZIPOutputStream; gzipOutput   (line 86)
    | method-call(void java.util.zip.GZIPOutputStream.finish())
    | |             INVOKEVIRTUAL java.util.zip.GZIPOutputStream.finish ()V
    | method-call(void java.util.zip.GZIPOutputStream.finish())
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 88)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._output Ljavax/servlet/ServletOutputStream;
    | method-call(void javax.servlet.ServletOutputStream.flush())
    | |             INVOKEVIRTUAL javax.servlet.ServletOutputStream.flush ()V
    | method-call(void javax.servlet.ServletOutputStream.flush())
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 89)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._output Ljavax/servlet/ServletOutputStream;
    | method-call(void javax.servlet.ServletOutputStream.close())
    | |             INVOKEVIRTUAL javax.servlet.ServletOutputStream.close ()V
    | method-call(void javax.servlet.ServletOutputStream.close())
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 91)
    |               ICONST_1
    |               PUTFIELD com.liferay.filters.compression.CompressionStream._closed Z
    |           L2: RETURN   (line 93)
    method-execution(void com.liferay.filters.compression.CompressionStream.close())
  end public void close() throws java.io.IOException

  public void flush() throws java.io.IOException:
    method-execution(void com.liferay.filters.compression.CompressionStream.flush())
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 96)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._closed Z
    |               IFEQ L0
    | constructor-call(void java.io.IOException.<init>())
    | |             INVOKESTATIC com.myco.error.ThrowablesAspect.aspectOf ()Lcom/myco/error/ThrowablesAspect;
    | |             INVOKEVIRTUAL com.myco.error.ThrowablesAspect.ajc$before$com_myco_error_ThrowablesAspect$1$45ca0c36 ()V
    | |             NEW java.io.IOException
    | |             DUP
    | |             INVOKESPECIAL java.io.IOException.<init> ()V   (line 97)
    | constructor-call(void java.io.IOException.<init>())
    |               ATHROW
    |           L0: ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 100)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._bufferedOutput Ljava/io/OutputStream;
    | method-call(void java.io.OutputStream.flush())
    | |             INVOKEVIRTUAL java.io.OutputStream.flush ()V
    | method-call(void java.io.OutputStream.flush())
    |               RETURN   (line 101)
    method-execution(void com.liferay.filters.compression.CompressionStream.flush())
  end public void flush() throws java.io.IOException

  public void write(int) throws java.io.IOException:
    method-execution(void com.liferay.filters.compression.CompressionStream.write(int))
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 104)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._closed Z
    |               IFEQ L0
    | constructor-call(void java.io.IOException.<init>())
    | |             INVOKESTATIC com.myco.error.ThrowablesAspect.aspectOf ()Lcom/myco/error/ThrowablesAspect;
    | |             INVOKEVIRTUAL com.myco.error.ThrowablesAspect.ajc$before$com_myco_error_ThrowablesAspect$1$45ca0c36 ()V
    | |             NEW java.io.IOException
    | |             DUP
    | |             INVOKESPECIAL java.io.IOException.<init> ()V   (line 105)
    | constructor-call(void java.io.IOException.<init>())
    |               ATHROW
    |           L0: ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 112)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._bufferedOutput Ljava/io/OutputStream;
    |               ILOAD_1     // I b
    |               I2B
    | method-call(void java.io.OutputStream.write(int))
    | |             INVOKEVIRTUAL java.io.OutputStream.write (I)V
    | method-call(void java.io.OutputStream.write(int))
    |               RETURN   (line 113)
    method-execution(void com.liferay.filters.compression.CompressionStream.write(int))
  end public void write(int) throws java.io.IOException

  public void write(byte[]) throws java.io.IOException:
    method-execution(void com.liferay.filters.compression.CompressionStream.write(byte[]))
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 116)
    |               ALOAD_1     // [B b
    |               ICONST_0
    |               ALOAD_1     // [B b
    |               ARRAYLENGTH
    | method-call(void com.liferay.filters.compression.CompressionStream.write(byte[], int, int))
    | |             INVOKEVIRTUAL com.liferay.filters.compression.CompressionStream.write ([BII)V
    | method-call(void com.liferay.filters.compression.CompressionStream.write(byte[], int, int))
    |               RETURN   (line 117)
    method-execution(void com.liferay.filters.compression.CompressionStream.write(byte[]))
  end public void write(byte[]) throws java.io.IOException

  public void write(byte[], int, int) throws java.io.IOException:
    method-execution(void com.liferay.filters.compression.CompressionStream.write(byte[], int, int))
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 120)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._closed Z
    |               IFEQ L0
    | constructor-call(void java.io.IOException.<init>())
    | |             INVOKESTATIC com.myco.error.ThrowablesAspect.aspectOf ()Lcom/myco/error/ThrowablesAspect;
    | |             INVOKEVIRTUAL com.myco.error.ThrowablesAspect.ajc$before$com_myco_error_ThrowablesAspect$1$45ca0c36 ()V
    | |             NEW java.io.IOException
    | |             DUP
    | |             INVOKESPECIAL java.io.IOException.<init> ()V   (line 121)
    | constructor-call(void java.io.IOException.<init>())
    |               ATHROW
    | catch java.io.IOException -> E0
    | |         L0: ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 129)
    | |             GETFIELD com.liferay.filters.compression.CompressionStream._bufferedOutput Ljava/io/OutputStream;
    | |             ALOAD_1     // [B b
    | |             ILOAD_2     // I off
    | |             ILOAD_3     // I len
    | | method-call(void java.io.OutputStream.write(byte[], int, int))
    | | |           INVOKEVIRTUAL java.io.OutputStream.write ([BII)V
    | | method-call(void java.io.OutputStream.write(byte[], int, int))
    | catch java.io.IOException -> E0
    |               GOTO L1
    |           E0: ASTORE 4     // Ljava/io/IOException; ioe   (line 131)
    |               GETSTATIC com.liferay.filters.compression.CompressionStream._log Lorg/apache/commons/logging/Log;   (line 132)
    |               ALOAD 4     // Ljava/io/IOException; ioe
    | method-call(java.lang.String java.io.IOException.getMessage())
    | |             INVOKEVIRTUAL java.io.IOException.getMessage ()Ljava/lang/String;
    | method-call(java.lang.String java.io.IOException.getMessage())
    | method-call(void org.apache.commons.logging.Log.warn(java.lang.Object))
    | |             INVOKEINTERFACE org.apache.commons.logging.Log.warn (Ljava/lang/Object;)V
    | method-call(void org.apache.commons.logging.Log.warn(java.lang.Object))
    |           L1: RETURN   (line 134)
    method-execution(void com.liferay.filters.compression.CompressionStream.write(byte[], int, int))
  end public void write(byte[], int, int) throws java.io.IOException

  public boolean closed():
    method-execution(boolean com.liferay.filters.compression.CompressionStream.closed())
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 137)
    |               GETFIELD com.liferay.filters.compression.CompressionStream._closed Z
    |               IRETURN
    method-execution(boolean com.liferay.filters.compression.CompressionStream.closed())
  end public boolean closed()

  public void reset():
    method-execution(void com.liferay.filters.compression.CompressionStream.reset())
    |               RETURN   (line 141)
    method-execution(void com.liferay.filters.compression.CompressionStream.reset())
  end public void reset()

  static Class class(String, boolean):
    method-execution(java.lang.Class com.liferay.filters.compression.CompressionStream.class(java.lang.String, boolean))
    | catch java.lang.ClassNotFoundException -> E0
    | |             ALOAD_0   (line 0)
    | | method-call(java.lang.Class java.lang.Class.forName(java.lang.String))
    | | |           INVOKESTATIC java.lang.Class.forName (Ljava/lang/String;)Ljava/lang/Class;
    | | method-call(java.lang.Class java.lang.Class.forName(java.lang.String))
    | |             ILOAD_1
    | |             IFNE L0
    | | method-call(java.lang.Class java.lang.Class.getComponentType())
    | | |           INVOKEVIRTUAL java.lang.Class.getComponentType ()Ljava/lang/Class;
    | | method-call(java.lang.Class java.lang.Class.getComponentType())
    | |         L0: ARETURN
    | catch java.lang.ClassNotFoundException -> E0
    |           E0: NEW java.lang.NoClassDefFoundError
    |               DUP_X1
    | constructor-call(void java.lang.NoClassDefFoundError.<init>())
    | |             INVOKESPECIAL java.lang.NoClassDefFoundError.<init> ()V
    | constructor-call(void java.lang.NoClassDefFoundError.<init>())
    | method-call(java.lang.Throwable java.lang.Throwable.initCause(java.lang.Throwable))
    | |             INVOKEVIRTUAL java.lang.Throwable.initCause (Ljava/lang/Throwable;)Ljava/lang/Throwable;
    | method-call(java.lang.Throwable java.lang.Throwable.initCause(java.lang.Throwable))
    |               ATHROW
    method-execution(java.lang.Class com.liferay.filters.compression.CompressionStream.class(java.lang.String, boolean))
  end static Class class(String, boolean)

  private final void this():
    method-execution(void com.liferay.filters.compression.CompressionStream.this())
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 149)
    |               ACONST_NULL
    |               PUTFIELD com.liferay.filters.compression.CompressionStream._res Ljavax/servlet/http/HttpServletResponse;
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 150)
    |               ACONST_NULL
    |               PUTFIELD com.liferay.filters.compression.CompressionStream._output Ljavax/servlet/ServletOutputStream;
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 151)
    |               ACONST_NULL
    |               PUTFIELD com.liferay.filters.compression.CompressionStream._bufferedOutput Ljava/io/OutputStream;
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 152)
    |               ICONST_0
    |               PUTFIELD com.liferay.filters.compression.CompressionStream._closed Z
    |               RETURN
    method-execution(void com.liferay.filters.compression.CompressionStream.this())
  end private final void this()

  public void <init>(javax.servlet.http.HttpServletResponse) throws java.io.IOException:
                    ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 47)
                    INVOKESPECIAL javax.servlet.ServletOutputStream.<init> ()V
    constructor-execution(void com.liferay.filters.compression.CompressionStream.<init>(javax.servlet.http.HttpServletResponse))
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this
    | method-call(void com.liferay.filters.compression.CompressionStream.this())
    | |             INVOKESPECIAL com.liferay.filters.compression.CompressionStream.this ()V
    | method-call(void com.liferay.filters.compression.CompressionStream.this())
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 49)
    |               ALOAD_1     // Ljavax/servlet/http/HttpServletResponse; res
    |               PUTFIELD com.liferay.filters.compression.CompressionStream._res Ljavax/servlet/http/HttpServletResponse;
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 50)
    |               ALOAD_1     // Ljavax/servlet/http/HttpServletResponse; res
    | method-call(javax.servlet.ServletOutputStream javax.servlet.http.HttpServletResponse.getOutputStream())
    | |             INVOKEINTERFACE javax.servlet.http.HttpServletResponse.getOutputStream ()Ljavax/servlet/ServletOutputStream;
    | method-call(javax.servlet.ServletOutputStream javax.servlet.http.HttpServletResponse.getOutputStream())
    |               PUTFIELD com.liferay.filters.compression.CompressionStream._output Ljavax/servlet/ServletOutputStream;
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 51)
    |               NEW java.io.ByteArrayOutputStream
    |               DUP
    | constructor-call(void java.io.ByteArrayOutputStream.<init>())
    | |             INVOKESPECIAL java.io.ByteArrayOutputStream.<init> ()V
    | constructor-call(void java.io.ByteArrayOutputStream.<init>())
    |               PUTFIELD com.liferay.filters.compression.CompressionStream._bufferedOutput Ljava/io/OutputStream;
    |               ALOAD_0     // Lcom/liferay/filters/compression/CompressionStream; this   (line 52)
    |               ICONST_0
    |               PUTFIELD com.liferay.filters.compression.CompressionStream._closed Z
    |               RETURN   (line 53)
    constructor-execution(void com.liferay.filters.compression.CompressionStream.<init>(javax.servlet.http.HttpServletResponse))
  end public void <init>(javax.servlet.http.HttpServletResponse) throws java.io.IOException

  private static final void <clinit>():
    staticinitialization(void com.liferay.filters.compression.CompressionStream.<clinit>())
    |               GETSTATIC com.liferay.filters.compression.CompressionStream.class$com$liferay$filters$compression$CompressionStream Ljava/lang/Class;   (line 147)
    |               DUP
    |               IFNONNULL L0
    |               POP
    |               LDC "[Lcom.liferay.filters.compression.CompressionStream;"
    |               ICONST_0
    | method-call(java.lang.Class com.liferay.filters.compression.CompressionStream.class(java.lang.String, boolean))
    | |             INVOKESTATIC com.liferay.filters.compression.CompressionStream.class (Ljava/lang/String;Z)Ljava/lang/Class;
    | method-call(java.lang.Class com.liferay.filters.compression.CompressionStream.class(java.lang.String, boolean))
    |               DUP
    |               PUTSTATIC com.liferay.filters.compression.CompressionStream.class$com$liferay$filters$compression$CompressionStream Ljava/lang/Class;
    | method-call(org.apache.commons.logging.Log org.apache.commons.logging.LogFactory.getLog(java.lang.Class))
    | |         L0: INVOKESTATIC org.apache.commons.logging.LogFactory.getLog (Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
    | method-call(org.apache.commons.logging.Log org.apache.commons.logging.LogFactory.getLog(java.lang.Class))
    |               PUTSTATIC com.liferay.filters.compression.CompressionStream._log Lorg/apache/commons/logging/Log;
    |               RETURN
    staticinitialization(void com.liferay.filters.compression.CompressionStream.<clinit>())
  end private static final void <clinit>()
end public class com.liferay.filters.compression.CompressionStream

	
Exception thrown from AspectJ 1.5.2

This might be logged as a bug already -- find current bugs at
  http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Compiler

Bugs for exceptions thrown have titles File:line from the top stack, 
e.g., "SomeFile.java:243"

If you don't find the exception below in a bug, please add a new bug
at http://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ
To make the bug a priority, please include a test program
that can reproduce this exception.
Unhandled kind of new   -1: impdep1[254](1)

when implementing on shadow constructor-call(void java.lang.NoClassDefFoundError.<init>())
when weaving classes 
when weaving 
when batch building BuildConfig[null] #Files=1
Unhandled kind of new   -1: impdep1[254](1)
java.lang.RuntimeException: Unhandled kind of new   -1: impdep1[254](1)
	at org.aspectj.weaver.bcel.BcelShadow.deleteNewAndDup(BcelShadow.java:226)
	at org.aspectj.weaver.bcel.BcelShadow.prepareForMungers(BcelShadow.java:284)
	at org.aspectj.weaver.Shadow.implement(Shadow.java:470)
	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:1574)
	at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1525)
	at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1305)
	at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1127)
	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:887)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:244)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:163)
	at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:112)
	at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)
	at org.aspectj.tools.ajc.Main.run(Main.java:367)
	at org.aspectj.tools.ajc.Main.runMain(Main.java:246)
	at org.aspectj.tools.ajc.Main.main(Main.java:86)
Comment 1 jennie CLA 2007-05-14 17:03:38 EDT
Created attachment 67138 [details]
Reproducible bug test case

Test case to reproduce the bug
Comment 2 Andrew Clement CLA 2008-09-30 18:55:55 EDT
thanks for that clear way to reproduce it.  Looks like an unusual bytecode sequence AspectJ had not encountered before so I've allowed it through by making changes to AJ.