[Skip to content]

Release History Versions 1.5 - 1.8

Provides the details about the changes, fixes and enhancements between the releases 1.5 - 1.8.

1.8_144 (2007-06-18)

New features

#0000376: Exclude Javadoc generation for overridden/implemented methods. Please refer to the Javadoc section in the manual for more information. Suggested by Chris Beams
#0000152: Insert Javadoc @see tags for overridden/implemented methods during Javadoc generation. Please refer to the Javadoc section in the manual for more information. Suggested by Chris Beams
#0000272: The order of Javadoc block tags is now configurable. Please refer to the Javadoc section in the manual for more information. Suggested by Justin Hankins
#0000374: Javadoc comments with a single block tag may now be printed in a compact style. Please see the Javadoc section in the manual for more information. Suggested by Chris Beams
#0000440: White space in Javadoc comments is normalized by default, as browsers does not display it anyway. But if you prefer to use space as a reading aid during development, you can now keep white space during formatting. Please see the Javadoc section in the manual for more information. Suggested by William O'Rourke
#0000408: Automatically insert missing @Override annotations to methods. Please refer to the Java section in the manual for more information. Suggested by Alexander Grosse
#0000404 New option to keep bean methods together during sorting. Please refer to the Sorting section in the manual for more information. Suggested by Justin Coffman
#0000424: Enum constants may now be aligned. Please see the Indentation section in the manual for more information. Suggested by Chuck Gehr
#0000375: New option to insert optional braces only when the block body contains several statements. Please see the Braces section in the manual for more information. Suggested by Chris Beams
#0000432: The brace style for anonymous inner classes can now be configured separately. Please refer to the Braces section in the manual for more information. Suggested by Deepak Jain
#0000349: The IDEA Plug-in now allows formatting before SCM check-in (reqires IDEA 5.1 or later). Please refer to the Global section in the manual for more information. Suggested by David Sims
#0000380: Identifying comments may now be inserted for switch statements, too. Please refer to the Braces section in the manual for more information. Suggested by Andrew Lazarus
#0000411: The Eclipse Plug-in now allows the per-project configuration of the formatting options. The options are stored within your Eclipse project tree. Suggested by Alexander Grosse
#0000439: When Prefer wrap after assignments is enabled and Sun brace style chosen, the wrapping option took higher precedence. This behavior is now configurable. Please refer to the Braces section in the manual for more information. Suggested by William O'Rourke
#0000431: When using strict endline indentation, line breaks are usually not kept before the first call argument because this would rule against the general indentation behavior. But you may now configure whether you prefer to keep existing line breaks nonetheless. Please refer to the Wrapping section in the manual for more information. Suggested by Deepak Jain
#0000443: You can now define custom annotations to be inserted to top level declarations during formatting. Please refer to the Annotations section in the manual for more information. Suggested by Dr. Mark Tu
#0000365: The Maven Plug-in now supports the shorthand notation mvn jalopy:format. Suggested by Chris Beams
#0000438: The behavior for keeping line breaks around string concatenations is now adjustable. Please refer to the wrapping section in the manual for more information. Suggested by William O'Rourke
#0000378: The code inspector allows you disable processing for code sections enclosed with the pragma comments //J- //J. Please refer to the code inspector section in the manual for more information. Suggested by Chris Beams
#0000357: jEdit 4.3 compatible Plug-in. Please refer to the jEdit Plug-in section in the manual for more information. Suggested by Eric Milles
#0000429: Exported code conventions now use the platform default line terminator. Suggested by Jan Zuchhold
#0000364: The installer now allows installation into the respective settings directories for the IDEA, jEdit and NetBeans Plug-ins. Suggested by Dennis Haupt
#0000423: The installer now displays directories in the directory chooser sorted. Suggested by Jan Zuchhold
#0000445: The installer now provides a JBuilder 2007 installation option. Suggested by Wynn Joness

Changes

#0000446: The configuration dialog has been overhauled to better reflect the separation between profiles and code conventions. The GUI initially only provides a view of the available profiles and opens a second dialog to configure the options. Additionally, most IDE Plug-ins no longer provide a distinct menu item to invoke the dialog, but incorporate the options into the IDE settings dialog
#0000447: The default source compliance level for new code conventions has been changed to Java 5.0

Bugfixes

