Byteman 4.0.1 Release Notes --------------------------------- Release Notes - Byteman - Version 4.0.1 ** Bug * [ BYTEMAN-351 ] ThreadHistoryMonitorHelper does not shutdown executor which can lead to the program hangs * [ BYTEMAN-352 ] Shell tooling script does not work when (JAVA|BYTEMAN)_HOME evn vars are defined with spaces ** Task * [ BYTEMAN-356 ] Allow running the full build on JDK9 ** Enhancement * [ BYTEMAN-353 ] Make dtest rule constructor to use default helper and make the dtest helper to know default rmi port * [ BYTEMAN-355 ] Byteman 4.0.0 does not work with JDK10 class files Release Notes - Byteman - Version 4.0.0 ** Feature Request * [ BYTEMAN-308 ] Improve feedback for failing unit tests * [ BYTEMAN-333 ] Tokeniser should recognise long and double literals * [ BYTEMAN-347 ] Extend LinkMap API to support retrieval of map keys * [ BYTEMAN-349 ] Clear up static resources of default Helper at deactivate ** Bug * [ BYTEMAN-288 ] Byteman should allow calls to methods of private static inner classes from generated bytecode * [ BYTEMAN-318 ] IllegalAccessException when attempting to access the public method of a private class * [ BYTEMAN-326 ] Wrong parameters documented for Helper method joinEnlist * [ BYTEMAN-327 ] Class Install errors for jar lookup should include invalid path rather than string "BYTEMAN_HOME" * [ BYTEMAN-328 ] Dtest class instrumentor functionality is not thread safe * [ BYTEMAN-337 ] byteman-root.pom declares broken mvn repo * [ BYTEMAN-344 ] Byteman listener is failing to close listener connections * [ BYTEMAN-345 ] Dtest library fails to concurrently trace multiple method calls * [ BYTEMAN-346 ] wierd behaviour in handling escape char "\" used in rules * [ BYTEMAN-348 ] Fix helper lifecycle processing * [ BYTEMAN-350 ] Byteman does not read the platform and system undefined modules when it is in the bootstrap" Release Notes - Byteman - Version 4.0.0-BETA5 ** Feature Request * [ BYTEMAN-336 ] Documentation of downcast in BIND clause is missing ** Bug * [ BYTEMAN-340 ] Null Pointer Exception when Rule encounters two types with same unqualified name * [ BYTEMAN-341 ] IllegalArgumentException may occur on jdk9 when accessing members of java.* and sun.* classes * [ BYTEMAN-342 ] Conversions from numeric object types may be handled incorrectly * [ BYTEMAN-343 ] Compiled rules may fail verify with Bad type in putfield/putstatic on jdk9 Release Notes - Byteman - Version 4.0.0-BETA4 ** Bug * [ BYTEMAN-326 ] Wrong parameters documented for Helper method joinEnlist * [ BYTEMAN-327 ] Class Install errors for jar lookup should include invalid path rather than string "BYTEMAN_HOME" * [ BYTEMAN-328 ] Dtest class instrumentor functionality is not thread safe * [ BYTEMAN-333 ] Tokeniser should recognise long and double literals * [ BYTEMAN-337 ] byteman-root.pom declares broken mvn repo * [ BYTEMAN-338 ] Unexpected ClassCastException during interpretation of Binding * for use on jdk9-ea+165 and later releases Release Notes - Byteman - Version 4.0.0-BETA3 ** Feature Request * [ BYTEMAN-331 ] Byteman should enable references to unexported module-public classes from compiled rules * [ BYTEMAN-334 ] Use method handles instead of reflection to access non-public methods under JDK9 * for use on jdk9-ea+151 and later releases Release Notes - Byteman - Version 4.0.0-BETA2 ** No new features or bug fixes * patched to run on jdk9-ea+151 and later releases Release Notes - Byteman - Version 4.0.0-BETA1 ** Bug * [ BYTEMAN-332 ] Init unexpected error initialising JigsawAccessManager by using with JDK 9 * patched to run on jdk9-ea+148 Release Notes - Byteman - Version 4.0.0-BETA0 ** Feature Request * [ BYTEMAN-330 ] Byteman should enable access to members of non-exported classes under Jigsaw Release Notes - Byteman - Version 4.0.0-ALPHA ** Enhancement * [BYTEMAN-324] - Byteman cannot cope with class files with JDK9 version code Release Notes - Byteman - Version 3.0.6 ** Bug BYTEMAN-288 has not yet been closed but a workaround has been implemented to deal with the most common cases. A complete fix is scheduled for 3.0.7. Release Notes - Byteman - Version 3.0.5 ** Feature Request * [ BYTEMAN-289 ] Compilation to bytecode should be configurable per rule * [ BYTEMAN-310 ] method call type checker fails ot use return type to filter candidate implementations * [ BYTEMAN-313 ] Extend Helper with a LinkMap API to allow better sharing of state between rules * [ BYTEMAN-317 ] Improve DTest package API and error messages ** Bug * [ BYTEMAN-315 ] Bindings type may check incorrectly when the declared type omits package qualifier * [ BYTEMAN-316 ] Comparisons of Numerics with non-Numerics not handled correctly * [ BYTEMAN-320 ] Byetman fails to inject into subclass of inner class ** Enhancement * [ BYTEMAN-307 ] Allow clearing of IMPORT list in rules Release Notes - Byteman - Version 3.0.4 ** Bug * [BYTEMAN-302] - AT ENTRY rules adjust named parameter offsets from 0 to end of injected code * [BYTEMAN-303] - Using Install Java API fails to locate byteman agent jar when using system property * [BYTEMAN-304] - Type checker fails to upcast argument types when matching new expression to candidate constructor ** Feature Request * [BYTEMAN-305] - Submit and Install API jars are missing OSGi metadata * [BYTEMAN-311] - No way to discover if a byteman agent has already been installed. Release Notes - Byteman - Version 3.0.3 ** This is a trial release for users to try out the new module import capability supported through use of the JBoss Modules Module Import Plugin ** Consult the Byteman blog for details of how to try out this new feature and provide feedback to the developers. Release Notes - Byteman - Version 3.0.2, ** Feature Request * [ BYTEMAN-291 ] Byteman should support expression lists for array iniitalization ** Bug * [ BYTEMAN-295 ] Document missing security policy option needed by JBoss AS and other secure apps * [ BYTEMAN-296 ] NPE thrown because type is unknown in some situations * [ BYTEMAN-297 ] Injection into finally block wrapping a synchronized block may cause verify error * [ BYTEMAN-298 ] Reference to boolean local var causes class cast exception * [ BYTEMAN-299 ] verifyError can arise because CFG propagates wrong monitoropen count Release Notes - Byteman - Version 3.0.1 ** Bug * [ BYTEMAN-292 ] manager: syntax introduces regression where listener fails to start when port/address specified Release Notes - Byteman - Version 3.0.0 ** Bug * [ BYTEMAN-285 ] Cannot apply rules to classes with lambdas. * [ BYTEMAN-286 ] ClassNotFoundException when using ^ where sub class is an inner class * [ BYTEMAN-287 ] setTriggering method is not usable in IF or BIND clauses ** Enhancement * [ BYTEMAN-290 ] Byteman should upgrade to a later version of asm Release Notes - Byteman - Version 2.2.2 ** Feature Request * [ BYTEMAN-276 ] BMINstall script fails on OSX with JDK7/8 * [ BYTEMAN-277 ] Type checker will reject type FooBar[] argument for type Foo[] parameter where FooBar extends Foo * [ BYTEMAN-280 ] Allow local 'manager' component to be used to configure scripts ** Enhancement * [ BYTEMAN-283 ] ThreadLocal.get() ENTER rule should not be injected Release Notes - Byteman - Version 2.2.1 ** Bug * [ BYTEMAN-274 ] NPE in Transformer class * [ BYTEMAN-275 ] PlusExpression must not assume operands are actually String even if its type is String ** Feature Request * JDK9 Compatibile Release Release Notes - Byteman - Version 2.2.0.1 ** Feature Request * [ BYTEMAN-266 ] Allow dumping of transformed bytecode to be configured from BMUnitConfig annotation ** Bug * [ BYTEMAN-267 ] BMUnit Listener is being invoked for all tests in test suite * [ BYTEMAN-269 ] BMUnit cannot mix tests derived from BMNGListener and BMNGRunner Release Notes - Byteman - Version 2.2.0 ** Feature Request * [ BYTEMAN-258 ] Provide rendezvous with timeout to avoid deadlock in tests ** Bug * [ BYTEMAN-188 ] "Obtaining the sources" and "Building Byteman" sections of documentation are incorrect * [ BYTEMAN-263 ] Dtest library does not know to work with interfaces * [ BYTEMAN-264 ] Dtest library does not know to instrument overloaded methods ** Enhancement * [ BYTEMAN-148 ] Add a @BMUnitConfig annotation for configuring agent from unit test Release Notes - Byteman - Version 2.1.4.1 ** Feature Request * [BYTEMAN-245] - Loading rules script file with ClassLoader .getSystemResourceAsStream("bytemanpkg.btm"); Release Notes - Byteman - Version 2.1.4 ** Bug * [BYTEMAN-251] - Byteman does not recognise Class instance literals * [BYTEMAN-253] - Byteman Throws CompileException because of unexpected stack height * [BYTEMAN-255] - BMUnit will not autoload Byteman agent on Windows 7 * [BYTEMAN-256] - Typo in BMUnit security policy system property processing ** Enhancement * [BYTEMAN-247] - Parser does not clearly identify missing IF clause as source of parse error ** Feature Request * [BYTEMAN-252] - Injected code casts to wrong type when retrieving updated value for local variable * [BYTEMAN-254] - Script dir paths in BMScript are not cross-compatible between Windows and Linux * [BYTEMAN-257] - Offline type checker should also check compilation of rules if enabled Many thanks to Antoine Vianey for his contribution to fix BYTEMAN-255 Release Notes - Byteman - Version 2.1.3 ** Bug * [BYTEMAN-188] - "Obtaining the sources" and "Building Byteman" sections of documentation are incorrect * [BYTEMAN-230] - NPE in BMUnit.findScript() * [BYTEMAN-241] - AT INVOKE ignores method parameters * [BYTEMAN-246] - Boolean comparisons give incorrect results ** Enhancement * [BYTEMAN-233] - Byteman is not friends with security managers * [BYTEMAN-238] - "FieldExpresssion.typeCheck : invalid field reference"should tell you what type is missing the field * [BYTEMAN-243] - Document use of rule check maven plugin ** Feature Request * [BYTEMAN-190] - Support automation of offline parsing and typechecking * [BYTEMAN-228] - BMUnit wrong usage of getResources() * [BYTEMAN-231] - Some documentation example rules use DONE instead of ENDRULE * [BYTEMAN-232] - MethodExpression compile gets stack max height wrong causing VerifyError * [BYTEMAN-235] - Compiler throws NPE when handling instances of anonymous or local class * [BYTEMAN-239] - rule-action macro for current class / method names * [BYTEMAN-242] - Add failOnWarning and expectWarnings options in the maven plugin * [BYTEMAN-244] - Unit test misc.TestInvokeParamBinding fails after fixing AT CALL arg parsing Release Notes - Byteman - Version 2.1.2 ** Bug * [BYTEMAN-227] - Zip downloads are not using DOS CRLF end-of-line convention for bat files in bin directory * [BYTEMAN-223] - fixed tools.jar profile makes hibernate-search not buildable on Mac w/ Jdk 7 * [BYTEMAN-222] - bmcheck offline rule checker sometimes sees NPE when checking rules * [BYTEMAN-220] - Keywords understood by the Byteman parser may clash with legal Java names * [BYTEMAN-219] - Byteman fails to typecheck calls to interface methods in the rule body * [BYTEMAN-215] - Inner classes must be addressed as package.OuterClass$InnerClass instead of package.OuterClass.InnerClass ** Enhancement * [BYTEMAN-224] - Upgrade ASM dependency to match Fedora ** Feature Request * [BYTEMAN-226] - Support uplaoding of rules from any jar on the classpath by supplying a list of InputStream * [BYTEMAN-225] - Allow downcasts when initialising local vars in the BIND clause * [BYTEMAN-221] - Support computing object size as a standard method in Helper Release Notes - Byteman - Version 2.1.0 ** Feature Request * [ BYTEMAN-212 ] Support length property for array types * [ BYTEMAN-213 ] Enhance Instrumentor.class of dtest to be more flexible ** Bug * [ BYTEMAN-210 ] Missing spaces in output * [ BYTEMAN-211 ] VerifyError under JDK7 Release Notes - Byteman - Version 2.0.4 ** Bug * [ BYTEMAN-208 ] BMUnit is ignoring port configuration setting Release Notes - Byteman - Version 2.0.3, ** Feature Request * [ BYTEMAN-205 ] Add helper to trace stacks of other threads * [ BYTEMAN-207 ] Deploy Byteman release to maven central ** Bug * [ BYTEMAN-200 ] NullPointerException in CFG.inBytemanHandler() * [ BYTEMAN-201 ] Error in documentation example for stack managementbuilty-in helper methods * [ BYTEMAN-202 ] Bit shift operators within action expression result in parse errors * [ BYTEMAN-203 ] NPE if RuleCheckMethodAdapter.checkBindings() doesn't find a match because of using wrong variable * [ BYTEMAN-206 ] Submit listAllRules is truncating trigger method names ** Enhancement * [ BYTEMAN-204 ] TestStackTrace unit test hard-codes fragile line numbers Release Notes - Byteman - Version 2.0.1 ** Bug * [BYTEMAN-186] - AFTER CALL rules which assign $! may suffer from verify error * [BYTEMAN-192] - BMRunnerUtil.constructScriptText concatenates targetLocation to script without using a separator * [BYTEMAN-194] - PlusExpression.compile compiles FADD instead of DADD when operating on Double values * [BYTEMAN-195] - Helper join method is leaking Joiner instances * [BYTEMAN-196] - An AT EXIT rule which refers to $! in when the target method is void can break trigger injectin * [BYTEMAN-198] - Local var reference in rule body can cause Null Pointer Exception during trigger injection if local var stack includes longs/doubles ** Enhancement * [BYTEMAN-199] - Improve trigger injection to disable injection for methods which fail to match a rule while allowing others cases to proceed ** Feature Request * [BYTEMAN-185] - @BMScript: search for 'value' and 'dir' on the classpath as well * [BYTEMAN-193] - Add Windows equialents for Linux/bash command scripts to release bin directory Release Notes - Byteman - Version 2.0.0 ** Bug * [BYTEMAN-176] - bmcheck throws Null Pointer Exception when overriding AT EXIT rule references $! * [BYTEMAN-177] - Type checker does not infer correct type for $! when used in AFTER CALL rule * [BYTEMAN-178] - Setting byteman port in javaagent options should enable agent listener * [BYTEMAN-179] - Trigger Injector fails to inject rules correctly when bytecode contains ARETURN or FRETURN * [BYTEMAN-180] - BMUnit jar config stops JUnit tests working under maven * [BYTEMAN-181] - Dynamically loaded or rule may not be installed * [BYTEMAN-182] - BMUnit does not allow AFTER targetLocation values * [BYTEMAN-183] - Null Pointer Exception when trying to get the stack trace on java.lang.String$CaseInsensitiveComparator.compare method ** Feature Request * [BYTEMAN-165] - Add file and line number info to compiled byteman rules * [BYTEMAN-175] - Type checker should not generate error for throw Error rule even though it is not declared by the target class * [BYTEMAN-184] - Allow TestNG test classes to import BMUnit behaviour using @Listener annotation Release Notes - Byteman - Version 1.6.0 ** Bug * [BYTEMAN-169] - TXMBeaanStats sample script is using wrong keys and invalid method name * [BYTEMAN-172] - Trigger injection inside a sycnhronized block suffers from verify errors on JDK7 * [BYTEMAN-173] - Can't inject RuntimeException: ensureTypeCheckedCompiled fails ** Enhancement * [BYTEMAN-174] - Rehtrow handler injection is slightly inefficient ** Feature Request * [BYTEMAN-168] - Add a org.jboss.byteman.sample.helper.ThreadHistoryMonitorHelper Release Notes - Byteman - Version 1.5.2 ** Bug * [BYTEMAN-150] - BMUnit BMRule annotation is ignoring binding="..." attrbute * [BYTEMAN-152] - Programmers Guide - documented bult-in Tracing methods do not match method names in class Helper * [BYTEMAN-153] - MethodExpression typecheck fails to select implementations wher argument type is subtype of formal parameter * [BYTEMAN-155] - VerifyError when accessing variable in static method * [BYTEMAN-156] - Type checker should not generate error for THROW rule if exception is declared by rule target class but not by trigger class * [BYTEMAN-159] - Agent is not retransforming loaded classes when interfaces are extended * [BYTEMAN-160] - Trigger injection into constructors AT ENTRY sometimes results in verify errors * [BYTEMAN-161] - Agent listener may die if runtime exception are thrown by Instrumentation.retransformClasses() * [BYTEMAN-162] - Assignments of parameters by name are lost on return from interpreted rule * [BYTEMAN-163] - StringLiteral typecheck is not allowing for the fact that a String is assignable to various interfaces * [BYTEMAN-164] - bminstall script fails on Mac OSX * [BYTEMAN-166] - PluisExpression typecheck method does not assign its type when it's operand types are strings Release Notes - Byteman - Version 1.5.1 ** Feature Request * [BYTEMAN-147] - Extend BMUNit package to support TestNG tests * [BYTEMAN-149] - Make maven work out of the box by installing agent jar from classpath if unconfigured Release Notes - Byteman - Version 1.5.0 ** Bug * [BYTEMAN-123] - new operator cannot create array instances * [BYTEMAN-138] - Change default rmi port number. * [BYTEMAN-139] - Fix UnknownFormatConversionException in JMXHelper. * [BYTEMAN-140] - Transformer should check the extends hierarchy of implemented interfaces when injecting into implementing classes ** Feature Request * [BYTEMAN-3] - Byteman parser error handling is very unfriendly * [BYTEMAN-134] - allow separator ';' as last charactor at the end of BIND or DO clause * [BYTEMAN-141] - Suggestion: start using .btm for Byteman rule script file extension instead of just .txt * [BYTEMAN-142] - Provide a way to control the tracing output remotely (i.e. without changing the scripts) * [BYTEMAN-143] - Make Install useable from Java apps and allow install to be performed using program name as well as pid * [BYTEMAN-144] - Automate loading and unloading of Byteman in unit tests * [BYTEMAN-145] - Make Install prefer org.jboss.byteman.home to BYTEMAN_HOME * [BYTEMAN-146] - Change bytemancheck to bmcheck Release Notes - Byteman - Version 1.4.1 ** Feature Request * [BYTEMAN-127] - JMXHelper in samples lib should select its MBeanServer more carefully * [BYTEMAN-130] - JMX Helper in samples lib should enable installation of JMX Connector Server for remote MBean access * [BYTEMAN-132] - Extend AT READ and AT WRITE locations to apply to parameter or local variable accesses as well as field accesses * [BYTEMAN-133] - Allow reference to the result of the method which has just been called in AFTER CALL rules using $! * [BYTEMAN-135] - Avoid checking super class hierarchies during injection when there are no rules using overriding injection * [BYTEMAN-137] - Array expressions cannot appear as the RHS of an assignment ** Bug * [BYTEMAN-128] - JMXHelper possible NullPointerException. * [BYTEMAN-129] - Specification of method return type in rule's METHOD clause * [BYTEMAN-131] - AT LINE rules are injected multiple times * [BYTEMAN-136] - Adding a shutdown hook to the JMXHelper. Release Notes - Byteman -Version 1.4.0 ** Feature Request * [ BYTEMAN-99 ] Allow access to non-public methods fields in rule body * [ BYTEMAN-120 ] maven jar for contrib * [ BYTEMAN-125 ] Allow the Byteman agent to be installed at runtime if possible * [ BYTEMAN-126 ] change name of submit script to bmsubmit ** Bug * [ BYTEMAN-115 ] Byteman invalidly recording tarnsforms when no injection performed * [ BYTEMAN-116 ] ComparisonExpression fails to handle null values correctly * [ BYTEMAN-117 ] ConditionalEvalExpression fails ot install type if both branches have the same type * [ BYTEMAN-118 ] String type coercion should not be converying null to "null" * [ BYTEMAN-119 ] Compiler does not compile cast of Object to Number when consuming a generic return value * [ BYTEMAN-121 ] New Expression type is reporting type errors as if it were a Throw expression * [ BYTEMAN-122 ] Rules sometimes are not purged when a transform fails * [ BYTEMAN-124 ] Byteman faisl to handle classes whose method empoy JSR/RET Release Notes - Byteman -Version 1.3.0 ** Feature Request * [ BYTEMAN-102 ] Provide rule bindings for a method parameters array and a method parameter count * [ BYTEMAN-103 ] allow access to stack content in AT INVOKE rules * [ BYTEMAN-104 ] add call stack util methods to default helper * [ BYTEMAN-107 ] Provide lifecycle management for rules/helpers * [ BYTEMAN-110 ] contribute dtest prototype * [ BYTEMAN-92 ] Can locations which take a count also take keyword ALL * [ BYTEMAN-94 ] Provide -p flag to bytemancheck script allowing packages for rule classes to be specified * [ BYTEMAN-97 ] It should be possible to redefine the default helper per script ** Bug * [ BYTEMAN-101 ] Compiler fails to call toString to convert a Numeric object type to a String * [ BYTEMAN-105 ] AT ENTRY rules are being executed in reverse order of presentation contrary to spec * [ BYTEMAN-106 ] StringLiteral TypeCheck is not throwing an error if it is passed an incompatible expected type * [ BYTEMAN-108 ] Local var frame management in generator adapter is failing to account for some local vars * [ BYTEMAN-109 ] Transformer is allowing injection to be attempted on native methods * [ BYTEMAN-111 ] AT ENTRY rules injected into methods starting with a while loop can end up inside the while * [ BYTEMAN-112 ] Open monitor enter propagation algorithm in CFG is broken * [ BYTEMAN-93 ] Type checker fails to allow boxed primitive types to be employed where a super type is expected * [ BYTEMAN-95 ] NumericLiteral typecheck is not allowing numeric literal to appear where an object is expected * [ BYTEMAN-96 ] Setting the helper in one rule leaves it set for later rules * [ BYTEMAN-98 ] Submit is no longer respecting script ordering ** Task * [ BYTEMAN-100 ] upgrade junit to 4.8.2 Release Notes - Byteman - Version 1.2.2.1 ** Bug * [BYTEMAN-87] - Bytecode dumping fails to work correctly on windows * [BYTEMAN-89] - waitFor fails to timeout properly * [BYTEMAN-90] - Transformation can fail with an NPE if a subclass which belongs to the bootstrap loader gets loaded before its superclass has been loaded * [BYTEMAN-91] - Byteman fails to inject rules because it throws an NPE when checking the super hierarchy beyond java.lang.Object Release Notes - Byteman - Version 1.2.2 ** Bug * [BYTEMAN-80] - Byteman fails to inject rules attached to class X whenever subclass Y extends X gets loaded before X * [BYTEMAN-82] - PlusExpression interprets long arithmetic as if it were char arithmetic and generates a Chaarcter result * [BYTEMAN-83] - Enabling dump can cause rule injection to fail silently * [BYTEMAN-84] - Documentation is still referring to old location of byteman sources ** Feature Request * [BYTEMAN-4] - asm classes embedded in byteman jar should be obfuscated using jarjar to avoid clashes with asm classes deployed by applications * [BYTEMAN-81] - Implement assignment operator * [BYTEMAN-85] - Allow use of new operator in rule expressions Release Notes - Byteman - Version 1.2.1 ** Bug * [BYTEMAN-66] - Transformation of overridden versions of inetrface rules is not always workign correctly * [BYTEMAN-67] - Parser misclassifies CLASS rules after first INTERFACE rule * [BYTEMAN-68] - Type checker does not check if field accesses use correct static/instance field type. * [BYTEMAN-69] - listing scripts that were started with multiple script: arguments is broken * [BYTEMAN-71] - Helper class should use remove() ** Feature Request * [BYTEMAN-72] - Helper class should provide a Timer feature * [BYTEMAN-74] - be able to get the version of the Byteman agent at runtime * [BYTEMAN-75] - be able to list the system and boot jars that were added to the classpath * [BYTEMAN-76] - be able to get and set system property configuration settings * [BYTEMAN-77] - be able to hot-configure byteman via sysprop changes ** Task * [BYTEMAN-70] - Enable access to stacked return value in AT EXIT rules by binding $! to reference it * [BYTEMAN-78] - document new sys prop org.jboss.byteman.sysprops.strict * [BYTEMAN-79] - document new arguments to the submit cmdline client ** Sub-task * [BYTEMAN-73] - document the Timer built-in Helper feature in the user guide Release Notes - Byteman - Version 1.2.0 ** Bug * [BYTEMAN-46] - Multiple method matches reported as an error * [BYTEMAN-55] - -s is really -b * [BYTEMAN-57] - potential NPE * [BYTEMAN-59] - Mention of Transformer class in Main is causing some classloader weirdness * [BYTEMAN-61] - Documentation of rule ordering is incorrect for AFTER rules * [BYTEMAN-63] - OperExpression.writeTo is failing because ConditionalEvalExpression constructor uses the wrong oper type * [BYTEMAN-65] - Type errors or compile errors can occur when a ruel matches multiple methods on the same class ** Feature Request * [BYTEMAN-49] - Add support for rules on interfaces * [BYTEMAN-52] - Provide sample scripts which include useful tasks such as tracing JVM execution * [BYTEMAN-54] - support custom port to start listener * [BYTEMAN-56] - make Submit more of a Java client * [BYTEMAN-60] - Make subnit and bmjava scripts port and host aware * [BYTEMAN-64] - Type checking script needs improving and needs to be aware of overriding and interface rules ** Task * [BYTEMAN-58] - Add support for injecting rules down method implementation hierarchies Release Notes - Byteman - Version 1.1.1 ** Bug * [BYTEMAN-37] - listener option is being interpreted the wrong way round * [BYTEMAN-38] - waiter is not deleted after signalWake(key, true) causing subsequent waitFor to return imediately * [BYTEMAN-39] - Compilation of arithmetic fails to generate correct code * [BYTEMAN-40] - Return operator compilation fails to apply required primitive type conversions to return value * [BYTEMAN-43] - Waiter.waitFor() sometimes appears signalled without actually having been signalled * [BYTEMAN-44] - ThrowExpression.typecheck throws a null pointer exception when the thrown type is invalid * [BYTEMAN-45] - bytemancheck.sh builds wrong class path * [BYTEMAN-47] - Throw actions are not printed correctly * [BYTEMAN-48] - Failure to print exception name after parsing ** Feature Request * [BYTEMAN-41] - Byteman should allow transformation of java.lang classes on request * [BYTEMAN-42] - Add new builtins trace(message) and traceln(message) as aliases for, respectively, trace("out", message) and traceln("out", message) * [BYTEMAN-50] - Allow undesirable recursive triggering of rules to be avoided * [BYTEMAN-51] - Provide script to simplify installation and configuration of byteman agent * [BYTEMAN-53] - The build script should install all build products into an install directory as per the release bundles ** Task * [BYTEMAN-33] - Improve capabilities of agent dynamic upload listener Release Notes - Byteman - Version 1.1.0 ** Bug * [BYTEMAN-25] - Classes loaded before the Transformer is registered are not subject to rule transformation * [BYTEMAN-27] - AT ENTRY trigger is not injected unless class is compiled with line number info included * [BYTEMAN-30] - Arrays parsing, type checking and compilation manifest various errors * [BYTEMAN-31] - String plus expressions fail when either operand is null * [BYTEMAN-32] - Rules should be retrospectively applied to loaded classes irrespective of the redefine: option * [BYTEMAN-34] - Rule compilation fails with NPE when injecting rule code into bootstrap loaded classes * [BYTEMAN-35] - Compilation of throw expressions miscalculates stack heights * [BYTEMAN-36] - Throw actions are compiled incorrectly and end up throwing the wrong type of exception ** Task * [BYTEMAN-26] - Add support for dynamic loading/redefinition of rules once the program is running Release Notes - Byteman - Version 1.0.3 ** Bug * [BYTEMAN-9] - Some types in java.lang cannot be mentioned in rules without the package qualification * [BYTEMAN-10] - Cannot omit package qualifier when specifying class and method for AT/AFTER CALL trigger location * [BYTEMAN-11] - TestScript class used for offline parsing and type checking does not recognise as trigger method * [BYTEMAN-12] - Cannot specify class with or class with package qualifier when specifying field for AT/AFTER READ/WRITE trigger location * [BYTEMAN-13] - Parsed string literals fail == tests because they are not interned * [BYTEMAN-14] - Type checker does not automatically all java.lang types if they are mentioend without package qualification * [BYTEMAN-15] - Transformer associates enclosed try catch blocks with wrong synchronization blocks (invalid open enters count) * [BYTEMAN-16] - Line numbers are being reported wrongly * [BYTEMAN-17] - Type Checker does not correctly resolve an inner class name to a class if the former is used as a helper * [BYTEMAN-20] - addCountDown Helper method should be named createCountDown to be consistent * [BYTEMAN-21] - Default helper trace implementation does not install "out" and "err" as names for System.err and System.out * [BYTEMAN-22] - AT SYNCHRONIZE trigger injection breaks Control Flow Graph lookup of monitorenter lock object ** Feature Request * [BYTEMAN-18] - Helper should provide a deleteRendezvous method * [BYTEMAN-19] - Provide built-ins to enforce join dependencies between threads * [BYTEMAN-23] - Method parameters cannot be referred to by their symbol names * [BYTEMAN-24] - Allow BIND clause to be optional Release Notes - Byteman - Version 1.0.2 ** Bug * [BYTEMAN-1] - rules with AT EXIT trigger locations throw a NullPointerException if the trigger method contains try catch blocks * [BYTEMAN-2] - Byteman fails with when using JDK 6 with an ASM error about the EXPAND_FRAMES option * [BYTEMAN-5] - parser fails to process AT/AFTER CALL trigger locations where the method includes a signature * [BYTEMAN-6] - signature of readCounter, incrementCounter and decrementCounter inlcudes wrong return type * [BYTEMAN-7] - bytemancheck.sh script is severely broken