DashO Java Obfuscator Change Log V6.0 Build 1 – Release Date June 22, 2009

Change Log – Version 6.0.1 – Release Date June 22, 2009

  • DashO uses a new input model. Items to be processed are added as inputs rather than the classpath. Global exclusions no longer need to be configured for items in the classpath. DashO will automatically migrate project files created with earlier versions. It is recommended that you open these projects in the user interface and ensure the correct items were identified as inputs. Examine the previous global excludes and delete those related to supporting classes found on the classpath as the migration process does not remove these entries.

  • If no entry points are defined, the items in the input are examined to determine entry points from Main-Class entries in Jar manifests. If none are found, the input items are processed like library entries.
  • Jar mode projects can be converted to advanced projects by selecting File > Convert.
  • Command lines now include --file-version which prints the version of the project files created by the release of DashO, i.e. 6.0.1. Note that this number may be different from the release version number.


  • User interface elements that are used for setting file values now support drag-and-drop.
  • Class lists now contain all methods and fields present in the input, not just those found via traversal. This makes it possible to add these as entry points that might not be detected by DashO’s engine.
  • The class lists are loaded when a project is opened.
  • Entry point panels now include the list of input classes. These can be used to added items to rule lists.
  • Table columns are sortable when the user interface is run under Java 1.6.
  • The table of user properties can be directly edited by double clicking on the name or value of the property.
  • The removal report’s summary information has been simplified for easier reading. It now includes the count of input and written classes.
  • Tool-tips have been added to all elements in the main user interface.
  • Controls for reflection detection have been added to the jar mode options.
  • The serial number in the About dialog can now be copied.
  • The new project wizard tries to determine which jars to obfuscate in WAR files by skipping “well known” jar files.
  • If the --quiet option is used before --version on the command line only the version number will be generated.
  • Context information has been added to warnings about classes not being found.


  • Improved functionality of the user interface with various look-and-feels including the Java 1.6’s Nimbus look-and-feel.
  • Duplicated information from reflection detection is now correctly removed.
  • Classes identified as entry points by reflection detection are now only loaded once.
  • NullPointerException when command line is used without project file or quick jar entries.
  • Refresh button/menu item enabled in new project.
  • Jar mode class list behavior does not match advanced mode when renaming off.
  • Bad/broken DTD not ignored in wizard analysis of XML files.
  • Jars in WAR files cannot be read by the wizard.
  • DashOClassNotFoundException thrown when determining serializability when ignoring not found classes.
  • NullPointerException when wizard rewrites entry points in an existing project file


  • DashO now requires a 1.5 JVM or higher.
  • Properties prefixed by env. are only sourced from the environment.
  • Properties prefixed by sys. are only sourced from the system properties.
  • DashO will declare an error if there are no input classes available due to unavailable jars/directories or exclusions.
  • In previous version of DashO, using a literal class name as a renaming exclusion caused the class to be conditionally loaded. This behavior is not supported in project files created with version 6, but is supported for those created with earlier versions.
  • When output is not being merged, DashO only keeps a single jar file open for writing at a time. Previously all output jars were open simultaneously.
  • Project files now store the value as a three-part number, i.e. 6.0.1. Older style versions are still recognized, i.e. 6.0001.
  • The navigation tree for both advanced mode and jar mode projects has changed to reflect the behavior of the new input model.
  • Rules created from class lists now use patterns rather than regular expressions. If you want the rule to be a regular expression hold down the shift key when performing the action. This works when adding or removing rules.
  • <inputpath> tag added to the project file to support the new input model. It contains nested <pathelement> tags.
  • Nested <jar> and <dir> in <classpath> have been replaced with <pathelement>.
  • The global option NODEFAULTEXCLUDES is no longer allowed. Its behavior is applied when migrating pre-6 <classpath> elements.
  • The global option DONOTAPPENDRTJAR is no longer allowed. It has been replaced by <classpath appendrtjar="bool">. References in pre-6 files are migrated.