#0000444 Ternary operators were not indented upon wrapping. A new option has been added to configure this behavior: "Indent ternary operands". Reported by William O'Rourke
#0000388 "Correcting HTML" sometimes lead to weak formatting and took two runs to produce a stable result
#0000442 Comment after array index expressions were lost. Reported by Dr. Mark Tu
#0000441 With "Align method call chains enabled, an IllegalArgumentException could occur when printing array index expressions. Reported by Chris Beams
spec.getAudioSpecs()[0].getFormat().setBitrate(Bitrate.320);
#0000437 The Java parser choked on package annotations. Reported by Jan Zuchhold
#0000436 java.lang.StringIndexOutOfBoundsException with parenthesized call argument. Reported by Deepak Jain
#0000435 Line breaks were not kept before creator calls
#0000434 When custom brace style was enabled, a java.lang.IllegalArgumentException could occur when printing annotation members. Reported by Deepak Jain
#0000433 java.lang.IllegalArgumentException with enum constants. Reported by Deepak Jain
#0000428 Inconsistent indentation with endline indentation if a non-Javadoc comment appeared after a field declaration. Reported by Elmar Sonnenschein
#0000427 Breakpoints could move as a consequence of formatting in Eclipse. Reported by Harald Lübeck and Cameron Clarke
#0000422 java.util.NoSuchElementException when printing annotation. Reported by Gregory Gerard
#0000421 "failOnError" attribute was ignored. Reported by Jan Zuchhold
#0000420 Manually downloaded help file not picked up by installer. Reported by Jan Zuchhold
#0000417 Array wrapping inconsistent
#0000418 Brace style not obeyed within annotations
#0000419 Array aligning not working for annotations
#0000416 Wrongly aligned assignment operators with generics. Reported by Elmar Sonnenschein
#0000415 Wrong indentation for creator call after return statements when "Increase indentation on hotspots" is disabled. Reported by John V. Sichi
#0000414 Braces wrongly printed with "Treat statements different when wrapped". Reported by John V. Sichi
#0000413 Javadoc comments wrongly printed in compact style. Reported by Chris Beams
#0000410 Line length limit exceeded if creator contains two generic parameters. Reported by Elmar Sonnenschein
#0000409 Method arguments wrongly wrapped in rare cases when "Wrap all if first - After parameters/expressions" was enabled. Reported by Elmar Sonnenschein
#0000407 Description inserted for @return tag even though {@inheritDoc} present. Reported by Leanne Northrop
#0000405 Type resolving does not work correctly with the IDEA Plug-in when a file does not declare import declarations. Reported by Justin Coffman
#0000373 Sorting preferences don't work correctly on Vista with Java 6.0. Reported by Tom Zagotta
#0000403 Formatting forms confuses NetBeans design view. Reported by Chris Herron
#0000401 Line break not kept before operator
#0000398 NPE when line break forced before right paren. Reported by Gerhard Radatz
#0000399 Problem with generic array type. Reported by Elmar Sonnenschein
#0000400 Unwanted blank lines inserted before comment in multi array
#0000397 "Compact comment" does not work for constructors
#0000396 Wrong line break printed with keep line breaks and line break within right hand side of an expression
#0000395 Weak formatting after assignment when splitting multi-variable and keep line breaks
#0000394 @ character within description could cause problems
#0000393 Bogus HTML paragraph inserted after block tags
#0000392 HTML block tags right after Javadoc block tag yield ugly line break
#0000391 Preformatted Javadocs sections were wrongly aligned when leading star characters where not lined up with the start delimiter
#0000390 Endline comments not aligned after last right curly brace
#0000389 Weak formatting when correcting block tags
#0000385 Reflow single-line comments does not normalize white space
#0000383 Missing line break after reflowed single-line comment
#0000386 Weak Javadoc formatting with compact description
#0000384 Insert description for @return tag misses HTML end tag
#0000382 Javadoc HTML correction does not fully correct invalid input
#0000381 NPE with class declaration in anon inner class. Reported by Jens Schröder
#0000379 StringIndexOutOfBoundsException with deeply nested code. Reported by Brian Jeltema
#0000360 The installer did not work on Mac OS X when using a 5.0 VM
#0000370 Wrong indentation of aligned ternary operartor ?:. Reported by Elmar Sonnenschein
#0000371 Weak formatting of marker annotations
#0000367 Exception aligning splitted multi-variables. Reported by D'Arcy Smith
#0000366 Format on save does only format one file within IDEA. Reported by Gerhard Radatz
#0000448 Format on save causes NPE when creating GUI form in IDEA. Reported by Gerhard Radatz
#0000362 Array style after identifiers causes the parser to choke. Reported by Gregory Gerard
#0000363 Not possible to override Maven source directories. Reported by Olaf Kossak
#0000361 Synchronize code conventions from web server does not work. Reported by Chris Beams
#0000359 Wrong indentation of dotted expression within statement list with "Mixed endline indentation". Reported by Deepak Jain
#0000358 Dotted expression not wrapped. Reported by Deepak Jain
#0000356 Wrong indentation in enums with "Compact braces". Reported by Gerhard Radatz
#0000355 Optimize imports fails during format-on-save. Reported by Gerhard Radatz
#0000353 Annotation on-demand import removed when optimizing imports. Reported by Alexander Grosse and Dr. Mark Tu
#0000354 No curly braces inserted for case statements when "Remove block braces" was enabled
#0000350 Insert serial version UID did work for anonymous inner classes
#0000351 Line length exceeded for assignment expressions that start with an unary operator
public final int test = -165238956541232;
#0000352 Missing indentation of ternary expressions with endline indentation and "Wrap always ternary expressions" enabled. Reported by Gregory Gerard
#0000348 Annotation before enum constants chokes parser. Reported by Anders Wallgren
#0000347 Serial version UID inserted into enum declaration. Reported by Alexander Grosse
#0000346 NPE when formatting. Reported by Alexander Grosse
#0000345 Whole description duplicated with "Use text from @return" enabled, when only the first sentence would suffice. Reported by Howard Lovatt

1.7_182 (2006-10-09)

New features

#0000335: Maven 2.0 support. Please refer to the Maven Plug-in section in the manual for more information. Suggested by Olaf Kossak, Timea Hegyi, Chris Beams
#0000344: Eclipse 3.2 is now fully supported
#0000084: The IDE Plug-ins now support selective formatting of code portions. Suggested by Deepak Aggarwal and Jae Gangemi
#0000324: You can now create nested profiles to easily manage several code conventions that largely share the same settings. Suggested by Elmar Sonnenschein and Howard Lovatt
#0000252: When using standard indentation, the indentation level is usually always increased after certain code elements, even when there is no pressing need to do so in order to visualize the code structure. To avoid this behavior you can now disable this policy and achieve a more compact coding style. Please refer to the Indentation section in the manual for more information. Suggested by John Sichi
#0000326: C-style brace wrapping may now be enforced for statements when their expressions could not be printed in just one line. Please refer to the Wrapping section in the manual for more information. Suggested by John Sichi
#0000247: New wrapping option to force a line break after each array element when not all elements fit into the current line. Please refer to the Wrapping section in the manual for more information. Suggested by Dan MacMillan
#0000306: New wrapping options to wrap before extends, implements and throws keywords when the whole clause would not fit into the current line. Please refer to the Wrapping section in the manual for more information. Suggested by Martin Heitz
#0000234: When using endline indentation, you can now enforce standard indentation for array initializers. Please refer to the Indentation section in the manual for more information. Suggested by Peter De Velder
#0000251: The option to control the number of blank lines after left curly braces has been split to be able to control blank lines independently depending on the brace style. Please refer to the Blank Lines section in the manual for more information. Suggested by Dan MacMillan
#0000265: New option to control the number of blank lines before/after separator comments. Please refer to the Blank Lines section in the manual for more information. Suggested by Daniel Haas
#0000224: Separator comments for methods can now be added within inner classes as well. Please refer to the Sorting section in the manual for more information. Suggested by Daniel Haas
#0000220: The separator comment for methods can now be configured independently. Please refer to the Sorting section in the manual for more information. Suggested by Daniel Haas
#0000232: It is now possible to perform search &replace within comments and string literals. Please refer to the Search & Replace section in the manual for more information. Suggested by Dr. Mark Tu
#0000235: Compact braces is now independently configurable for array initializers. Please refer to the Braces section in the manual for more information. Suggested by Dan MacMillan
#0000236: Cuddled empty braces may now obey the current brace style. Please refer to the Braces section in the manual for more information. Suggested by Joachim Hoffmann
#0000259: Javadoc comments for enum declarations may now be printed in just one line. Please refer to the Javadoc section in the manual for more information. Reported by Elmar Sonnenschein
#0000216: The Eclipse (non-javadoc) flag is now recognized and Javadoc comment generation avoided when present. Suggested by Dan Rosewater
#0000333: Jalopy now allows one to manage multiple headers/footers. Suggested by Deepak Aggarwal
#0000334: You can now use variable expressions as header/footer identify keys. Suggested by Deepak Aggarwal
#0000223: Enabling a header comment now causes an identify key to be enforced by the GUI to avoid a common misconfiguration that can lead to duplicated headers. Suggested by Manuel Schwarze
#0000273: The console Plug-in provides a new option --filespec to specify the filespecs for a formatting run. Please refer to the Console Plug-in section in the manual for more information. Suggested by Marc Oste
#0000317: The preferences dialog now restores its size and position

