Re: [ checkstyle-Bugs-3236924 ] Unused @throws tag for <Subclass of RuntimeException>

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: [ checkstyle-Bugs-3236924 ] Unused @throws tag for <Subclass of RuntimeException>

"Stefan Löwe"
Dear Sir or Madam,

As suggested, I continue the discussion on Bug item #3236924 on the
mailing list.

The "bug" and previous comments are written below.

The reason for classpath being "." (current directory) is, that I was
trying anything else before but was not successfull. I believe it is a
classpath problem, so I resorted to the easiest possible scenario, where
I call checkstyle from the directory where all *.class and *.java files
are located.

Btw, in our real scenario, this is also the case. The reason for the
fact that both *.class and *.java files are located in the same
directory is the following. The whole thing has an educational
background - we ask our students to work on assignments, and they load
up java files. We move them to a temp directory, compile them and,
besides other (e.g. functional) tests we also run checkstyle (great tool
btw!). Its just ease of use to not work with different directories.

But, I also tried this on the "real" directory structure, without success.

The following works (compiling the sources), no matter what my current working dir is, so the classpath setting is correct:
javac -cp /path1:/path2:/path3  path/to/Main.java

While this ...

/usr/bin/java -cp /path1:/path2:/path3 -jar
/path/to/checkstyle-5.3-all.jar -c /path/to/checkstyle_config.xml -r
.path/to/sourceDir (<- where Main.java lives)

... complains that it is "Unable to get class information for @throws
tag '<SubclassOfRuntime>Exception'"

I think when compiling on the command line is possible with the exact
same classpath, then running checkstyle from the exact same working dir
with the exact same classpath should just work, right?

Any pointers would be great.

Cheers
Stefan

