Project: AspectJ
Bug 138798 BCException on invalid annotation match
Reported: 2006-04-26 20:53:07 | Status: resolved fixed

This unfortunately invalid code: before(Throwable throwable, NormalException normalException) : handler(*) && args(throwable) && @withincode(normalException) { ... Generates this exception in AJDT with post-1.5.1a AspectJ org.aspectj.weaver.BCException at org.aspectj.weaver.bcel.BcelRenderer.visit(BcelRenderer.java:237) at org.aspectj.weaver.ast.Literal.accept(Literal.java:29) at org.aspectj.weaver.bcel.BcelRenderer.recur(BcelRenderer.java:153) at org.aspectj.weaver.bcel.BcelRenderer.renderTest(BcelRenderer.java:119) at org.aspectj.weaver.bcel.BcelAdvice.getTestInstructions(BcelAdvice.java:537) at org.aspectj.weaver.bcel.BcelAdvice.getAdviceInstructions(BcelAdvice.java:376) at org.aspectj.weaver.bcel.BcelShadow.weaveBefore(BcelShadow.java:1690) at org.aspectj.weaver.bcel.BcelAdvice.implementOn(BcelAdvice.java:208) at org.aspectj.weaver.Shadow.implementMungers(Shadow.java:639) at org.aspectj.weaver.Shadow.implement(Shadow.java:456) at org.aspectj.weaver.bcel.BcelClassWeaver.implement(BcelClassWeaver.java:2236) at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:491) at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:109) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1560) at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1511) at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1291) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1113) at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.weave(AjCompilerAdapter.java:311) at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.afterCompiling(AjCompilerAdapter.java:183) 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:862) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:242) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:161) at org.aspectj.ajde.internal.CompilerAdapter.compile(CompilerAdapter.java:122) at org.aspectj.ajde.internal.AspectJBuildManager$CompilerThread.run(AspectJBuildManager.java:191) trouble in: public class glassbox.client.ConnectionManager extends java.lang.Object: public static String propnameNum public static String propnameDefault public static String propnameViewed public static String propnameNickPrefix public static String propnameUrlPrefix public static String propnameViewedPrefix private static String propFilename private static String localhostNickname public static String localhostURL private java.util.List connectionList [Signature(Ljava/util/List<Lglassbox/client/ConnectionManager$AgentConnection;>;)] private int defaultConnectionIndex private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0 static void <clinit>(): staticinitialization(void glassbox.client.ConnectionManager.<clinit>()) | LDC "glassbox.connections.num" (line 13) | PUTSTATIC glassbox.client.ConnectionManager.propnameNum Ljava/lang/String; | LDC "glassbox.connections.default" (line 14) | PUTSTATIC glassbox.client.ConnectionManager.propnameDefault Ljava/lang/String; | LDC "glassbox.connections.viewed" (line 15) | PUTSTATIC glassbox.client.ConnectionManager.propnameViewed Ljava/lang/String; | LDC "glassbox.connections.nickname_" (line 16) | PUTSTATIC glassbox.client.ConnectionManager.propnameNickPrefix Ljava/lang/String; | LDC "glassbox.connections.url_" (line 17) | PUTSTATIC glassbox.client.ConnectionManager.propnameUrlPrefix Ljava/lang/String; | LDC "glassbox.connections.viewed_" (line 18) | PUTSTATIC glassbox.client.ConnectionManager.propnameViewedPrefix Ljava/lang/String; | LDC "connection.properties" (line 20) | PUTSTATIC glassbox.client.ConnectionManager.propFilename Ljava/lang/String; | LDC "localhost" (line 21) | PUTSTATIC glassbox.client.ConnectionManager.localhostNickname Ljava/lang/String; | LDC "service:jmx:rmi://localhost:7131/jndi/rmi://localhost:7132/GlassboxTroubleshooter" (line 22) | PUTSTATIC glassbox.client.ConnectionManager.localhostURL Ljava/lang/String; | RETURN (line 11) staticinitialization(void glassbox.client.ConnectionManager.<clinit>()) end static void <clinit>() public void <init>() org.aspectj.weaver.MethodDeclarationLineNumber: 23:966 : ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 23) INVOKESPECIAL java.lang.Object.<init> ()V constructor-execution(void glassbox.client.ConnectionManager.<init>()) | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 24) | INVOKEVIRTUAL glassbox.client.ConnectionManager.init ()V | RETURN (line 25) constructor-execution(void glassbox.client.ConnectionManager.<init>()) end public void <init>() public void init() org.aspectj.weaver.MethodDeclarationLineNumber: 67:1992 : method-execution(void glassbox.client.ConnectionManager.init()) | catch java.lang.RuntimeException -> E0 | | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 69) | | INVOKEVIRTUAL glassbox.client.ConnectionManager.readFromFile ()V | | GOTO L0 | catch java.lang.RuntimeException -> E0 | E0: ASTORE_2 | exception-handler(void glassbox.client.ConnectionManager.<catch>(java.lang.RuntimeException)) | | ALOAD_2 | exception-handler(void glassbox.client.ConnectionManager.<catch>(java.lang.RuntimeException)) | ASTORE_1 (line 70) | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 71) | INVOKEVIRTUAL glassbox.client.ConnectionManager.createDefaultList ()V | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 72) | INVOKEVIRTUAL glassbox.client.ConnectionManager.writeToFile ()V | L0: RETURN (line 74) method-execution(void glassbox.client.ConnectionManager.init()) end public void init() public void createDefaultList() org.aspectj.weaver.MethodDeclarationLineNumber: 76:2134 : method-execution(void glassbox.client.ConnectionManager.createDefaultList()) | NEW glassbox.client.ConnectionManager$AgentConnection (line 77) | DUP | ALOAD_0 // Lglassbox/client/ConnectionManager; this | GETSTATIC glassbox.client.ConnectionManager.localhostNickname Ljava/lang/String; | GETSTATIC glassbox.client.ConnectionManager.localhostURL Ljava/lang/String; | ICONST_1 | INVOKESPECIAL glassbox.client.ConnectionManager$AgentConnection.<init> (Lglassbox/client/ConnectionManager;Ljava/lang/String;Ljava/lang/String;Z)V | ASTORE_1 | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 78) | NEW java.util.ArrayList | DUP | INVOKESPECIAL java.util.ArrayList.<init> ()V | PUTFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 79) | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | ALOAD_1 // Lglassbox/client/ConnectionManager$AgentConnection; localhost | INVOKEINTERFACE java.util.List.add (Ljava/lang/Object;)Z | POP | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 80) | ICONST_0 | PUTFIELD glassbox.client.ConnectionManager.defaultConnectionIndex I | RETURN (line 81) method-execution(void glassbox.client.ConnectionManager.createDefaultList()) end public void createDefaultList() public void writeToFile() org.aspectj.weaver.MethodDeclarationLineNumber: 84:2433 : method-execution(void glassbox.client.ConnectionManager.writeToFile()) | NEW java.util.Properties (line 85) | DUP | INVOKESPECIAL java.util.Properties.<init> ()V | ASTORE_1 | ALOAD_1 // Ljava/util/Properties; properties (line 86) | GETSTATIC glassbox.client.ConnectionManager.propnameNum Ljava/lang/String; | ALOAD_0 // Lglassbox/client/ConnectionManager; this | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | INVOKEINTERFACE java.util.List.size ()I | INVOKESTATIC java.lang.String.valueOf (I)Ljava/lang/String; | INVOKEVIRTUAL java.util.Properties.setProperty (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object; | POP | ALOAD_1 // Ljava/util/Properties; properties (line 87) | GETSTATIC glassbox.client.ConnectionManager.propnameDefault Ljava/lang/String; | ALOAD_0 // Lglassbox/client/ConnectionManager; this | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | ALOAD_0 // Lglassbox/client/ConnectionManager; this | GETFIELD glassbox.client.ConnectionManager.defaultConnectionIndex I | INVOKEINTERFACE java.util.List.get (I)Ljava/lang/Object; | CHECKCAST glassbox.client.ConnectionManager$AgentConnection | INVOKEVIRTUAL glassbox.client.ConnectionManager$AgentConnection.getNickname ()Ljava/lang/String; | INVOKEVIRTUAL java.util.Properties.setProperty (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object; | POP | ICONST_0 (line 88) | ISTORE_2 | GOTO L1 | L0: ALOAD_1 // Ljava/util/Properties; properties (line 89) | NEW java.lang.StringBuilder | DUP | GETSTATIC glassbox.client.ConnectionManager.propnameNickPrefix Ljava/lang/String; | INVOKESTATIC java.lang.String.valueOf (Ljava/lang/Object;)Ljava/lang/String; | INVOKESPECIAL java.lang.StringBuilder.<init> (Ljava/lang/String;)V | ILOAD_2 // I i | INVOKEVIRTUAL java.lang.StringBuilder.append (I)Ljava/lang/StringBuilder; | INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String; | ALOAD_0 // Lglassbox/client/ConnectionManager; this | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | ILOAD_2 // I i | INVOKEINTERFACE java.util.List.get (I)Ljava/lang/Object; | CHECKCAST glassbox.client.ConnectionManager$AgentConnection | INVOKEVIRTUAL glassbox.client.ConnectionManager$AgentConnection.getNickname ()Ljava/lang/String; | INVOKEVIRTUAL java.util.Properties.setProperty (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object; | POP | ALOAD_1 // Ljava/util/Properties; properties (line 90) | NEW java.lang.StringBuilder | DUP | GETSTATIC glassbox.client.ConnectionManager.propnameUrlPrefix Ljava/lang/String; | INVOKESTATIC java.lang.String.valueOf (Ljava/lang/Object;)Ljava/lang/String; | INVOKESPECIAL java.lang.StringBuilder.<init> (Ljava/lang/String;)V | ILOAD_2 // I i | INVOKEVIRTUAL java.lang.StringBuilder.append (I)Ljava/lang/StringBuilder; | INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String; | ALOAD_0 // Lglassbox/client/ConnectionManager; this | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | ILOAD_2 // I i | INVOKEINTERFACE java.util.List.get (I)Ljava/lang/Object; | CHECKCAST glassbox.client.ConnectionManager$AgentConnection | INVOKEVIRTUAL glassbox.client.ConnectionManager$AgentConnection.getUrl ()Ljava/lang/String; | INVOKEVIRTUAL java.util.Properties.setProperty (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object; | POP | ALOAD_1 // Ljava/util/Properties; properties (line 91) | NEW java.lang.StringBuilder | DUP | GETSTATIC glassbox.client.ConnectionManager.propnameViewedPrefix Ljava/lang/String; | INVOKESTATIC java.lang.String.valueOf (Ljava/lang/Object;)Ljava/lang/String; | INVOKESPECIAL java.lang.StringBuilder.<init> (Ljava/lang/String;)V | ILOAD_2 // I i | INVOKEVIRTUAL java.lang.StringBuilder.append (I)Ljava/lang/StringBuilder; | INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String; | ALOAD_0 // Lglassbox/client/ConnectionManager; this | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | ILOAD_2 // I i | INVOKEINTERFACE java.util.List.get (I)Ljava/lang/Object; | CHECKCAST glassbox.client.ConnectionManager$AgentConnection | INVOKEVIRTUAL glassbox.client.ConnectionManager$AgentConnection.isViewed ()Z | INVOKESTATIC java.lang.String.valueOf (Z)Ljava/lang/String; | INVOKEVIRTUAL java.util.Properties.setProperty (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object; | POP | IINC 2 1 // I i (line 88) | L1: ILOAD_2 // I i | ALOAD_0 // Lglassbox/client/ConnectionManager; this | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | INVOKEINTERFACE java.util.List.size ()I | IF_ICMPLT L0 | catch java.io.IOException -> E0 | | NEW java.io.File (line 94) | | DUP | | GETSTATIC glassbox.client.ConnectionManager.propFilename Ljava/lang/String; | | INVOKESPECIAL java.io.File.<init> (Ljava/lang/String;)V | | ASTORE_2 | | NEW java.io.FileOutputStream (line 95) | | DUP | | ALOAD_2 // Ljava/io/File; f | | ICONST_0 | | INVOKESPECIAL java.io.FileOutputStream.<init> (Ljava/io/File;Z)V | | ASTORE_3 | | ALOAD_1 // Ljava/util/Properties; properties (line 96) | | ALOAD_3 // Ljava/io/FileOutputStream; fos | | ACONST_NULL | | INVOKEVIRTUAL java.util.Properties.store (Ljava/io/OutputStream;Ljava/lang/String;)V | | ALOAD_3 // Ljava/io/FileOutputStream; fos (line 97) | | INVOKEVIRTUAL java.io.FileOutputStream.close ()V | | GOTO L2 | catch java.io.IOException -> E0 | E0: ASTORE_2 (line 98) | GETSTATIC java.lang.System.err Ljava/io/PrintStream; (line 99) | LDC "Failed to write connection.properties file" | INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V | GETSTATIC java.lang.System.err Ljava/io/PrintStream; (line 100) | ALOAD_2 // Ljava/io/IOException; e | INVOKEVIRTUAL java.io.IOException.toString ()Ljava/lang/String; | INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V | L2: RETURN (line 102) method-execution(void glassbox.client.ConnectionManager.writeToFile()) end public void writeToFile() public void readFromFile() org.aspectj.weaver.MethodDeclarationLineNumber: 105:3495 : method-execution(void glassbox.client.ConnectionManager.readFromFile()) | NEW java.util.ArrayList (line 107) | DUP | INVOKESPECIAL java.util.ArrayList.<init> ()V | ASTORE_1 | NEW java.util.Properties (line 108) | DUP | INVOKESPECIAL java.util.Properties.<init> ()V | ASTORE_2 | NEW java.io.File (line 110) | DUP | GETSTATIC glassbox.client.ConnectionManager.propFilename Ljava/lang/String; | INVOKESPECIAL java.io.File.<init> (Ljava/lang/String;)V | ASTORE 4 | catch java.io.IOException -> E0 | | ALOAD_2 // Ljava/util/Properties; properties (line 112) | | NEW java.io.FileInputStream | | DUP | | ALOAD 4 // Ljava/io/File; f | | INVOKESPECIAL java.io.FileInputStream.<init> (Ljava/io/File;)V | | INVOKEVIRTUAL java.util.Properties.load (Ljava/io/InputStream;)V | | GOTO L0 | catch java.io.IOException -> E0 | E0: ASTORE 5 (line 113) | NEW java.lang.RuntimeException (line 116) | DUP | NEW java.lang.StringBuilder | DUP | LDC "Can't open " | INVOKESPECIAL java.lang.StringBuilder.<init> (Ljava/lang/String;)V | ALOAD 4 // Ljava/io/File; f | INVOKEVIRTUAL java.io.File.getAbsolutePath ()Ljava/lang/String; | INVOKEVIRTUAL java.lang.StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder; | INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String; | INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V | ATHROW | catch java.lang.Exception -> E1 | | L0: ALOAD_2 // Ljava/util/Properties; properties (line 119) | | GETSTATIC glassbox.client.ConnectionManager.propnameNum Ljava/lang/String; | | INVOKEVIRTUAL java.util.Properties.getProperty (Ljava/lang/String;)Ljava/lang/String; | | INVOKESTATIC java.lang.Integer.valueOf (Ljava/lang/String;)Ljava/lang/Integer; | | INVOKEVIRTUAL java.lang.Integer.intValue ()I | | ISTORE 5 | | ALOAD_2 // Ljava/util/Properties; properties (line 120) | | GETSTATIC glassbox.client.ConnectionManager.propnameDefault Ljava/lang/String; | | INVOKEVIRTUAL java.util.Properties.getProperty (Ljava/lang/String;)Ljava/lang/String; | | ASTORE 6 | | ALOAD 6 // Ljava/lang/String; defNickname (line 121) | | IFNONNULL L1 | | NEW java.lang.RuntimeException | | DUP | | NEW java.lang.StringBuilder | | DUP | | LDC "missing " | | INVOKESPECIAL java.lang.StringBuilder.<init> (Ljava/lang/String;)V | | GETSTATIC glassbox.client.ConnectionManager.propnameDefault Ljava/lang/String; | | INVOKEVIRTUAL java.lang.StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder; | | INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String; | | INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V | | ATHROW | | L1: ILOAD 5 // I num (line 122) | | ICONST_1 | | IF_ICMPGE L2 | | NEW java.lang.RuntimeException | | DUP | | NEW java.lang.StringBuilder | | DUP | | LDC "Bad " | | INVOKESPECIAL java.lang.StringBuilder.<init> (Ljava/lang/String;)V | | GETSTATIC glassbox.client.ConnectionManager.propnameNum Ljava/lang/String; | | INVOKEVIRTUAL java.lang.StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder; | | LDC "=" | | INVOKEVIRTUAL java.lang.StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder; | | ILOAD 5 // I num | | INVOKEVIRTUAL java.lang.StringBuilder.append (I)Ljava/lang/StringBuilder; | | INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String; | | INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V | | ATHROW | | L2: ICONST_0 (line 123) | | ISTORE 7 | | GOTO L9 | | L3: ALOAD_2 // Ljava/util/Properties; properties (line 124) | | NEW java.lang.StringBuilder | | DUP | | GETSTATIC glassbox.client.ConnectionManager.propnameNickPrefix Ljava/lang/String; | | INVOKESTATIC java.lang.String.valueOf (Ljava/lang/Object;)Ljava/lang/String; | | INVOKESPECIAL java.lang.StringBuilder.<init> (Ljava/lang/String;)V | | ILOAD 7 // I i | | INVOKEVIRTUAL java.lang.StringBuilder.append (I)Ljava/lang/StringBuilder; | | INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String; | | INVOKEVIRTUAL java.util.Properties.getProperty (Ljava/lang/String;)Ljava/lang/String; | | ASTORE 8 | | ALOAD 8 // Ljava/lang/String; nickname (line 125) | | IFNONNULL L4 | | NEW java.lang.RuntimeException | | DUP | | NEW java.lang.StringBuilder | | DUP | | LDC "missing " | | INVOKESPECIAL java.lang.StringBuilder.<init> (Ljava/lang/String;)V | | GETSTATIC glassbox.client.ConnectionManager.propnameNickPrefix Ljava/lang/String; | | INVOKEVIRTUAL java.lang.StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder; | | ILOAD 7 // I i | | INVOKEVIRTUAL java.lang.StringBuilder.append (I)Ljava/lang/StringBuilder; | | INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String; | | INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V | | ATHROW | | L4: ALOAD_2 // Ljava/util/Properties; properties (line 126) | | NEW java.lang.StringBuilder | | DUP | | GETSTATIC glassbox.client.ConnectionManager.propnameUrlPrefix Ljava/lang/String; | | INVOKESTATIC java.lang.String.valueOf (Ljava/lang/Object;)Ljava/lang/String; | | INVOKESPECIAL java.lang.StringBuilder.<init> (Ljava/lang/String;)V | | ILOAD 7 // I i | | INVOKEVIRTUAL java.lang.StringBuilder.append (I)Ljava/lang/StringBuilder; | | INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String; | | INVOKEVIRTUAL java.util.Properties.getProperty (Ljava/lang/String;)Ljava/lang/String; | | ASTORE 9 | | ALOAD 9 // Ljava/lang/String; url (line 127) | | IFNONNULL L5 | | NEW java.lang.RuntimeException | | DUP | | NEW java.lang.StringBuilder | | DUP | | LDC "missing " | | INVOKESPECIAL java.lang.StringBuilder.<init> (Ljava/lang/String;)V | | GETSTATIC glassbox.client.ConnectionManager.propnameUrlPrefix Ljava/lang/String; | | INVOKEVIRTUAL java.lang.StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder; | | ILOAD 7 // I i | | INVOKEVIRTUAL java.lang.StringBuilder.append (I)Ljava/lang/StringBuilder; | | INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String; | | INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V | | ATHROW | | L5: ALOAD_2 // Ljava/util/Properties; properties (line 128) | | NEW java.lang.StringBuilder | | DUP | | GETSTATIC glassbox.client.ConnectionManager.propnameViewedPrefix Ljava/lang/String; | | INVOKESTATIC java.lang.String.valueOf (Ljava/lang/Object;)Ljava/lang/String; | | INVOKESPECIAL java.lang.StringBuilder.<init> (Ljava/lang/String;)V | | ILOAD 7 // I i | | INVOKEVIRTUAL java.lang.StringBuilder.append (I)Ljava/lang/StringBuilder; | | INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String; | | INVOKEVIRTUAL java.util.Properties.getProperty (Ljava/lang/String;)Ljava/lang/String; | | ASTORE 10 | | ALOAD 10 // Ljava/lang/String; viewedStr (line 129) | | LDC "true" | | INVOKEVIRTUAL java.lang.String.contentEquals (Ljava/lang/CharSequence;)Z | | IFEQ L6 | | ICONST_1 | | GOTO L7 | | L6: ICONST_0 | | L7: ISTORE_3 | | ALOAD 9 // Ljava/lang/String; url (line 130) | | IFNONNULL L8 | | NEW java.lang.RuntimeException | | DUP | | NEW java.lang.StringBuilder | | DUP | | LDC "missing " | | INVOKESPECIAL java.lang.StringBuilder.<init> (Ljava/lang/String;)V | | GETSTATIC glassbox.client.ConnectionManager.propnameViewedPrefix Ljava/lang/String; | | INVOKEVIRTUAL java.lang.StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder; | | ILOAD 7 // I i | | INVOKEVIRTUAL java.lang.StringBuilder.append (I)Ljava/lang/StringBuilder; | | INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String; | | INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V | | ATHROW | | L8: ALOAD_1 // Ljava/util/List; agcon (line 131) | | NEW glassbox.client.ConnectionManager$AgentConnection | | DUP | | ALOAD_0 // Lglassbox/client/ConnectionManager; this | | ALOAD 8 // Ljava/lang/String; nickname | | ALOAD 9 // Ljava/lang/String; url | | ILOAD_3 // Z viewed | | INVOKESPECIAL glassbox.client.ConnectionManager$AgentConnection.<init> (Lglassbox/client/ConnectionManager;Ljava/lang/String;Ljava/lang/String;Z)V | | INVOKEINTERFACE java.util.List.add (Ljava/lang/Object;)Z | | POP | | IINC 7 1 // I i (line 123) | | L9: ILOAD 7 // I i | | ILOAD 5 // I num | | IF_ICMPLT L3 | | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 133) | | ICONST_M1 | | PUTFIELD glassbox.client.ConnectionManager.defaultConnectionIndex I | | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 134) | | ALOAD_1 // Ljava/util/List; agcon | | PUTFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 135) | | ALOAD 6 // Ljava/lang/String; defNickname | | INVOKEVIRTUAL glassbox.client.ConnectionManager.setAsDefault (Ljava/lang/String;)V | | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 136) | | GETFIELD glassbox.client.ConnectionManager.defaultConnectionIndex I | | ICONST_M1 | | IF_ICMPNE L10 | | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 137) | | ICONST_0 | | PUTFIELD glassbox.client.ConnectionManager.defaultConnectionIndex I | | GOTO L10 | catch java.lang.Exception -> E1 | E1: ASTORE 5 (line 140) | GETSTATIC java.lang.System.err Ljava/io/PrintStream; (line 141) | LDC "Failed to read connection.properties file" | INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V | ALOAD 5 // Ljava/lang/Exception; e2 (line 142) | INVOKEVIRTUAL java.lang.Exception.printStackTrace ()V | NEW java.lang.RuntimeException (line 143) | DUP | ALOAD 5 // Ljava/lang/Exception; e2 | INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/Throwable;)V | ATHROW | L10: RETURN (line 145) method-execution(void glassbox.client.ConnectionManager.readFromFile()) end public void readFromFile() public void delete(String) org.aspectj.weaver.MethodDeclarationLineNumber: 147:5452 : method-execution(void glassbox.client.ConnectionManager.delete(java.lang.String)) | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 148) | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | INVOKEINTERFACE java.util.List.size ()I | ICONST_1 | IF_ICMPGT L0 | RETURN | L0: ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 149) | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | INVOKEINTERFACE java.util.List.iterator ()Ljava/util/Iterator; | ASTORE_3 | GOTO L3 | L1: ALOAD_3 | INVOKEINTERFACE java.util.Iterator.next ()Ljava/lang/Object; | CHECKCAST glassbox.client.ConnectionManager$AgentConnection | ASTORE_2 | ALOAD_2 // Lglassbox/client/ConnectionManager$AgentConnection; con (line 151) | INVOKEVIRTUAL glassbox.client.ConnectionManager$AgentConnection.getNickname ()Ljava/lang/String; | ALOAD_1 // Ljava/lang/String; nickname | INVOKEVIRTUAL java.lang.String.equals (Ljava/lang/Object;)Z | IFEQ L3 | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 152) | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | ALOAD_2 // Lglassbox/client/ConnectionManager$AgentConnection; con | INVOKEINTERFACE java.util.List.lastIndexOf (Ljava/lang/Object;)I | ALOAD_0 // Lglassbox/client/ConnectionManager; this | GETFIELD glassbox.client.ConnectionManager.defaultConnectionIndex I | IF_ICMPNE L2 | ALOAD_0 // Lglassbox/client/ConnectionManager; this | ICONST_0 | PUTFIELD glassbox.client.ConnectionManager.defaultConnectionIndex I | L2: ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 154) | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | ALOAD_2 // Lglassbox/client/ConnectionManager$AgentConnection; con | INVOKEINTERFACE java.util.List.remove (Ljava/lang/Object;)Z | POP | GOTO L4 (line 155) | L3: ALOAD_3 (line 149) | INVOKEINTERFACE java.util.Iterator.hasNext ()Z | IFNE L1 | L4: RETURN (line 158) method-execution(void glassbox.client.ConnectionManager.delete(java.lang.String)) end public void delete(String) public void setAsDefault(String) org.aspectj.weaver.MethodDeclarationLineNumber: 160:5880 : method-execution(void glassbox.client.ConnectionManager.setAsDefault(java.lang.String)) | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 161) | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | INVOKEINTERFACE java.util.List.iterator ()Ljava/util/Iterator; | ASTORE_3 | GOTO L1 | L0: ALOAD_3 | INVOKEINTERFACE java.util.Iterator.next ()Ljava/lang/Object; | CHECKCAST glassbox.client.ConnectionManager$AgentConnection | ASTORE_2 | ALOAD_2 // Lglassbox/client/ConnectionManager$AgentConnection; con (line 162) | INVOKEVIRTUAL glassbox.client.ConnectionManager$AgentConnection.getNickname ()Ljava/lang/String; | ALOAD_1 // Ljava/lang/String; nickname | INVOKEVIRTUAL java.lang.String.equals (Ljava/lang/Object;)Z | IFEQ L1 | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 163) | ALOAD_0 // Lglassbox/client/ConnectionManager; this | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | ALOAD_2 // Lglassbox/client/ConnectionManager$AgentConnection; con | INVOKEINTERFACE java.util.List.lastIndexOf (Ljava/lang/Object;)I | PUTFIELD glassbox.client.ConnectionManager.defaultConnectionIndex I | ALOAD_2 // Lglassbox/client/ConnectionManager$AgentConnection; con (line 164) | ICONST_1 | INVOKEVIRTUAL glassbox.client.ConnectionManager$AgentConnection.setViewed (Z)V | GOTO L2 (line 165) | L1: ALOAD_3 (line 161) | INVOKEINTERFACE java.util.Iterator.hasNext ()Z | IFNE L0 | L2: RETURN (line 168) method-execution(void glassbox.client.ConnectionManager.setAsDefault(java.lang.String)) end public void setAsDefault(String) public void setSelectViewed(String, boolean) org.aspectj.weaver.MethodDeclarationLineNumber: 170:6156 : method-execution(void glassbox.client.ConnectionManager.setSelectViewed(java.lang.String, boolean)) | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 171) | INVOKEVIRTUAL glassbox.client.ConnectionManager.getDefaultNick ()Ljava/lang/String; | ASTORE_3 | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 172) | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | INVOKEINTERFACE java.util.List.iterator ()Ljava/util/Iterator; | ASTORE 5 | GOTO L2 | L0: ALOAD 5 | INVOKEINTERFACE java.util.Iterator.next ()Ljava/lang/Object; | CHECKCAST glassbox.client.ConnectionManager$AgentConnection | ASTORE 4 | ALOAD 4 // Lglassbox/client/ConnectionManager$AgentConnection; con (line 173) | INVOKEVIRTUAL glassbox.client.ConnectionManager$AgentConnection.getNickname ()Ljava/lang/String; | ALOAD_1 // Ljava/lang/String; nickname | INVOKEVIRTUAL java.lang.String.equals (Ljava/lang/Object;)Z | IFEQ L2 | ILOAD_2 // Z val (line 174) | IFNE L1 | ALOAD_3 // Ljava/lang/String; defNick | ALOAD 4 // Lglassbox/client/ConnectionManager$AgentConnection; con | INVOKEVIRTUAL glassbox.client.ConnectionManager$AgentConnection.getNickname ()Ljava/lang/String; | IF_ACMPEQ L2 | L1: ALOAD 4 // Lglassbox/client/ConnectionManager$AgentConnection; con (line 177) | ILOAD_2 // Z val | INVOKEVIRTUAL glassbox.client.ConnectionManager$AgentConnection.setViewed (Z)V | GOTO L3 (line 178) | L2: ALOAD 5 (line 172) | INVOKEINTERFACE java.util.Iterator.hasNext ()Z | IFNE L0 | L3: RETURN (line 182) method-execution(void glassbox.client.ConnectionManager.setSelectViewed(java.lang.String, boolean)) end public void setSelectViewed(String, boolean) public boolean getSelectViewed(String) org.aspectj.weaver.MethodDeclarationLineNumber: 184:6636 : method-execution(boolean glassbox.client.ConnectionManager.getSelectViewed(java.lang.String)) | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 185) | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | INVOKEINTERFACE java.util.List.iterator ()Ljava/util/Iterator; | ASTORE_3 | GOTO L1 | L0: ALOAD_3 | INVOKEINTERFACE java.util.Iterator.next ()Ljava/lang/Object; | CHECKCAST glassbox.client.ConnectionManager$AgentConnection | ASTORE_2 | ALOAD_2 // Lglassbox/client/ConnectionManager$AgentConnection; con (line 186) | INVOKEVIRTUAL glassbox.client.ConnectionManager$AgentConnection.getNickname ()Ljava/lang/String; | ALOAD_1 // Ljava/lang/String; nickname | INVOKEVIRTUAL java.lang.String.equals (Ljava/lang/Object;)Z | IFEQ L1 | ALOAD_2 // Lglassbox/client/ConnectionManager$AgentConnection; con (line 187) | INVOKEVIRTUAL glassbox.client.ConnectionManager$AgentConnection.isViewed ()Z | IRETURN | L1: ALOAD_3 (line 185) | INVOKEINTERFACE java.util.Iterator.hasNext ()Z | IFNE L0 | ICONST_0 (line 190) | IRETURN method-execution(boolean glassbox.client.ConnectionManager.getSelectViewed(java.lang.String)) end public boolean getSelectViewed(String) public String getNicknameFromURL(String) org.aspectj.weaver.MethodDeclarationLineNumber: 193:6903 : method-execution(java.lang.String glassbox.client.ConnectionManager.getNicknameFromURL(java.lang.String)) | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 194) | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | INVOKEINTERFACE java.util.List.iterator ()Ljava/util/Iterator; | ASTORE_3 | GOTO L1 | L0: ALOAD_3 | INVOKEINTERFACE java.util.Iterator.next ()Ljava/lang/Object; | CHECKCAST glassbox.client.ConnectionManager$AgentConnection | ASTORE_2 | ALOAD_2 // Lglassbox/client/ConnectionManager$AgentConnection; con (line 195) | INVOKEVIRTUAL glassbox.client.ConnectionManager$AgentConnection.getUrl ()Ljava/lang/String; | ALOAD_1 // Ljava/lang/String; url | INVOKEVIRTUAL java.lang.String.equals (Ljava/lang/Object;)Z | IFEQ L1 | ALOAD_2 // Lglassbox/client/ConnectionManager$AgentConnection; con (line 196) | INVOKEVIRTUAL glassbox.client.ConnectionManager$AgentConnection.getNickname ()Ljava/lang/String; | ARETURN | L1: ALOAD_3 (line 194) | INVOKEINTERFACE java.util.Iterator.hasNext ()Z | IFNE L0 | LDC_W " " (line 199) | ARETURN method-execution(java.lang.String glassbox.client.ConnectionManager.getNicknameFromURL(java.lang.String)) end public String getNicknameFromURL(String) public glassbox.client.ConnectionManager$AgentConnection getAgentConnectionFromURL(String) org.aspectj.weaver.MethodDeclarationLineNumber: 202:7168 : method-execution(glassbox.client.ConnectionManager$AgentConnection glassbox.client.ConnectionManager.getAgentConnectionFromURL(java.lang.String)) | ALOAD_0 // Lglassbox/client/ConnectionManager; this (line 203) | GETFIELD glassbox.client.ConnectionManager.connectionList Ljava/util/List; | INVOKEINTERFACE java.util.List.iterator ()Ljava/util/Iterator; | ASTORE_3 | GOTO L1 | L0: ALOAD_3 | INVOKEINTERFACE java.util.Iterator.next ()Ljava/lang/Object; | CHECKCAST glassbox.client.ConnectionManager$AgentConnection | ASTORE_2 | ALOAD_2 // Lglassbox/client/ConnectionManager$AgentConnection; con (line 204) | INVOKEVIRTUAL glassbox.client.ConnectionManager$AgentConnection.getUrl ()Ljava/lang/String; | ALOAD_1 // Ljava/lang/String; url | INVOKEVIRTUAL java.lang.String.equals (Ljava/lang/Object;)Z | IFEQ L1 | ALOAD_2 // Lglassbox/client/ConnectionManager$AgentConnection; con (line 205) | ARETURN | L1: ALOAD_3 (line 203) | INVOKEINTERFACE java.util.Iterator.hasNext ()Z | IFNE L0 | ACONST_NULL (line 209) | ARETURN method-execution(glassbox.client.ConnectionManager$AgentConnection glassbox.client.ConnectionManager.getAgentConnectionFromURL(java.lang.String)) end public glassbox.client.ConnectionManager$AgentConnection getAgentConnectionFromURL(String) public glassbox.client.ConnectionManager$AgentConnection getAgentConnectionFromNick(String) org.aspectj.weaver.MethodDeclarationLineNumber: 212:7429 : method-execution(glassbox.client.C

Files changed in fix:
tests/src/org/aspectj/systemtest/ajc152/Ajc152Tests.java