Changes

#0000244: Compacting braces did not work for array initializers when a fixed number was specified for array element wrapping. Now, the "Compact array initializers" option takes higher precedence.
#0000277: Exporting code convention did not always export all settings which could made it difficult to track what changes had been made at what point. Suggested by Marc Oste
Javadoc, Header and Footer sections were moved below the Comments section

Bug fixes

#0000242: With "Space after left paren"/ "Space before right paren" enabled, some lines could be wrapped too early. Reported by Dan MacMillan
#0000304: The maximal line length could be exceeded for chained method calls. Reported by Deepak Aggarwal
#0000302: The maximal line length could be exceeded when multi-line comments appeared after assignment operators
#0000319: The maximal line length could be exceeded for extends/implements clauses when using endline indentation
#0000320: The maximal line length could be exceeded for complex operator expressions
#0000303: Comment lost after assignment operators. Reported by Dr. Mark Tu
#0000311: Comment lost before commas in annotations. Reported by Dr. Mark Tu
#0000266: Comments removed with right curly brace when "Remove braces" options were enabled. Reported by Elmar Sonnenschein
#0000307: "Compact braces" did not work for certain statements
#0000281: When "Custom brace styling" was enabled, anonnymous inner classes could become printed with a wrong brace style
#0000267: Line break printed after annotation of declaration parameter. Reported by Roger Baeten
#0000263: With Sun brace style and "Brace treat different" enabled, declaration signatures could be wrapped too early
#0000264: Abstract methods containing a throws clause could be wrapped too early
#0000250, #0000260: "Keep line breaks around operators" did not work always
#0000257: "Keep line breaks for array elements" did not work always for arrays as nested call arguments. Reported by Dan MacMillan
#0000297: With "Wrap when exceed after left parenthesis" enabled, the desired line break after the left parenthesis was not always printed. Reported by Dan MacMillan
#0000298: With "Wrap when exceed after assign" enabled, the desired line break the assignment operator was not printed for anonymous inner classes. Reported by Dan MacMillan
#0000245: With "Keep line breaks for array elements" enabled, array elements could become wrongly indented. Reported by Dan MacMillan
#0000270: Bad indentation of parenthesized expression when "Wrap on-demand grouping parentheses" and "Continuation indentation blockss" were enabled
#0000337: "Continuation indentation" not always correctly printed in for statements
#0000340: Indentation wrong when comment before element forced a line wrap
#0000336: "Continuation indentation" should not be applied for do-while statements
#0000325: Wrong indentation of code within anonymous inner class. Reported by Elmar Sonnenschein
#0000282: Wrong indentation of nested anonymous inner class when comment appeared before. Reported by Dan MacMillan
#0000209: Code within pragma comments could be constantly shifted to right on consecutive formatting runs. Reported by John Mazzitelli
#0000338: "Use only leading tabs" sometimes using tabs instead of blank spaces
#0000313: Header could be reformatted when "Use header" was disabled, but header identify keys were defined. Reported by Deepak Aggarwal
#0000210: Code sections enclosed with pragma comments were sometimes not indented at all even though "Indent first column comments" was enabled, Reported by Robert Handschmann
#0000315: Enum declarations without any variables could not be printed. Reported by Jim Wunderlich
#0000316: Enum declarations without any variables could not be printed. Reported by Elmar Sonnenschein
#0000328: "Align assignments" did not work for shorthand assignment operators. Reported by Elmar Sonnenschein
#0000321: "Align assignments" did not correctly work when chunk detection by line wrap was disabled
#0000318: "Align variables identifiers" did not always correctly align multi-variables
#0000330: "Align anonymous inner class" did not work when the inner class was not part of an assignment expression
#0000331: Weak formatting of multi-variables when "Align variables identifiers" is enabled. It takes to runs until the format is stable. Reported by Elmar Sonnenschein
#0000275: java.lang.NullPointerException when printing annotation that contained an array and array wrapping was disabled.. Reported by Gregory Gerard
#0000294: java.lang.IllegalArgumentException when printing unary operators. Reported by Marc Oste
#0000211: java.lang.IllegalArgumentException when "Indent first column comments" was enabled and a Javadoc comment appeared before the package keyword. Reported by Chris Lowe
#0000230: Eclipse Plug-in: java.lang.IllegalStateException when resolving types that could be found in different .jar files on the classpath. Reported by Conny Kreyßel
#0000213: java.lang.IllegalArgumentException when sorting enum declarations and "Insert separator comment" was enabled. Reported by Anders Wallgren
#0000238: Comment lost before right parenthesis in annotation. Reported by Dr. Mark Tu
#0000322: With "Same direction parentheses" enabled, there was still a blank space printed between certain parentheses
#0000262: Wrong indentation before wrapped expression part in for statements when line break caused by endline comment and "Space after semi" was enabled. Reported by Andreas Walter
#0000228: java.lang.IndexOutOfBoundsException when sorting enum constants. Reported by Anders Wallgren
#0000280: "Wrap when exceed after assign" dit not take effect for anonymous inner class assignments
#0000229: With "Keep blank lines up to" > 0 and "Insert separator comment" enabled, too much blank lines could be kept before the first separator. Reported by Matthias Beil
#0000258: Wrong blank line after left curly brace, when "Keep blank lines up to" > 0 and "Blank lines after left curly brace" == 0 and with "Blank lines before comments" == 1
#0000254: Unwanted line break printed after comment in expression list. Reported by Dan MacMillan
#0000261: Unwanted blank line printed after endline comment in expression list when "Wrap when exceed right parentheses" was enabled
#0000299: With "Format multi-line comments" enabled, Javadoc comments that appeared at illegal locations did were not formatted
#0000248: "Correct tag section" lead to wronly inserted "Document me!" tags for parameters that had a description in the next line. Reported by Iulian Ursache
#0000249: Javadoc formatting unstable when "Indent tag description" disabled. Reported by Dominik Foucauld
#0000323: Wrong line break printed before in-line tags that lead to the introduction of extra blank space. with Javadoc formatting enabled. Reported by Elmar Sonnenschein
#0000312: Javadoc formatting wrongly removed spaces around HTML tags. Reported by Howard Lovatt
#0000240: Max. line length exceeded when formatting Javadoc comment. Reported by Elmar Sonnenschein
#0000278: Missing space between tag parameter and HTML tag. Reported by Iulian Ursache
#0000241: "Javadoc correction only when no @see" was only honored if there was only one @see tag, several tags still lead to correction. Reported by Elmar
#0000237: ':' not recognized as sentence punctuation when Inserting @throws tags was enabled. Reported by Manuel Schwarze
#0000284: When "Correct sentence punctuation" was enabled, Jalopy wrongly inserted a dot character when the template description was empty. Reported by D'Arcy Smith
#0000227: With "Use text from @return" enabled, the first sentence was not always correctly identified. Reported by Jason Winshell
#0000219: Possible missing blank space between Javadoc block tag name and description when "Indent tag description" disabled. Reported by Manuel Schwarze
#0000217: java.lang.IllegalArgumentException when "Global brace style" disabled, "Endline indentation" enabled and "Line break before left brace" enabled for arrays
#0000215: With "Keep blank lines up to" > 0 one blank line got lost between two enum constants
#0000239: When the Footers feature was enabled, footers were duplicated after annotation declarations
#0000274: Enabling "Sort imports" caused removal of unused imports as well. Reported by Marc Oste
#0000279: Inserting serial version UID not possible for types that reside in the default package
#0000221: Eclipse Plug-in: Jalopy markers were only removed upon a restart of the IDE. Reported by Manuel Schwarze
#0000218: Separator comments that consisted of several single line comments were trashed when the comment was inserted before an existing comment
#0000283: The regex dialog allowed one to submit invalid patterns