On 03/24/2011 01:02 AM, SourceForge.net wrote:
 Bugs item #3236924, was opened at 2011-03-23 19:52
 Message generated for change (Comment added) made by oburn
 You can respond by visiting:
 https://sourceforge.net/tracker/?func=detail&atid=397078&aid=3236924&group_id=29721

 Please note that this message will contain a full copy of the comment thread,
 including the initial issue submission, for this request,
 not just the latest update.
 Category: None
 Group: None
 Status: Closed
 Resolution: Invalid
 Priority: 5
 Private: No
 Submitted By: Stefan Löwe (drcolossos)
 Assigned to: Nobody/Anonymous (nobody)
 Summary: Unused @throws tag for<Subclass of RuntimeException>

 Initial Comment:

 Hi,

 I am having a problem with Checkstyle 5.3.

 I want to check code that throws a subclass of RuntimeException (called IllegalMoveException). The method that throws the exception has a javadoc @throws.

 The Checkstyle config file contains the line ...
 <property name="allowUndeclaredRTE" value="true"/>

 However, I am still getting the error message "Unused @throws tag for 'IllegalMoveException'."

 The root cause could be relaed to the previous error message in the output, being "Unable to get class information for @throws tag 'IllegalMoveException'."

 However, all the files are in the classpath.

 I call checkstyle with the following command, working directory is where all the java files are, hence "-classpath ." and "-r  .":

 /usr/bin/java -Dbasedir=. -classpath . -jar /path/to/checkstyle/checkstyle-5.3-all.jar -c /path/to/config/checks_ws.xml -r .

 Is this a bug or what is wrong here?

 Thanks in advance

 P.S.: all relevant parts are attached

 ----------------------------------------------------------------------

 Comment By: Oliver Burn (oburn)
 Date: 2011-03-24 11:02

 Message:
 You clearly have a classpath problem since it is working for you in
 Eclipse.

 Looking at how you are running Checkstyle on the command line, your
 classpath looks suspect, unless the destination for you generated class
 files is the same as the source code (a really bad practice IMHO).

 If you have follow up questions, please use the Checkstyle-user mailing
 list.

 ----------------------------------------------------------------------

 Comment By: Stefan Löwe (drcolossos)
 Date: 2011-03-23 20:55

 Message:

 This works of course, but that's not the way it should be handled.

 Afterall, does this look like good code to you:

 void foo() throws NullPointerException;

 Which is more or less the same as in my scenario.
 My point is, you should not add a throws clause for a RuntimeException
 (nor its subclasses), afterall, this is the main reason for the checkstyle
 optioon "allowUndeclaredRTE", I suppose.

 Btw, I also tried the Eclipse plugin with my config file - it works there
 without any hick-ups.

 So it's either a bug of I simply mis-use the command line version - but I
 really don't know what would be wrong.

 Thanks for any help and comments

 ----------------------------------------------------------------------

 Comment By: http://moradanen.sopovs.com/ ()
 Date: 2011-03-23 20:37

 Message:
 It seems that simply adding your runtime exceptions to the throws
 declaration of the method solves the problem (javadoc left unchanged):

 boolean move(int col) throws IllegalMoveException,
 IllegalArgumentException;

 void machineMove() throws IllegalMoveException;



 ----------------------------------------------------------------------

 Comment By: Stefan Löwe (drcolossos)
 Date: 2011-03-23 19:56

 Message:
 Sorry, I thought I could add multiple files ...

 So in text form, the IllegalMoveException class and the checkstyle config
 ...

 ================================ IllegalMoveException
 ================================

 package connect4.model;



 /**

   * Exception if an illegal move should be executed on the Connect Four
 board.

   */

 public class IllegalMoveException extends RuntimeException {



      private static final long serialVersionUID = 1L;



      /**

       * Default constructor.

       */

      public IllegalMoveException() {

          super();

      }



      /**

       * Constructor with message.

       *

       * @param msg The error description.

       */

      public IllegalMoveException(String msg) {

          super(msg);

      }


 }

 ================================ checkstyle config
 ================================


 ================================ END IllegalMoveException
 ================================
 <?xml version="1.0"?>
 <!DOCTYPE module PUBLIC
      "-//Puppy Crawl//DTD Check Configuration 1.1//EN"
      "http://www.puppycrawl.com/dtds/configuration_1_1.dtd">

 <!--

    Checkstyle configuration that checks the sun coding conventions from:

      - the Java Language Specification at
        http://java.sun.com/docs/books/jls/second_edition/html/index.html

      - the Sun Code Conventions at http://java.sun.com/docs/codeconv/

      - the Javadoc guidelines at
        http://java.sun.com/j2se/javadoc/writingdoccomments/index.html

      - the JDK Api documentation
 http://java.sun.com/j2se/docs/api/index.html

      - some best practices

    Checkstyle is very configurable. Be sure to read the documentation at
    http://checkstyle.sf.net (or in your downloaded distribution).

    Most Checks are configurable, be sure to consult the documentation.

    To completely disable a check, just comment it out or delete it from the
 file.

    Finally, it is worth reading the documentation.

 -->

 <module name="Checker">

      <!-- Checks that a package.html file exists for each package.     -->
      <!-- See http://checkstyle.sf.net/config_javadoc.html#PackageHtml -->
      <!-- module name="PackageHtml"/ -->

      <!-- Checks whether files end with a new line.
 -->
      <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile
 -->
      <!--module name="NewlineAtEndOfFile"/-->

      <!-- Checks that property files contain the same keys.         -->
      <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
      <module name="Translation"/>

      <!-- Checks for size violations                     -->
      <!-- See http://checkstyle.sf.net/config_sizes.html -->
      <module name="FileLength">
     <property name="max" value="1000"/>
      </module>

      <!-- Checks for whitespace                               -->
      <!-- See http://checkstyle.sf.net/config_whitespace.html -->
      <!-- module name="FileTabCharacter"/ -->
    
      <module name="TreeWalker">
          <property name="tabWidth" value="4"/>
          <!-- Checks for Javadoc comments.                     -->
          <!-- See http://checkstyle.sf.net/config_javadoc.html -->
     <module name="JavadocType">
     <property name="scope" value="public"/>
     </module>
     <module name="JavadocMethod">
     <property name="scope" value="public"/>
             <property name="allowUndeclaredRTE" value="true"/>
             <property name="logLoadErrors" value="true"/>
             <!--<property name="suppressLoadErrors" value="true"/>-->
     </module>
     <module name="JavadocVariable">
     <property name="scope" value="public"/>
     </module>
     <!--
     <module name="JavadocMethod"/>
     <module name="JavadocType"/>
     <module name="JavadocVariable"/>
     -->

          <!-- Checks for Naming Conventions.                  -->
          <!-- See http://checkstyle.sf.net/config_naming.html -->
          <module name="ConstantName"/>
          <module name="LocalFinalVariableName"/>
          <module name="LocalVariableName"/>
          <module name="MemberName"/>
          <module name="MethodName"/>
          <!--module name="PackageName"/-->
          <module name="ParameterName"/>
          <module name="StaticVariableName"/>
          <module name="TypeName"/>


          <!-- Checks for Headers                              -->
          <!-- See http://checkstyle.sf.net/config_header.html -->
          <!--module name="Header" -->
              <!-- The follow property value demonstrates the ability
 -->
              <!-- to have access to ANT properties. In this case it uses
 -->
              <!-- the ${basedir} property to allow Checkstyle to be run
 -->
              <!-- from any directory within a project.
 -->
              <!--property name="headerFile" value="${basedir}/java.header"/
 -->
          <!-- /module -->

          <!-- Following interprets the header file as regular expressions.
 -->
          <!--<module name="RegexpHeader"/>
 -->

          <!-- Checks for imports                              -->
          <!-- See http://checkstyle.sf.net/config_import.html -->
          <module name="AvoidStarImport"/>
          <module name="IllegalImport"/>   <!-- defaults to sun.* packages
 -->
          <module name="RedundantImport"/>
          <module name="UnusedImports"/>


          <!-- Checks for Size Violations.                    -->
          <!-- See http://checkstyle.sf.net/config_sizes.html -->
          <module name="ExecutableStatementCount">
              <property name="max" value="30"/>
              <property name="tokens" value="CTOR_DEF"/>
          </module>
          <module name="ExecutableStatementCount">
              <property name="max" value="100"/>
              <property name="tokens" value="METHOD_DEF"/>
          </module>
          <!--module name="LineLength"/-->
          <module name="MethodLength"/>
          <module name="AnonInnerLength">
              <property name="max" value="60"/>
          </module>
          <module name="ParameterNumber"/>


          <!-- Checks for whitespace                               -->
          <!-- See http://checkstyle.sf.net/config_whitespace.html -->
          <module name="EmptyForIteratorPad"/>
     <module name="GenericWhitespace"/>
     <module name="MethodParamPad"/>
          <module name="NoWhitespaceAfter"/>
          <module name="NoWhitespaceBefore"/>
          <module name="OperatorWrap"/>
          <module name="ParenPad"/>
          <!--module name="TabCharacter"/-->
     <module name="TypecastParenPad"/>
     <module name="WhitespaceAfter"/>
     <module name="WhitespaceAround">
              <property name="tokens" value="ASSIGN, BAND, BAND_ASSIGN, BOR,

               BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV,

               DIV_ASSIGN, EQUAL, GE, GT, LAND, LCURLY, LE, LITERAL_ASSERT,
               LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY,
               LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
 LITERAL_SYNCHRONIZED,
               LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN,
 MOD,
               MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, RCURLY,
               SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN,
               TYPE_EXTENSION_AND, WILDCARD_TYPE"/>
          </module>


          <!-- Modifier Checks                                    -->
          <!-- See http://checkstyle.sf.net/config_modifiers.html -->
          <!-- module name="ModifierOrder"/ -->
          <module name="RedundantModifier"/>


          <!-- Checks for blocks. You know, those {}'s         -->
          <!-- See http://checkstyle.sf.net/config_blocks.html -->
          <module name="AvoidNestedBlocks"/>
          <module name="EmptyBlock"/>
          <module name="LeftCurly"/>
          <module name="NeedBraces"/>
          <module name="RightCurly"/>

     <!--
          <module name="GenericIllegalRegexp">
              <property name="format" value="\s+$"/>
              <property name="message" value="Line has trailing spaces."/>
          </module>
     -->

      </module>

 </module>

 ================================ END checkstyle config
 ================================

 ----------------------------------------------------------------------

 You can respond by visiting:
 https://sourceforge.net/tracker/?func=detail&atid=397078&aid=3236924&group_id=29721
  

Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die   
Toolbar eingebaut! http://produkte.web.de/go/toolbar

------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself;
WebMatrix provides all the features you need to develop and
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf

_______________________________________________
Checkstyle-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/checkstyle-user
Reply | Threaded
Open this post in threaded view
|

Re: [ checkstyle-Bugs-3236924 ] Unused @throws tag for <Subclass of RuntimeException>

"Stefan Löwe"

Dear Sir or Madam,

As suggested, I continue the discussion on Bug item #3236924 on the
mailing list.

The "bug" and previous comments are written below.

The reason for classpath being "." (current directory) is, that I was
trying anything else before but was not successfull. I believe it is a
classpath problem, so I resorted to the easiest possible scenario, where
I call checkstyle from the directory where all *.class and *.java files
are located.

Btw, in our real scenario, this is also the case. The reason for the
fact that both *.class and *.java files are located in the same
directory is the following. The whole thing has an educational
background - we ask our students to work on assignments, and they load
up java files. We move them to a temp directory, compile them and,
besides other (e.g. functional) tests we also run checkstyle (great tool
btw!). Its just ease of use to not work with different directories.

But, I also tried this on the "real" directory structure, without success.

The following works (compiling the sources), no matter what my current working dir is, so the classpath setting is correct:
javac -cp /path1:/path2:/path3  path/to/Main.java

While this ...

/usr/bin/java -cp /path1:/path2:/path3 -jar
/path/to/checkstyle-5.3-all.jar -c /path/to/checkstyle_config.xml -r
.path/to/sourceDir (<- where Main.java lives)