1.6_152 (2005-10-21)

New features
  • #0000178: The white space configurability has been brought to the Eclipse level. Nearly 100 new options have been added (some were split like spaces around or within). Please refer to the White space section in the manual for more information. Suggested by Alexandru Popescu
  • #0000147: The brace style can now be configured for each of the different brace constructs individually. Please refer to the Braces section in the manual for more information. Suggested by Andrzej Taramina
  • #0000172: The preferences dialog now provides detailed online help. You can get context sensitive help for every option by pressing Shift+F1 and pointing to an option with the mouse. The help must be downloaded and installed separately, either during wizard installation or manually at any time. Please refer to the Configuration section in the manual for more information. Suggested by Joe Cohen et. al.
  • #0000207: It is now possible to import Checkstyle configurations. The resulting code convention will match the given configuration as close as possible. See the Profiles section in the manual for more information. Suggested by Scott Wilson-Billing, Boris Ophüls, Ryszard Styczynski
  • #0000166: It is now possible to specify local overrides for environment variables. Please refer to the Environment section in the manual for more information. Suggested by Stefan Deusch and David Hill
  • #0000106: It is now possible to specify a location for code convention synchronization via the system property "triemax.jalopy.convention". When this property is set to either a local file path or a web URL (either starting with "http://" or "https://"), Jalopy imports the specified code convention during startup. Requested by Marc Lennox
  • #0000115: The import optimization feature is now available from within Eclipse as well. Suggested by Daryl Robbins
  • #0000194: The import optimization feature is now available from within IDEA as well. Suggested by Bastian Gabel
  • #0000199: The "Keep line breaks for operators" option has been split and two new options added to be able to control the keep line breaks behavior for declaration parameters and call arguments individually. Please refer to the Wrapping section in the manual for more information. Suggested by Dennis Haupt
  • #0000092: Javadoc generation may now be disabled within classes that extend a certain class or implement a certain interface. Please refer to the Javadoc section in the manual for more information. Suggested by Michael Milvich and Colt Frederickson
  • #0000114: Punctuation for the first sentence may now be automatically enforced. Please refer to the Javadoc section in the manual for more information. Suggested by Ray Power
  • #0000151: Members of enum declarations are now sortable as well. Please refer to the Sorting section in the manual for more information. Suggested by Harald Lübeck
  • #0000161: The line length setting for wrapping single-line and multi-line comments is now separately controllable as well. Please refer to the Comments section in the manual for more information. Suggested by Chris Beams, Joe Cohen and Eric Milles
  • #0000174: Wrapping/formatting of single- and multi-line comments that begin at the first column may now be disabled. Please refer to the Comments section in the manual for more information. Suggested by Gerhard Radatz
  • #0000179: Wrapping/formatting of multi-line comments may now be disabled individually using the special /*- start delimiter. Please refer to the Comments section in the manual for more information. Suggested by Eric Milles
  • #0000195: Wrapping/aligning of chained method calls is now available for nested calls as well. Please refer to the Wrapping and Indentation sections in the manual for more information. Suggested by Peter De Velder
  • #0000188: Startup overhead of the type repository used by the Ant, Console and Maven Plug-ins has been greatly reduced. But the type repository is still geared towards batch processing. An alternative implementation for the "Expand imports" feature has therefore been added that does not depend on the type repository. This is the preferred implementation when formatting a single file, or only a small amount of files. You can enable the alternative implementation by disabling the type repository. The Plug-ins contain new options/attributes/properties: "repository" (Ant), "--norepository" (Console) and "maven.jalopy.repository" (Maven) and will also respect the value of the "triemax.jalopy.repository" system property. Suggested by Joe Cohen
  • #0000180: Indentation increase after return statements is now configurable. Please refer to the Indentation section in the manual for more information. Suggested by Dr. Mark Tu
  • #0000197: For Javadoc comment formatting, you can now control whether successive lines should indent/align after the tag name or start at the same offset as the tag name when line wrapping. Please refer to the Javadoc section in the manual for more information. Suggested by Cameron Clarke
  • #0000146: Parentheses might now be automatically added around return and throw expressions. Please refer to the Java section in the manual for more information. Suggested by Andrzej Taramina
  • #0000177: A JDeveloper Plug-in that works with the 10.1.3 early access release (10.1.3.03.3412) has been added. Suggested by Justin Hankins and Raju Satyan