... complains that it is "Unable to get class information for @throws
tag '<SubclassOfRuntime>Exception'"

I think when compiling on the command line is possible with the exact
same classpath, then running checkstyle from the exact same working dir
with the exact same classpath should just work, right?

Any pointers would be great.

Cheers
Stefan

On 03/24/2011 01:02 AM, SourceForge.net wrote:
 Bugs item #3236924, was opened at 2011-03-23 19:52
 Message generated for change (Comment added) made by oburn
 You can respond by visiting:
 https://sourceforge.net/tracker/?func=detail&atid=397078&aid=3236924&group_id=29721

 Please note that this message will contain a full copy of the comment thread,
 including the initial issue submission, for this request,
 not just the latest update.
 Category: None
 Group: None
 Status: Closed
 Resolution: Invalid Priority: 5
 Private: No
 Submitted By: Stefan Löwe (drcolossos)
 Assigned to: Nobody/Anonymous (nobody)
 Summary: Unused @throws tag for<Subclass of RuntimeException>

 Initial Comment:

 Hi,

 I am having a problem with Checkstyle 5.3.

 I want to check code that throws a subclass of RuntimeException (called IllegalMoveException). The method that throws the exception has a javadoc @throws.

 The Checkstyle config file contains the line ...
 <property name="allowUndeclaredRTE" value="true"/>

 However, I am still getting the error message "Unused @throws tag for 'IllegalMoveException'."

 The root cause could be relaed to the previous error message in the output, being "Unable to get class information for @throws tag 'IllegalMoveException'."

 However, all the files are in the classpath.

 I call checkstyle with the following command, working directory is where all the java files are, hence "-classpath ." and "-r  .":

 /usr/bin/java -Dbasedir=. -classpath . -jar /path/to/checkstyle/checkstyle-5.3-all.jar -c /path/to/config/checks_ws.xml -r .

 Is this a bug or what is wrong here?

 Thanks in advance

 P.S.: all relevant parts are attached

 ----------------------------------------------------------------------

 Comment By: Oliver Burn (oburn) Date: 2011-03-24 11:02

 Message:
 You clearly have a classpath problem since it is working for you in
 Eclipse.

 Looking at how you are running Checkstyle on the command line, your
 classpath looks suspect, unless the destination for you generated class
 files is the same as the source code (a really bad practice IMHO).

 If you have follow up questions, please use the Checkstyle-user mailing
 list.

 ----------------------------------------------------------------------

 Comment By: Stefan Löwe (drcolossos)
 Date: 2011-03-23 20:55

 Message:

 This works of course, but that's not the way it should be handled.

 Afterall, does this look like good code to you:

 void foo() throws NullPointerException;

 Which is more or less the same as in my scenario.
 My point is, you should not add a throws clause for a RuntimeException
 (nor its subclasses), afterall, this is the main reason for the checkstyle
 optioon "allowUndeclaredRTE", I suppose.

 Btw, I also tried the Eclipse plugin with my config file - it works there
 without any hick-ups.

 So it's either a bug of I simply mis-use the command line version - but I
 really don't know what would be wrong.

 Thanks for any help and comments

 ----------------------------------------------------------------------

 Comment By: http://moradanen.sopovs.com/[http://moradanen.sopovs.com/] ()
 Date: 2011-03-23 20:37

 Message:
 It seems that simply adding your runtime exceptions to the throws
 declaration of the method solves the problem (javadoc left unchanged):

 boolean move(int col) throws IllegalMoveException,
 IllegalArgumentException;

 void machineMove() throws IllegalMoveException;



 ----------------------------------------------------------------------

 Comment By: Stefan Löwe (drcolossos)
 Date: 2011-03-23 19:56

 Message:
 Sorry, I thought I could add multiple files ...

 So in text form, the IllegalMoveException class and the checkstyle config
 ...

 ================================ IllegalMoveException
 ================================

 package connect4.model;



 /**

   * Exception if an illegal move should be executed on the Connect Four
 board.

   */

 public class IllegalMoveException extends RuntimeException {



      private static final long serialVersionUID = 1L;



      /**

       * Default constructor.

       */

      public IllegalMoveException() {

          super();

      }



      /**

       * Constructor with message.

       *

       * @param msg The error description.

       */

      public IllegalMoveException(String msg) {

          super(msg);

      }


 }

 ================================ checkstyle config
 ================================


 ================================ END IllegalMoveException
 ================================
 <?xml version="1.0"?>
 <!DOCTYPE module PUBLIC
      "-//Puppy Crawl//DTD Check Configuration 1.1//EN"
      "http://www.puppycrawl.com/dtds/configuration_1_1.dtd"[http://www.puppycrawl.com/dtds/configuration_1_1.dtd]>

 <!--

    Checkstyle configuration that checks the sun coding conventions from:

      - the Java Language Specification at
        http://java.sun.com/docs/books/jls/second_edition/html/index.html[http://java.sun.com/docs/books/jls/second_edition/html/index.html]

      - the Sun Code Conventions at http://java.sun.com/docs/codeconv/[http://java.sun.com/docs/codeconv/]

      - the Javadoc guidelines at
        http://java.sun.com/j2se/javadoc/writingdoccomments/index.html[http://java.sun.com/j2se/javadoc/writingdoccomments/index.html]

      - the JDK Api documentation
 http://java.sun.com/j2se/docs/api/index.html[http://java.sun.com/j2se/docs/api/index.html]

      - some best practices

    Checkstyle is very configurable. Be sure to read the documentation at
    http://checkstyle.sf.net[http://checkstyle.sf.net/] (or in your downloaded distribution).

    Most Checks are configurable, be sure to consult the documentation.

    To completely disable a check, just comment it out or delete it from the
 file.

    Finally, it is worth reading the documentation.

 -->

 <module name="Checker">

      <!-- Checks that a package.html file exists for each package.     -->
      <!-- See http://checkstyle.sf.net/config_javadoc.html#PackageHtml[http://checkstyle.sf.net/config_javadoc.html#PackageHtml] -->
      <!-- module name="PackageHtml"/ -->

      <!-- Checks whether files end with a new line.
 -->
      <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile[http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile]
 -->
      <!--module name="NewlineAtEndOfFile"/-->

      <!-- Checks that property files contain the same keys.         -->
      <!-- See http://checkstyle.sf.net/config_misc.html#Translation[http://checkstyle.sf.net/config_misc.html#Translation] -->
      <module name="Translation"/>

      <!-- Checks for size violations                     -->
      <!-- See http://checkstyle.sf.net/config_sizes.html[http://checkstyle.sf.net/config_sizes.html] -->
      <module name="FileLength">
     <property name="max" value="1000"/>
      </module>

      <!-- Checks for whitespace                               -->
      <!-- See http://checkstyle.sf.net/config_whitespace.html[http://checkstyle.sf.net/config_whitespace.html] -->
      <!-- module name="FileTabCharacter"/ -->
    
      <module name="TreeWalker">
          <property name="tabWidth" value="4"/>
          <!-- Checks for Javadoc comments.                     -->
          <!-- See http://checkstyle.sf.net/config_javadoc.html[http://checkstyle.sf.net/config_javadoc.html] -->
     <module name="JavadocType">
     <property name="scope" value="public"/>
     </module>
     <module name="JavadocMethod">
     <property name="scope" value="public"/>
             <property name="allowUndeclaredRTE" value="true"/>
             <property name="logLoadErrors" value="true"/>
             <!--<property name="suppressLoadErrors" value="true"/>-->
     </module>
     <module name="JavadocVariable">
     <property name="scope" value="public"/>
     </module>
     <!--
     <module name="JavadocMethod"/>
     <module name="JavadocType"/>
     <module name="JavadocVariable"/>
     -->

          <!-- Checks for Naming Conventions.                  -->
          <!-- See http://checkstyle.sf.net/config_naming.html[http://checkstyle.sf.net/config_naming.html] -->
          <module name="ConstantName"/>
          <module name="LocalFinalVariableName"/>
          <module name="LocalVariableName"/>
          <module name="MemberName"/>
          <module name="MethodName"/>
          <!--module name="PackageName"/-->
          <module name="ParameterName"/>
          <module name="StaticVariableName"/>
          <module name="TypeName"/>


          <!-- Checks for Headers                              -->
          <!-- See http://checkstyle.sf.net/config_header.html[http://checkstyle.sf.net/config_header.html] -->
          <!--module name="Header" -->
              <!-- The follow property value demonstrates the ability
 -->
              <!-- to have access to ANT properties. In this case it uses
 -->
              <!-- the ${basedir} property to allow Checkstyle to be run
 -->
              <!-- from any directory within a project.
 -->
              <!--property name="headerFile" value="${basedir}/java.header"/
 -->
          <!-- /module -->

          <!-- Following interprets the header file as regular expressions.
 -->
          <!--<module name="RegexpHeader"/>
 -->

          <!-- Checks for imports                              -->
          <!-- See http://checkstyle.sf.net/config_import.html[http://checkstyle.sf.net/config_import.html] -->
          <module name="AvoidStarImport"/>
          <module name="IllegalImport"/>   <!-- defaults to sun.* packages
 -->
          <module name="RedundantImport"/>
          <module name="UnusedImports"/>


          <!-- Checks for Size Violations.                    -->
          <!-- See http://checkstyle.sf.net/config_sizes.html[http://checkstyle.sf.net/config_sizes.html] -->
          <module name="ExecutableStatementCount">
              <property name="max" value="30"/>
              <property name="tokens" value="CTOR_DEF"/>
          </module>
          <module name="ExecutableStatementCount">
              <property name="max" value="100"/>
              <property name="tokens" value="METHOD_DEF"/>
          </module>
          <!--module name="LineLength"/-->
          <module name="MethodLength"/>
          <module name="AnonInnerLength">
              <property name="max" value="60"/>
          </module>
          <module name="ParameterNumber"/>


          <!-- Checks for whitespace                               -->
          <!-- See http://checkstyle.sf.net/config_whitespace.html[http://checkstyle.sf.net/config_whitespace.html] -->
          <module name="EmptyForIteratorPad"/>
     <module name="GenericWhitespace"/>
     <module name="MethodParamPad"/>
          <module name="NoWhitespaceAfter"/>
          <module name="NoWhitespaceBefore"/>
          <module name="OperatorWrap"/>
          <module name="ParenPad"/>
          <!--module name="TabCharacter"/-->
     <module name="TypecastParenPad"/>
     <module name="WhitespaceAfter"/>
     <module name="WhitespaceAround">
              <property name="tokens" value="ASSIGN, BAND, BAND_ASSIGN, BOR,

               BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV,

               DIV_ASSIGN, EQUAL, GE, GT, LAND, LCURLY, LE, LITERAL_ASSERT,
               LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY,
               LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
 LITERAL_SYNCHRONIZED,
               LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN,
 MOD,
               MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, RCURLY,
               SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN,
               TYPE_EXTENSION_AND, WILDCARD_TYPE"/>
          </module>


          <!-- Modifier Checks                                    -->
          <!-- See http://checkstyle.sf.net/config_modifiers.html[http://checkstyle.sf.net/config_modifiers.html] -->
          <!-- module name="ModifierOrder"/ -->
          <module name="RedundantModifier"/>


          <!-- Checks for blocks. You know, those {}'s         -->
          <!-- See http://checkstyle.sf.net/config_blocks.html[http://checkstyle.sf.net/config_blocks.html] -->
          <module name="AvoidNestedBlocks"/>
          <module name="EmptyBlock"/>
          <module name="LeftCurly"/>
          <module name="NeedBraces"/>
          <module name="RightCurly"/>

     <!--
          <module name="GenericIllegalRegexp">
              <property name="format" value="\s+$"/>
              <property name="message" value="Line has trailing spaces."/>
          </module>
     -->

      </module>

 </module>

 ================================ END checkstyle config
 ================================

 ----------------------------------------------------------------------

 You can respond by visiting:
 https://sourceforge.net/tracker/?func=detail&atid=397078&aid=3236924&group_id=29721[https://sourceforge.net/tracker/?func=detail&atid=397078&aid=3236924&group_id=29721]
___________________________________________________________
Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die
Toolbar eingebaut! http://produkte.web.de/go/toolbar

------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself;
WebMatrix provides all the features you need to develop and
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
Checkstyle-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/checkstyle-user