Changes
  • The settings format changed slightly due to the addition of several new features. Settings written with prior versions will be automatically transformed to the new format upon program startup. Exported code conventions will cause a transformation during code convention import. It is therefore recommended that you update all your exported code conventions to make sure they use the most recent format to avoid the transformation overhead in the future. Just import and export them with the current version to have them updated
  • With "Keep on same line single if" enabled, several conditionals could be printed on one line.
    if (a!=0) if (b!=0) c=a+b;
    

    Now, at most one conditional will appear in one line

    if (a!=0)
        if (b!=0) c=a+b;
    
  • #0000164: With "Wrap on-demand after left parenthesis" and Standard indentation enabled, certain expressions (or statements) might - depending on the chosen indentation size - not look ideal after wrapping. The "Avoid bare parentheses" therefore now works for standard indentation as well.

    When enabled,

    if(
        (initiator!=null&&cb.initiator==null)||
            (initiator==null&&cb.initiator!=null)) {
        ...
    }
    

    would become

    if((initiator!=null&&cb.initiator==null)||
            (initiator==null&&cb.initiator!=null)) {
        ...
    }
    
  • Code convention synchronization was formerly only performed on program startup. Now synchronization happens on every formatting run even for the IDE Plug-ins
  • The Swing preferences dialog now uses the platform default Look&Feel when invoked from within Eclipse. If you were previously using a custom Look&Feel, please contact support for instructions how to enable custom Look&Feels for the Eclipse Plug-in
Bug fixes
  • #0000202: Fixed a few rare cases of unstable Javadoc formatting. The fix may affect formatting output!
  • #0000181: With Javadoc formatting enabled, leading stars in preformatted sections were always removed. This is now configurable. Please refer to the Javadoc section in the manual for more information. Reported by John Mazzitelli and Todd Vierling
  • #0000169: Parenthesized assignment expresssions could exceed the maximal line length. The fix may affect formatting output!
  • #0000120: Chained method calls with type arguments lead to uncompilable code. Reported by Ezequiel dos Santos Garcia
  • #0000118: With "Check HTML" enabled, paragraph tags could be inserted after Javadoc inline tags. Reported by Elmar Sonnenschein
    /**
     * Sets the data model of the tree. See
     * {@link foo.ewt.component.Tree#setDataModel(DataModel) Tree.setDataModel()}
     * for a detailed description.
     */
    

    was wrongly printed as

    /**
     * Sets the data model of the tree. See
     * {@link foo.ewt.component.Tree#setDataModel(DataModel) Tree.setDataModel()}
     *
     * <p>for a detailed description.</p>
     */
    
  • #0000196: With the Checksum history feature enabled, formating could fail when many files were processed. Reported by Mikael Petterson
  • #0000182: With "Wrap on-demand call arguments" enabled, call arguments could exceed the maximal line length. Reported by Gerhard Radatz. The fix may affect formatting output!
  • #0000173: With "Wrap before operators" and "Wrap all expressions if first wrapped" enabled, an unwanted line break could be printed before operators. Reported by Dr. Mark Tu. The fix may affect formatting output!
  • #0000121: With Endline indentation and "Wrap on-demand grouping parentheses" enabled, indentation was wrongly printed after constructor calls. Reported by Ezequiel dos Santos Garcia. The fix may affect formatting output!
  • #0000122: Enabling "Wrap on-demand type parameters" could lead to NPE. Reported by Ezequiel dos Santos Garcia
  • #0000099: With Declaration Sorting enabled on the element level, the precedence of the private access modifier was not correctly calculated. Only affected configurations where the private modifier was configured to take precedence before the other access modifiers. The fix may affect formatting output!
  • #0000112: For extends, implements or throws clauses with generic types, the maximal line length could be exceeded. Reported by Elmar Sonnenschein. The fix may affect formatting output!
  • #0000201: Using a different encoding than the default system one was not possible due to the fact that the encoding was only used for reading files. The output was always written using the default system encoding! New Attributes/Options/Properties have been added to the Ant, Console and Maven Plug-ins to control the input/output encoding of files invidually. "inputEncoding"/"outputEncoding" (Ant), "--input"/"--output" (Console) and "maven.jalopy.inputEncoding"/"maven.jalopy.outputEncoding" (Maven). The IDE Plug-ins use the global encoding setting for both input and output. Reported by Maxim Romashchenko
  • #0000165: With "Use header" enabled, a file only consisting of comments could be cleared. Reported by Dr. Mark Tu
  • #0000163: With Endline indentation and "White space after left parenthesis" (the former "White space within") enabled, consecutive lines were missing one blank space. Reported by Peter De Velder. The fix may affect formatting output!
  • #0000156: With "Space after left parenthesis" (the former "Spaces within") and "Compact parentheses" enabled, a blank space was missing for catch statements and certain parenthesized expressions. Reported by Eric Milles. The fix may affect formatting output!

    E.g.

    try {
        ...
    catch ( NumberFormatException ex ) {
    }
    

    was printed as

    try {
        ...
    catch (NumberFormatException ex ) {
    }
    
  • #0000137: With "Wrap on-demand before right parenthesis" and any of the "Space before right parenthesis" (formerly "Space within parentheses") options enabled, a blank space was printed before the right parenthesis even when it was the first element in a line. The fix may affect formatting output!
  • #0000119: The maximal line length could be exceeded after type casts. The fix may affect formatting output!
  • #0000097: With "Add template tags" enabled, an java.lang.IllegalArgumentException occurred for Javadoc comments before static or instance initializers
  • #0000134: Javadoc endline comments were transformed to multi-line comments. Now there printed as-is
  • #0000104: With "Keep on same line" and "Wrap on-demand left parenthesis" enabled, an NPE occurred for nested conditionals. Reported by Juan Vallecillo
    if (a!=0)
      if (b!=0)
        c=a+b;
    
  • #0000138: With "Align variable assignments" and "Wrap on-demand type parameter" enabled, alignments may be printed wrong for parameterized variables. Reported by Elmar Sonnenschein. The fix may affect formatting output!
  • #0000129: With "Wrap on-demand after assignments" enabled, no line break happened when the rhs was enclosed with parentheses. The fix may affect formatting output!
  • #0000124: With "Wrap on-demand after assignments" enabled, no line break was printed after assignments for creator calls that exceeded the max. line length. The fix may affect formatting output!
  • #0000131: With "Wrap on-demand after assignments" disabled, a line break was still printed after the assignment for certain parenthesized expressions. The fix may affect formatting output!
  • #0000140: With "Wrap on-demand after assignments" and "Wrap on-demand after left parenthesis" enabled, "Align array initializer" did not take affect and the curly braces or array initializers were not correctly aligned. Reported by Piotr Zielinski. The fix may affect formatting output!
  • #00000133: With "Align assignments" and/or "Align identifiers" enabled, variable declarations with annotations were wrongly indented. Reported by Daniel Schömer. The fix might affect formatting output!
  • #00000141: Wrong number of blank lines kept before declarations with annotations. Reported by Daniel Schömer. The fix might affect formatting output!
  • #0000142: When "Wrap after n array elements" enabled, the left curly brace of array initializers was always printed with Sun brace style. Reported by Piotr Zielinski.The fix max affect formatting output!
  • #0000143: With "Keep line breaks for arrays" enabled, no line breaks were kept when the array contained only one element. Reported by Piotr Zielinski.The fix max affect formatting output!
  • #0000127: With "Wrap all when first expression wrapped " enabled, a wrong blank line was inserted after an endline comment of an operand in expression lists
  • #0000130: For certain parenthezised expressions "Wrap when exceed grouping parentheses" did not take affect. Reported by Dr. Mark Tu. The fix might affect formatting output!
  • #0000139: With several marker annotations, the line length could get exceeded. The fix may affect formatting output!
  • #0000132: With "Wrap all when first expression wrapped " and "Wrap when exceed grouping parentheses" enabled, operators after a parenthesized expression were missing a line break before them. Reported by Dr. Mark Tu. The fix may affect formatting output!
  • #0000148: With the compact braces options enabled, a brace block is compacted even when an expression contains a comment. Reported by Gerhard Radatz. The fix may affect formatting output!
  • #0000190: The "Blank lines after package" option was ignored when no import statements appeared between package declaration and class/interface/enum declaration and a comment appeared before the declaration. Reported by Anders Wallgren. The fix may affect formatting output!
  • #0000159: With Sun brace style, Jalopy still printed a line break after multi-line comments that appeared after left curly braces. The fix may affect formatting output!
    if (condition) {
        ...
    } else /* normal response */ {
    }
    

    was printed as

    if (condition) {
        ...
    } else /* normal response */
    {
    }
    
  • #0000185: Javadoc formatting did not work for annotation type declarations. Reported by Anders Wallgren. The fix might affect formatting output!
  • #0000189: Javadoc formatting did not work for package declarations. Reported by Anders Wallgren. The fix might affect formatting output!
  • #0000186: Javadoc standalone tags that were wrongly used as inline tags lead to a loss of the contents of the inline tag. Such tags will now be printed as-is and generate a warning that the tag is invalid. Reported by Anders Wallgren.
    /**
     * This is used by {@see com.foo.nimbus.xpath.NimbusNavigator NimbusNavigator}
     * to traverse our object model using XPath
     */
    

    was formatted as

    /**
     * This is used by @see to traverse our object model using XPath
     */
    
  • #0000160: With "Add @throws tags enabled, tags were inserted to methods/constructors for exceptions thrown within inner classes declared within a method/constructor. Reported by Harald Lübeck
    public void test() {
        new Excecutor() {
            public void execute throws ExecutionException {
                throw ExecutionException();
            }
        };
    }
    

    was wrongly printed as

    /**
     * @throws  ExecutionException  DOCME!
     */
    public void test() {
        new Excecutor() {
            public void execute throws ExecutionException {
                throw ExecutionException();
            }
        };
    }
    
  • #0000125: With Javadoc tag checking enabled, a java.lang.IllegalArgumentException occured when a static initializer contained a Javadoc comment. Reported by Harald Lübeck
  • #0000126: With "Use description from @return" enabled, a java.lang.StringIndexOutOfBoundsException occured when the @return description started with an HTML tag. Reported by Harald Lübeck
  • #0000108: With Javadoc formatting enabled, a blank space was always printed after HTML end tags
    <code>doNotPrompt</code>=true;
    

    was printed as

    <code>doNotPrompt</code> =true;
    
  • #0000203: With Javadoc formatting enabled, star characters (*) at the beginning of a line were removed
  • #0000103: With Javadoc formatting enabled, HTML comments inside preformatted sections had unwanted blank lines inserted. Reported by Sascha Herrmann
  • #0000107: With Javadoc tag checking enabled, @param tags for method type parameters were removed during formating.
    /**
     * blah.
     *
     * @param  <T>  blah
     * @param  <V>  blah
     * @param  string     blah
     *
     * @return  blah
     */
    <T, V extends T> V convert(String string);
    

    became

    /**
     * blah.
     *
     * @param  string  blah
     *
     * @return  blah
     */
    <T, V extends T> V convert(String string);
    

    A new option "Add method type parameter tags" has been added that enables you to control whether documenting type parameters should be supported or not. Please note that enabling this option will cause missing @param tags for method type parameters inserted! Reported by Daniel Schömer

  • #0000109: With Javadoc formatting enabled, trailing white space in preformatted sections was not always removed
  • #0000100: The Javadoc start delimiter was wrongly calculated when the description only contained a . (dot): with every run Jalopy inserted another . after the delimiter. Reported by Sascha Herrmann
  • #0000170: Interface members had no Javadoc generated when the generation threshold was set to "public", but the member declaration did not contain the public modifier.
  • #0000128: The Javadoc end delimiter was wrongly calculated when the template description ended with # or _literal>. Reported by Ruedi Keller
  • #0000093: Javadoc templates with empty descriptions caused unwanted blank lines when Javadoc formatting was enabled. Reported by Elmar Sonnenschein. The fix may affect formatting output!
  • #0000187: With Javadoc formatting disabled and "Correct descripton section" enabled, no line break was printed after the start delimiter for comments that consisted of a single @see tag. Reported by Joe Cohen. The fix may affect formatting output!
  • #0000191: Javadoc templates were wrongly analyzed when no description was specified which could lead to a missing space character after the leading star when Javadoc formatting was enabled. Reported by Anders Wallgren. The fix may affect formatting output!
  • #0000150: With Javadoc formatting disabled and Javadoc tag checking enabled, white space between description and end delimiter was removed for comments that were printed in one line. Reported by Joe Cohen
    /** Zero length array of PropertyDescriptor objects */
    

    was wrongly formatted as

    /** Zero length array of PropertyDescriptor objects*/
    
  • #0000155: The global Javadoc tag checking option was not obeyed in all cases when disabled. Reported by Eric Milles
  • #0000154: The Javadoc formatter sometimes reported wrong line information for warnings
  • #0000110: With "Wrap before operators" enabled, a trailing blank space was printed after infix operators when a comment appeared before the rhs. The fix may affect formatting output!
  • #0000135: Formatting test packages in NetBeans failed with a java.lang.IllegalArgumentException. Reported by Andrej Prcek
  • #0000136: An IllegalArgumentException exception occurred upon trailing comments after synchronized statements. Reported by Mikael Petterson
  • #0000098: With "Insert logging conditional" enabled, the logging conditional was generated multiple times with successive runs when the conditional used a chained method call
  • #0000111: Single-line header comments were duplicated when no package statement occurred after the header but an import declaration
  • #0000094: The $param.type$ variable expression was wrongly interpolated for qualified type names: e.g. java.lang.String was interpolated as .
  • #0000153: Fixed NPE that could occur when "Insert separator comments for inner classes" was enabled. Reported by Jason Winshell
  • #0000193: jalopy.sh did not work on the Bourne Shell (sh). Reported by Mikael Petterson
  • #0000167: Eclipse Plug-in: Adding profiles was not possible with the SWT preferences dialog. Reported by Alain Lassine
  • #0000183: Eclipse Plug-in: With "Format on save" enabled, an editor undo resulted in an java.lang.IllegalArgumentException. Reported by Daryl Robbins, Harald Lübeck and Gregory Gerard
  • #0000204: Eclipse Plug-in: NPE occured when formatting was applied and the preferences dialog opened. Jalopy now displays a warning dialog in such a case that informs you that the preferences dialog must be closed in order to be able to apply formatting. Reported by Peter De Velder
  • #0000144: JBuilder Plug-in: Profile auto-switching did not work when formatting an opened editor. Reported by Ruedi Keller
  • #0000145: IDEA Plug-in: Fixed possible NPE when the format keyboard shortcut was pressed very quickly consecutively. Reported by Dr. Heinz Kabutz
  • #0000200: JDeveloper Plug-in: Formatting unopened files could cause stale buffers: any applied formatting changes where not displayed when a file was first opened after formatting and when the user edited/saved the file, the formatting applied by Jalopy was effectively lost. Reported by Holger Müller
  • #0000117: Formatting files with Javadoc errors with an IDE Plug-in lead to NPE. Reported by Elmar Sonnenschein

1.5_96 (2005-04-08)

New features
  • #0000004, #0000005: Declaration sorting is now most configurable. For each element you can define what sort criteria is significant. Additionally, Java bean pattern sorting is now available within the other sorting criteria which means that not all Bean methods must be grouped together, but they may be sorted according to other criteria first. The sorting behavior for access modifiers is now configurable as well. You can select what modifiers should be significant for sorting and in what order. Refer to the Sorting section in the manual for more information. Suggested by Colin Greenlaw and John C. Hohlen
  • #0000043: Endline indentation may now be enabled for certain elements only. Currently you can enable this indentation strategy separately for method/constructor declarations and method, constructor and creator call arguments. Refer to the Indentation section in the manual for more information. Suggested by Alexandru Popescu
  • #0000006: The number of spaces after semicolons in for statements is now fully configurable. Refer to the White Space section in the manual for more information. Suggested by Bill O'Rourke
  • #0000078, #0000081: A new wrapping option was added that allows dotted expressions to be wrapped. The default behavior is to never wrap dotted expressions to retain backward compatibility. Refer to the Wrapping section in the manual for more information. Suggested by Guy Thomas
  • #0000007: It is now possible to have the second expression of assertion statements aligned. Refer to the Indentation section in the manual for more information. Suggested by Elmar Sonnenschein
  • #0000073: You may now control whether line wrapping within method or creator calls should preferably happen within a call expression vs. before the expression. Refer to the Wrapping section in the manual for more information. Suggested by Don Mason
  • #0000008: Normal annotations may now be printed in compact style. Refer to the Wrapping section in the manual for more information. Suggested by Bruce Eckel
  • #0000010: The "Keep tags" option for headers and footers only worked when the colon appeared directly after a keyword. Now it is possible to add white space between keywords and colons in order to align several keywords. Suggested by Colt Frederickson
    /**
     * File       : $file.name$
     * $Created   : $date$ ($time.long$) by $user.name$ $
     * $By        : $
     * Last Change: $date$ ($time.long$) by $user.name$
     * Copyright  : Foo Company $date.year$
     */
    
  • #0000022: All redundant modifiers may now be removed. Refer to the Java section in the manual for more information. Please note that prior versions removed the abstract modifier automatically in certain cases (see the list of changes below)
  • #0000034: A separate template for enum declarations has been added. Refer to the Javadoc section for more information. Upon first startup, the template will be initialized with the contents of your "Class" template. Suggested by Elmar Sonnenschein
  • #0000011: Automatic line wrapping of Javadoc inline tags may now be disabled. Refer to the Javadoc section in the manual for more information. Suggested by Elmar Sonnenschein.
  • #0000042: Javadoc comment generation may now reuse existing non-Javadoc comments. Refer to the Javadoc section for more information. Suggested by Martin Walter
  • #0000009: Class/interface Javadoc comments may now be printed in a single line when possible. Refer to the Javadoc section in the manual for more information. Suggested by Carsten Langer
  • #0000046: Javadoc correction may now reuse existing text when missing description section and/or @return tag gets inserted. Two new options were added: "Use text from @return" and "Use description for @return". Suggested by Jason Winshell
  • #0000058: Javadoc correction may now tag missing descriptions for Javadoc standalone tags. Refer to the Javadoc section for more information. Suggested by Scott Wilson-Billing
  • #0000054: New option to keep line breaks after array elements. Refer to the Wrapping section in the user's manual for more information. Suggested by D'Arcy Smith
  • #0000089: Javadoc tags defined in the Javadoc templates may now be automatically enforced. Refer to the Javadoc section in the user's manual for more information. Suggested by Martin Walter
  • #0000024: The Javadoc formatter now supports the Commons Attributes notation. Suggested by Andreas Brenk
    /**
     * @@MyAttribute("this is a name", optional=true)
     */
    
  • #0000082: Added an option to disable wrapping for complex expressions. Refer to the Wrapping section for more information. Suggested by Derek Richardson
  • #0000086: Maven Plug-in. Refer to the Plug-in section in the manual. It's a slightly modified version of the code that ships with Maven. Suggested by Alex Yeo, Jose Luiz Junior, Scott Wilson-Billing and Andreas Brenk
Changes
  • The behavior of the "Wrap on-demand type parameters" option changed slightly when using endline indent: Wrapping after the comma now only happens when both parameter names consists of several letters and/or contains bounds. This change may affect formatting output!
  • If the "Blank lines before blocks" option was greater '0', blank line(s) were printed after block statements without curly braces when another block statement followed. As a workaround, you could either enforce curly braces for all block statements or setting the "Blank lines after left curly brace" option to '0'. Now such blank lines are avoided in the first place without any need to tweak the settings.
    if (condition1)
        while (condition2)
            doSomething();
    

    was printed as

    if (condition1)
    
        while (condition2)
            doSomething();
    

    Now it is printed as

    if (condition1)
        while (condition2)
            doSomething();
    
  • Prior versions incorporated the Java Tidy port JTidy to implement the "Check HTML" feature. Due to unresolvable problems this port has been abanndonned in favor of a custom library that currently only implements the structure checking/correction of a HTML document
  • Prior versions automatically removed the abstract modifier from interface declarations and method declarations that are members of interface declarations. These redundant modifiers are no longer automatically removed, instead a new option "Remove redundant modifiers has been added that removes these as well as all other redundant modifiers
  • #0000070: The sorting order of Javadoc standalone tags slightly changed to be in accordance with the updated Sun suggestions w/r to tag sorting: the @param tag now has the highest priority. Refer to the "How to Write Doc Comments for the Javadoc Tool" document for the complete listing. This change will only affect Javadoc class comments that document generic type parameters (a new J2SE 5.0 language feature)
  • The "Configure Methods Sort Order" dialog changed: The "Group methods" option to define grouping according to the Java Bean naming convention has been abandoned. Instead you can achieve the same means by moving the new "Bean pattern" entry to the top. Also, the list box to configure the order according to Bean naming adherence is no longer available on the main dialog but can be reached by selecting the "Bean pattern" entry and press the Configure... button
  • #0000020: The value of the "property.name" environment variable is now lower-cased during interpolation according to the recommendation in the Java Bean spec. Suggested by Elmar Sonnenschein
  • The default button for most dialogs of the preferences GUI changed to be the button that represents the action that the user is most likely to perform. Prior behavior was to always use the Cancel button
  • The options on the "Wrapping on-demand" settings page have been reordered for clarity
  • Because of space constraints the Javadoc templates settings page no longer uses tabbed panes to switch between the different templates, but a combo box
  • The Synchronize buttons in the Javadoc templates section now synchronize with the actual contents of the referenced tab - you no longer have to press the Apply button before anything is taken over. Additionally a new Synchronize button has been added to the "Interface" template
Bug fixes

Prior releases

To learn about the changes in prior releases, follow the link below.

Old history »»

What is Jalopy?

Jalopy is a world-class source code formatter for Java. It automates and enforces all aspects of source code layout—to meet a certain coding style without putting any burden on individual developers.

Learn more

Who needs it?

Jalopy is for everyone involved with source code editing. It scales from single developer usage to large scale enterprise deployment and seamlessly integrates with your favorite Java IDE or build tool.

Go and see yourself

I want some!

Concentrate on your problem domain and don’t waste time shuffling characters around. Pricing starts at USD $40 for a single-user license. Buy now using secure online purchase or wire transfer.

What are you waiting for?

Learn the details

Deploy, configure and use the software to best meet your needs. Download the printable user’s guide and learn everything there is to know to put Jalopy’s capabilities to full use.

Download (.pdf - 8.3MB)