codenarc-user Mailing List for CodeNarc (Page 9)
Brought to you by:
chrismair
This list is closed, nobody may subscribe to it.
2010 |
Jan
|
Feb
|
Mar
|
Apr
(14) |
May
(9) |
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
(11) |
Nov
(29) |
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
(27) |
Feb
(8) |
Mar
(26) |
Apr
(9) |
May
(27) |
Jun
(8) |
Jul
(24) |
Aug
(27) |
Sep
|
Oct
(4) |
Nov
(7) |
Dec
(19) |
2012 |
Jan
|
Feb
(7) |
Mar
(2) |
Apr
(1) |
May
|
Jun
|
Jul
(3) |
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
(4) |
2013 |
Jan
(2) |
Feb
(3) |
Mar
|
Apr
(3) |
May
(1) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2014 |
Jan
|
Feb
|
Mar
|
Apr
(4) |
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
(1) |
Oct
(1) |
Nov
(2) |
Dec
|
2015 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
(10) |
Oct
(1) |
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
(10) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2018 |
Jan
(1) |
Feb
(1) |
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
From: Hamlet D. <ham...@ca...> - 2011-03-29 08:15:20
|
I would like to see a stacktrace for the OOME. I think that will tell us exactly what rule is bad. Then we can just exclude that rule and get you running codenarc. ----- Original Message ----- > Hi Hamlet, > > the OOMEs I only get when not using: > > export ANT_OPTS='-Xmx512m -XX:MaxPermSize=512m' > > With these settings the only exception is the timeout after 60min. > > As you say that a single rule should be the troublemaker, > I will dig deeper to spot it when I find some time. > > Regards, > René Scheibe > > On 03/29/2011 07:41 AM, Hamlet D'Arcy wrote: > > Hi René, > > > > Are there any other stack traces in the log? You said you had OOME > > (OutOfMemoryException?), but this trace does not have one. > > > > Also, here is the first thing I would do: change your rulesets to > > something very, very simple: > > > > <codenarc ruleSetFiles="rulesets/exceptions.xml"> > > > > This will run _just_ the exception rules. It should complete in > > under 30 > > seconds, even for your codebase. If that doesn't work then change > > it to: > > > > <codenarc ruleSetFiles="rulesets/design.xml"> > > > > The point is to find out which rule is causing the problem. We can > > slowly add the rest of the rulesets until the build breaks again, > > and > > then we will know which ruleset the bad rule is in. I don't think > > it > > should take more than 10 minutes or so. > > > > Also, is there any way for me to run the build? :) > > > > -- > > Hamlet > > > > > > > > On Tue, Mar 29, 2011 at 12:06 AM, Chris Mair > > <chr...@ea... > > <mailto:chr...@ea...>> wrote: > > > > Hmm. I also run CodeNarc against larger projects without > > problem. > > > > Can you try not including all of those ruleset files? Does it > > work > > fine with just " rulesets/basic.xml "? Is there a "breaking > > point"? > > > > It probably does not make sense to include all of the rules > > anyway. > > The generic rules, for instance, don't provide any value > > without > > further configuration. And there is some overlap and even a bit > > of > > contradiction if you include all of the rules. That being said, > > if > > there is a problem loading all of these rulesets, we would > > certainly > > want to fix that. > > > > Thanks. > > Chris > > > > -----Original Message----- > > From: René Scheibe [mailto:ren...@go... > > <mailto:ren...@go...>] > > Sent: Monday, March 28, 2011 12:42 PM > > To: Hamlet DArcy > > Cc: codenarc-user > > Subject: Re: [Codenarc-user] 60min timeout when analyzing my > > project > > > > Hi Hamlet, > > > > here are some more details as requested. > > > > 1) We use a lot of "import some.path.*" in our tests. > > > > I know that Groovy supports relative imports and the Groovy > > compiler > > has a hard time with it. > > For GroovyEclipse there was already a performance patch to > > handle > > this in a better way This reduced compile time by factor of ~10 > > as I > > remember. > > > > 2) codenarc.properties > > > > # method names can also contain spaces, " and ' (nice test > > descriptions) > > MethodName.regex = [a-z][\\w "']* > > > > 3) build.xml (excerpt): > > > > <target name="codenarc"> > > <delete dir="logs/codenarc"/> > > <mkdir dir="logs/codenarc"/> > > > > <taskdef name="codenarc" > > classname="org.codenarc.ant.CodeNarcTask"> > > <classpath> > > <fileset dir="lib" includes="log4j*jar"/> > > <fileset dir="lib" includes="antlr*jar"/> > > <fileset dir="lib" includes="asm*jar"/> > > <fileset dir="lib" includes="groovy*jar"/> > > <fileset dir="lib" includes="CodeNarc*.jar"/> > > <fileset dir="lib" includes="GMetrics*.jar"/> > > </classpath> > > </taskdef> > > > > > > <codenarc ruleSetFiles="rulesets/basic.xml, > > rulesets/braces.xml, > > rulesets/concurrency.xml, > > rulesets/design.xml, > > rulesets/dry.xml, > > rulesets/exceptions.xml, > > rulesets/generic.xml, > > rulesets/imports.xml, > > rulesets/junit.xml, > > rulesets/logging.xml, > > rulesets/naming.xml, > > rulesets/size.xml, > > rulesets/unnecessary.xml, > > rulesets/unused.xml"> > > <fileset dir="src"> > > <include name="**/*.groovy"/> > > </fileset> > > <report type="xml"> > > <option name="outputFile" > > value="logs/codenarc/CodeNarcReport.xml"/> > > </report> > > <report type="html"> > > <option name="outputFile" > > value="logs/codenarc/CodeNarcReport.html"/> > > </report> > > </codenarc> > > </target> > > > > 4) stacktrace (after 60min) > > build.xml:878: java.lang.AssertionError: Thread Pool terminated > > before completion.. Expression: completed. Values: completed = > > false > > at > > org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:388) > > at > > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed(ScriptBytecodeAdapter.java:662) > > at > > org.codenarc.ant.AntFileSetSourceAnalyzer.executeWithThreadPool(AntFileSetSourceAnalyzer.groovy:134) > > at > > org.codenarc.ant.AntFileSetSourceAnalyzer.this$2$executeWithThreadPool(AntFileSetSourceAnalyzer.groovy) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > > Method) > > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) > > at > > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51) > > at > > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) > > at > > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) > > at > > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) > > at > > org.codenarc.ant.AntFileSetSourceAnalyzer.processFileSet(AntFileSetSourceAnalyzer.groovy:118) > > at > > org.codenarc.ant.AntFileSetSourceAnalyzer.this$2$processFileSet(AntFileSetSourceAnalyzer.groovy) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > > Method) > > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88) > > at > > groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) > > at > > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:362) > > at > > groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) > > at > > org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66) > > at > > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) > > at > > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) > > at > > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:153) > > at > > org.codenarc.ant.AntFileSetSourceAnalyzer$_analyze_closure1.doCall(AntFileSetSourceAnalyzer.groovy:81) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > > Method) > > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88) > > at > > groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) > > at > > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:273) > > at > > groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) > > at groovy.lang.Closure.call(Closure.java:282) > > at groovy.lang.Closure.call(Closure.java:295) > > at > > org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1220) > > at > > org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1196) > > at org.codehaus.groovy.runtime.dgm$110.invoke(Unknown > > Source) > > at > > org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:270) > > at > > org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52) > > at > > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) > > at > > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) > > at > > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) > > at > > org.codenarc.ant.AntFileSetSourceAnalyzer.analyze(AntFileSetSourceAnalyzer.groovy:80) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > > Method) > > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) > > at > > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:63) > > at > > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) > > at > > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) > > at > > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) > > at > > org.codenarc.CodeNarcRunner.execute(CodeNarcRunner.groovy:70) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > > Method) > > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) > > at > > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:63) > > at > > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) > > at > > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) > > at > > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) > > at > > org.codenarc.ant.CodeNarcTask.execute(CodeNarcTask.groovy:86) > > at > > org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) > > at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown > > Source) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > > org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) > > at org.apache.tools.ant.Task.perform(Task.java:348) > > at org.apache.tools.ant.Target.execute(Target.java:390) > > at > > org.apache.tools.ant.Target.performTasks(Target.java:411) > > at > > org.apache.tools.ant.Project.executeSortedTargets(Project.java:1360) > > at > > org.apache.tools.ant.Project.executeTarget(Project.java:1329) > > at > > org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) > > at > > org.apache.tools.ant.Project.executeTargets(Project.java:1212) > > at org.apache.tools.ant.Main.runBuild(Main.java:801) > > at org.apache.tools.ant.Main.startAnt(Main.java:218) > > at > > org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) > > at > > org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) > > > > Regards, > > René Scheibe > > > > On 03/28/2011 04:06 PM, Hamlet DArcy wrote: > > > This doesn't sound right. > > > I run it against much larger projects than this with no > > > issues. > > > > > > 20 minutes is a crazy long time for this to run. > > > > > > Can you post your configuration file? > > > How about your ant.xml file? > > > And how about a stack trace? > > > > > > Thanks, > > > Hamlet > > > > > > ----- Original Message ----- > > >> Hi, > > >> > > >> I have a project with 200+ Groovy files (30k+ LOC) which I > > >> try to > > >> analyse with CodeNarc. > > >> > > >> I am running CodeNarc via Ant. With default settings it runs > > >> ~20min, > > >> spits out a report but also generates a lot of OOMEs. The > > >> results > > >> vary a lot since sometimes some classes can be analysed and > > >> sometimes > > >> they can't due to this memory issue. > > >> > > >> So I had to increase the memory: > > >> export ANT_OPTS='-Xmx512m -XX:MaxPermSize=512m' > > >> > > >> With this settings after 60min I get this error: > > >> "java.lang.AssertionError: Thread Pool terminated before > > >> completion.. > > >> Expression: completed. Values: completed = false" > > >> > > >> I have seen your pre-v0.13 post that there are some issue > > >> and I have > > >> seen the POOL_TIMEOUT_SECONDS in AntFileSetSourceAnalyzer. > > >> > > >> Can you explain the root of the problem? And is there > > >> already a > > >> solution for it? > > >> > > >> Regards, > > >> René Scheibe > > >> > > >> > > >> --------------------------------------------------------------------- > > >> --------- Enable your software for Intel(R) Active > > >> Management > > >> Technology to meet the growing manageability and security > > >> demands of > > >> your customers. > > >> Businesses > > >> are taking advantage of Intel(R) vPro (TM) technology - will > > >> your > > >> software be a part of the solution? Download the Intel(R) > > >> Manageability Checker today! > > >> http://p.sf.net/sfu/intel-dev2devmar > > >> _______________________________________________ > > >> Codenarc-user mailing list > > >> Cod...@li... > > <mailto:Cod...@li...> > > >> https://lists.sourceforge.net/lists/listinfo/codenarc-user > > >> > > > > > > ------------------------------------------------------------------------------ > > 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 > > _______________________________________________ > > Codenarc-user mailing list > > Cod...@li... > > <mailto:Cod...@li...> > > https://lists.sourceforge.net/lists/listinfo/codenarc-user > > > > > > ------------------------------------------------------------------------------ > > 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 > > _______________________________________________ > > Codenarc-user mailing list > > Cod...@li... > > <mailto:Cod...@li...> > > https://lists.sourceforge.net/lists/listinfo/codenarc-user > > > > > > > > > > -- > > Hamlet D'Arcy > > ham...@gm... <mailto:ham...@gm...> > > > ------------------------------------------------------------------------------ > Enable your software for Intel(R) Active Management Technology to > meet the > growing manageability and security demands of your customers. > Businesses > are taking advantage of Intel(R) vPro (TM) technology - will your > software > be a part of the solution? Download the Intel(R) Manageability > Checker > today! http://p.sf.net/sfu/intel-dev2devmar > _______________________________________________ > Codenarc-user mailing list > Cod...@li... > https://lists.sourceforge.net/lists/listinfo/codenarc-user > |
From: R. S. <ren...@go...> - 2011-03-29 08:10:40
|
Hi Hamlet, the OOMEs I only get when not using: export ANT_OPTS='-Xmx512m -XX:MaxPermSize=512m' With these settings the only exception is the timeout after 60min. As you say that a single rule should be the troublemaker, I will dig deeper to spot it when I find some time. Regards, René Scheibe On 03/29/2011 07:41 AM, Hamlet D'Arcy wrote: > Hi René, > > Are there any other stack traces in the log? You said you had OOME > (OutOfMemoryException?), but this trace does not have one. > > Also, here is the first thing I would do: change your rulesets to > something very, very simple: > > <codenarc ruleSetFiles="rulesets/exceptions.xml"> > > This will run _just_ the exception rules. It should complete in under 30 > seconds, even for your codebase. If that doesn't work then change it to: > > <codenarc ruleSetFiles="rulesets/design.xml"> > > The point is to find out which rule is causing the problem. We can > slowly add the rest of the rulesets until the build breaks again, and > then we will know which ruleset the bad rule is in. I don't think it > should take more than 10 minutes or so. > > Also, is there any way for me to run the build? :) > > -- > Hamlet > > > > On Tue, Mar 29, 2011 at 12:06 AM, Chris Mair <chr...@ea... > <mailto:chr...@ea...>> wrote: > > Hmm. I also run CodeNarc against larger projects without problem. > > Can you try not including all of those ruleset files? Does it work > fine with just " rulesets/basic.xml "? Is there a "breaking point"? > > It probably does not make sense to include all of the rules anyway. > The generic rules, for instance, don't provide any value without > further configuration. And there is some overlap and even a bit of > contradiction if you include all of the rules. That being said, if > there is a problem loading all of these rulesets, we would certainly > want to fix that. > > Thanks. > Chris > > -----Original Message----- > From: René Scheibe [mailto:ren...@go... > <mailto:ren...@go...>] > Sent: Monday, March 28, 2011 12:42 PM > To: Hamlet DArcy > Cc: codenarc-user > Subject: Re: [Codenarc-user] 60min timeout when analyzing my project > > Hi Hamlet, > > here are some more details as requested. > > 1) We use a lot of "import some.path.*" in our tests. > > I know that Groovy supports relative imports and the Groovy compiler > has a hard time with it. > For GroovyEclipse there was already a performance patch to handle > this in a better way This reduced compile time by factor of ~10 as I > remember. > > 2) codenarc.properties > > # method names can also contain spaces, " and ' (nice test > descriptions) > MethodName.regex = [a-z][\\w "']* > > 3) build.xml (excerpt): > > <target name="codenarc"> > <delete dir="logs/codenarc"/> > <mkdir dir="logs/codenarc"/> > > <taskdef name="codenarc" > classname="org.codenarc.ant.CodeNarcTask"> > <classpath> > <fileset dir="lib" includes="log4j*jar"/> > <fileset dir="lib" includes="antlr*jar"/> > <fileset dir="lib" includes="asm*jar"/> > <fileset dir="lib" includes="groovy*jar"/> > <fileset dir="lib" includes="CodeNarc*.jar"/> > <fileset dir="lib" includes="GMetrics*.jar"/> > </classpath> > </taskdef> > > > <codenarc ruleSetFiles="rulesets/basic.xml, > rulesets/braces.xml, > rulesets/concurrency.xml, > rulesets/design.xml, > rulesets/dry.xml, > rulesets/exceptions.xml, > rulesets/generic.xml, > rulesets/imports.xml, > rulesets/junit.xml, > rulesets/logging.xml, > rulesets/naming.xml, > rulesets/size.xml, > rulesets/unnecessary.xml, > rulesets/unused.xml"> > <fileset dir="src"> > <include name="**/*.groovy"/> > </fileset> > <report type="xml"> > <option name="outputFile" > value="logs/codenarc/CodeNarcReport.xml"/> > </report> > <report type="html"> > <option name="outputFile" > value="logs/codenarc/CodeNarcReport.html"/> > </report> > </codenarc> > </target> > > 4) stacktrace (after 60min) > build.xml:878: java.lang.AssertionError: Thread Pool terminated > before completion.. Expression: completed. Values: completed = false > at > org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:388) > at > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed(ScriptBytecodeAdapter.java:662) > at > org.codenarc.ant.AntFileSetSourceAnalyzer.executeWithThreadPool(AntFileSetSourceAnalyzer.groovy:134) > at > org.codenarc.ant.AntFileSetSourceAnalyzer.this$2$executeWithThreadPool(AntFileSetSourceAnalyzer.groovy) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) > at > org.codenarc.ant.AntFileSetSourceAnalyzer.processFileSet(AntFileSetSourceAnalyzer.groovy:118) > at > org.codenarc.ant.AntFileSetSourceAnalyzer.this$2$processFileSet(AntFileSetSourceAnalyzer.groovy) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) > at > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:362) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) > at > org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:153) > at > org.codenarc.ant.AntFileSetSourceAnalyzer$_analyze_closure1.doCall(AntFileSetSourceAnalyzer.groovy:81) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) > at > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:273) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) > at groovy.lang.Closure.call(Closure.java:282) > at groovy.lang.Closure.call(Closure.java:295) > at > org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1220) > at > org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1196) > at org.codehaus.groovy.runtime.dgm$110.invoke(Unknown Source) > at > org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:270) > at > org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) > at > org.codenarc.ant.AntFileSetSourceAnalyzer.analyze(AntFileSetSourceAnalyzer.groovy:80) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:63) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) > at org.codenarc.CodeNarcRunner.execute(CodeNarcRunner.groovy:70) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:63) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) > at org.codenarc.ant.CodeNarcTask.execute(CodeNarcTask.groovy:86) > at > org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) > at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) > at org.apache.tools.ant.Task.perform(Task.java:348) > at org.apache.tools.ant.Target.execute(Target.java:390) > at org.apache.tools.ant.Target.performTasks(Target.java:411) > at > org.apache.tools.ant.Project.executeSortedTargets(Project.java:1360) > at org.apache.tools.ant.Project.executeTarget(Project.java:1329) > at > org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) > at org.apache.tools.ant.Project.executeTargets(Project.java:1212) > at org.apache.tools.ant.Main.runBuild(Main.java:801) > at org.apache.tools.ant.Main.startAnt(Main.java:218) > at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) > at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) > > Regards, > René Scheibe > > On 03/28/2011 04:06 PM, Hamlet DArcy wrote: > > This doesn't sound right. > > I run it against much larger projects than this with no issues. > > > > 20 minutes is a crazy long time for this to run. > > > > Can you post your configuration file? > > How about your ant.xml file? > > And how about a stack trace? > > > > Thanks, > > Hamlet > > > > ----- Original Message ----- > >> Hi, > >> > >> I have a project with 200+ Groovy files (30k+ LOC) which I try to > >> analyse with CodeNarc. > >> > >> I am running CodeNarc via Ant. With default settings it runs ~20min, > >> spits out a report but also generates a lot of OOMEs. The results > >> vary a lot since sometimes some classes can be analysed and sometimes > >> they can't due to this memory issue. > >> > >> So I had to increase the memory: > >> export ANT_OPTS='-Xmx512m -XX:MaxPermSize=512m' > >> > >> With this settings after 60min I get this error: > >> "java.lang.AssertionError: Thread Pool terminated before completion.. > >> Expression: completed. Values: completed = false" > >> > >> I have seen your pre-v0.13 post that there are some issue and I have > >> seen the POOL_TIMEOUT_SECONDS in AntFileSetSourceAnalyzer. > >> > >> Can you explain the root of the problem? And is there already a > >> solution for it? > >> > >> Regards, > >> René Scheibe > >> > >> > >> --------------------------------------------------------------------- > >> --------- Enable your software for Intel(R) Active Management > >> Technology to meet the growing manageability and security demands of > >> your customers. > >> Businesses > >> are taking advantage of Intel(R) vPro (TM) technology - will your > >> software be a part of the solution? Download the Intel(R) > >> Manageability Checker today! http://p.sf.net/sfu/intel-dev2devmar > >> _______________________________________________ > >> Codenarc-user mailing list > >> Cod...@li... > <mailto:Cod...@li...> > >> https://lists.sourceforge.net/lists/listinfo/codenarc-user > >> > > > ------------------------------------------------------------------------------ > 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 > _______________________________________________ > Codenarc-user mailing list > Cod...@li... > <mailto:Cod...@li...> > https://lists.sourceforge.net/lists/listinfo/codenarc-user > > > ------------------------------------------------------------------------------ > 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 > _______________________________________________ > Codenarc-user mailing list > Cod...@li... > <mailto:Cod...@li...> > https://lists.sourceforge.net/lists/listinfo/codenarc-user > > > > > -- > Hamlet D'Arcy > ham...@gm... <mailto:ham...@gm...> |
From: Hamlet D'A. <ham...@gm...> - 2011-03-29 05:42:04
|
Hi René, Are there any other stack traces in the log? You said you had OOME (OutOfMemoryException?), but this trace does not have one. Also, here is the first thing I would do: change your rulesets to something very, very simple: <codenarc ruleSetFiles="rulesets/exceptions.xml"> This will run _just_ the exception rules. It should complete in under 30 seconds, even for your codebase. If that doesn't work then change it to: <codenarc ruleSetFiles="rulesets/design.xml"> The point is to find out which rule is causing the problem. We can slowly add the rest of the rulesets until the build breaks again, and then we will know which ruleset the bad rule is in. I don't think it should take more than 10 minutes or so. Also, is there any way for me to run the build? :) -- Hamlet On Tue, Mar 29, 2011 at 12:06 AM, Chris Mair <chr...@ea...>wrote: > Hmm. I also run CodeNarc against larger projects without problem. > > Can you try not including all of those ruleset files? Does it work fine > with just " rulesets/basic.xml "? Is there a "breaking point"? > > It probably does not make sense to include all of the rules anyway. The > generic rules, for instance, don't provide any value without further > configuration. And there is some overlap and even a bit of contradiction if > you include all of the rules. That being said, if there is a problem loading > all of these rulesets, we would certainly want to fix that. > > Thanks. > Chris > > -----Original Message----- > From: René Scheibe [mailto:ren...@go...] > Sent: Monday, March 28, 2011 12:42 PM > To: Hamlet DArcy > Cc: codenarc-user > Subject: Re: [Codenarc-user] 60min timeout when analyzing my project > > Hi Hamlet, > > here are some more details as requested. > > 1) We use a lot of "import some.path.*" in our tests. > > I know that Groovy supports relative imports and the Groovy compiler has a > hard time with it. > For GroovyEclipse there was already a performance patch to handle this in a > better way This reduced compile time by factor of ~10 as I remember. > > 2) codenarc.properties > > # method names can also contain spaces, " and ' (nice test descriptions) > MethodName.regex = [a-z][\\w "']* > > 3) build.xml (excerpt): > > <target name="codenarc"> > <delete dir="logs/codenarc"/> > <mkdir dir="logs/codenarc"/> > > <taskdef name="codenarc" classname="org.codenarc.ant.CodeNarcTask"> > <classpath> > <fileset dir="lib" includes="log4j*jar"/> > <fileset dir="lib" includes="antlr*jar"/> > <fileset dir="lib" includes="asm*jar"/> > <fileset dir="lib" includes="groovy*jar"/> > <fileset dir="lib" includes="CodeNarc*.jar"/> > <fileset dir="lib" includes="GMetrics*.jar"/> > </classpath> > </taskdef> > > > <codenarc ruleSetFiles="rulesets/basic.xml, > rulesets/braces.xml, > rulesets/concurrency.xml, > rulesets/design.xml, > rulesets/dry.xml, > rulesets/exceptions.xml, > rulesets/generic.xml, > rulesets/imports.xml, > rulesets/junit.xml, > rulesets/logging.xml, > rulesets/naming.xml, > rulesets/size.xml, > rulesets/unnecessary.xml, > rulesets/unused.xml"> > <fileset dir="src"> > <include name="**/*.groovy"/> > </fileset> > <report type="xml"> > <option name="outputFile" > value="logs/codenarc/CodeNarcReport.xml"/> > </report> > <report type="html"> > <option name="outputFile" > value="logs/codenarc/CodeNarcReport.html"/> > </report> > </codenarc> > </target> > > 4) stacktrace (after 60min) > build.xml:878: java.lang.AssertionError: Thread Pool terminated before > completion.. Expression: completed. Values: completed = false > at > org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:388) > at > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed(ScriptBytecodeAdapter.java:662) > at > org.codenarc.ant.AntFileSetSourceAnalyzer.executeWithThreadPool(AntFileSetSourceAnalyzer.groovy:134) > at > org.codenarc.ant.AntFileSetSourceAnalyzer.this$2$executeWithThreadPool(AntFileSetSourceAnalyzer.groovy) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) > at > org.codenarc.ant.AntFileSetSourceAnalyzer.processFileSet(AntFileSetSourceAnalyzer.groovy:118) > at > org.codenarc.ant.AntFileSetSourceAnalyzer.this$2$processFileSet(AntFileSetSourceAnalyzer.groovy) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) > at > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:362) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) > at > org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:153) > at > org.codenarc.ant.AntFileSetSourceAnalyzer$_analyze_closure1.doCall(AntFileSetSourceAnalyzer.groovy:81) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) > at > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:273) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) > at groovy.lang.Closure.call(Closure.java:282) > at groovy.lang.Closure.call(Closure.java:295) > at > org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1220) > at > org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1196) > at org.codehaus.groovy.runtime.dgm$110.invoke(Unknown Source) > at > org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:270) > at > org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) > at > org.codenarc.ant.AntFileSetSourceAnalyzer.analyze(AntFileSetSourceAnalyzer.groovy:80) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:63) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) > at org.codenarc.CodeNarcRunner.execute(CodeNarcRunner.groovy:70) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:63) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) > at org.codenarc.ant.CodeNarcTask.execute(CodeNarcTask.groovy:86) > at > org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) > at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) > at org.apache.tools.ant.Task.perform(Task.java:348) > at org.apache.tools.ant.Target.execute(Target.java:390) > at org.apache.tools.ant.Target.performTasks(Target.java:411) > at > org.apache.tools.ant.Project.executeSortedTargets(Project.java:1360) > at org.apache.tools.ant.Project.executeTarget(Project.java:1329) > at > org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) > at org.apache.tools.ant.Project.executeTargets(Project.java:1212) > at org.apache.tools.ant.Main.runBuild(Main.java:801) > at org.apache.tools.ant.Main.startAnt(Main.java:218) > at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) > at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) > > Regards, > René Scheibe > > On 03/28/2011 04:06 PM, Hamlet DArcy wrote: > > This doesn't sound right. > > I run it against much larger projects than this with no issues. > > > > 20 minutes is a crazy long time for this to run. > > > > Can you post your configuration file? > > How about your ant.xml file? > > And how about a stack trace? > > > > Thanks, > > Hamlet > > > > ----- Original Message ----- > >> Hi, > >> > >> I have a project with 200+ Groovy files (30k+ LOC) which I try to > >> analyse with CodeNarc. > >> > >> I am running CodeNarc via Ant. With default settings it runs ~20min, > >> spits out a report but also generates a lot of OOMEs. The results > >> vary a lot since sometimes some classes can be analysed and sometimes > >> they can't due to this memory issue. > >> > >> So I had to increase the memory: > >> export ANT_OPTS='-Xmx512m -XX:MaxPermSize=512m' > >> > >> With this settings after 60min I get this error: > >> "java.lang.AssertionError: Thread Pool terminated before completion.. > >> Expression: completed. Values: completed = false" > >> > >> I have seen your pre-v0.13 post that there are some issue and I have > >> seen the POOL_TIMEOUT_SECONDS in AntFileSetSourceAnalyzer. > >> > >> Can you explain the root of the problem? And is there already a > >> solution for it? > >> > >> Regards, > >> René Scheibe > >> > >> > >> --------------------------------------------------------------------- > >> --------- Enable your software for Intel(R) Active Management > >> Technology to meet the growing manageability and security demands of > >> your customers. > >> Businesses > >> are taking advantage of Intel(R) vPro (TM) technology - will your > >> software be a part of the solution? Download the Intel(R) > >> Manageability Checker today! http://p.sf.net/sfu/intel-dev2devmar > >> _______________________________________________ > >> Codenarc-user mailing list > >> Cod...@li... > >> https://lists.sourceforge.net/lists/listinfo/codenarc-user > >> > > > > ------------------------------------------------------------------------------ > 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 > _______________________________________________ > Codenarc-user mailing list > Cod...@li... > https://lists.sourceforge.net/lists/listinfo/codenarc-user > > > > ------------------------------------------------------------------------------ > 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 > _______________________________________________ > Codenarc-user mailing list > Cod...@li... > https://lists.sourceforge.net/lists/listinfo/codenarc-user > -- Hamlet D'Arcy ham...@gm... |
From: Chris M. <chr...@ea...> - 2011-03-28 22:07:04
|
Hmm. I also run CodeNarc against larger projects without problem. Can you try not including all of those ruleset files? Does it work fine with just " rulesets/basic.xml "? Is there a "breaking point"? It probably does not make sense to include all of the rules anyway. The generic rules, for instance, don't provide any value without further configuration. And there is some overlap and even a bit of contradiction if you include all of the rules. That being said, if there is a problem loading all of these rulesets, we would certainly want to fix that. Thanks. Chris -----Original Message----- From: René Scheibe [mailto:ren...@go...] Sent: Monday, March 28, 2011 12:42 PM To: Hamlet DArcy Cc: codenarc-user Subject: Re: [Codenarc-user] 60min timeout when analyzing my project Hi Hamlet, here are some more details as requested. 1) We use a lot of "import some.path.*" in our tests. I know that Groovy supports relative imports and the Groovy compiler has a hard time with it. For GroovyEclipse there was already a performance patch to handle this in a better way This reduced compile time by factor of ~10 as I remember. 2) codenarc.properties # method names can also contain spaces, " and ' (nice test descriptions) MethodName.regex = [a-z][\\w "']* 3) build.xml (excerpt): <target name="codenarc"> <delete dir="logs/codenarc"/> <mkdir dir="logs/codenarc"/> <taskdef name="codenarc" classname="org.codenarc.ant.CodeNarcTask"> <classpath> <fileset dir="lib" includes="log4j*jar"/> <fileset dir="lib" includes="antlr*jar"/> <fileset dir="lib" includes="asm*jar"/> <fileset dir="lib" includes="groovy*jar"/> <fileset dir="lib" includes="CodeNarc*.jar"/> <fileset dir="lib" includes="GMetrics*.jar"/> </classpath> </taskdef> <codenarc ruleSetFiles="rulesets/basic.xml, rulesets/braces.xml, rulesets/concurrency.xml, rulesets/design.xml, rulesets/dry.xml, rulesets/exceptions.xml, rulesets/generic.xml, rulesets/imports.xml, rulesets/junit.xml, rulesets/logging.xml, rulesets/naming.xml, rulesets/size.xml, rulesets/unnecessary.xml, rulesets/unused.xml"> <fileset dir="src"> <include name="**/*.groovy"/> </fileset> <report type="xml"> <option name="outputFile" value="logs/codenarc/CodeNarcReport.xml"/> </report> <report type="html"> <option name="outputFile" value="logs/codenarc/CodeNarcReport.html"/> </report> </codenarc> </target> 4) stacktrace (after 60min) build.xml:878: java.lang.AssertionError: Thread Pool terminated before completion.. Expression: completed. Values: completed = false at org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:388) at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed(ScriptBytecodeAdapter.java:662) at org.codenarc.ant.AntFileSetSourceAnalyzer.executeWithThreadPool(AntFileSetSourceAnalyzer.groovy:134) at org.codenarc.ant.AntFileSetSourceAnalyzer.this$2$executeWithThreadPool(AntFileSetSourceAnalyzer.groovy) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) at org.codenarc.ant.AntFileSetSourceAnalyzer.processFileSet(AntFileSetSourceAnalyzer.groovy:118) at org.codenarc.ant.AntFileSetSourceAnalyzer.this$2$processFileSet(AntFileSetSourceAnalyzer.groovy) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:362) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:153) at org.codenarc.ant.AntFileSetSourceAnalyzer$_analyze_closure1.doCall(AntFileSetSourceAnalyzer.groovy:81) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:273) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) at groovy.lang.Closure.call(Closure.java:282) at groovy.lang.Closure.call(Closure.java:295) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1220) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1196) at org.codehaus.groovy.runtime.dgm$110.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:270) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) at org.codenarc.ant.AntFileSetSourceAnalyzer.analyze(AntFileSetSourceAnalyzer.groovy:80) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:63) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) at org.codenarc.CodeNarcRunner.execute(CodeNarcRunner.groovy:70) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:63) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at org.codenarc.ant.CodeNarcTask.execute(CodeNarcTask.groovy:86) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:390) at org.apache.tools.ant.Target.performTasks(Target.java:411) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1360) at org.apache.tools.ant.Project.executeTarget(Project.java:1329) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1212) at org.apache.tools.ant.Main.runBuild(Main.java:801) at org.apache.tools.ant.Main.startAnt(Main.java:218) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) Regards, René Scheibe On 03/28/2011 04:06 PM, Hamlet DArcy wrote: > This doesn't sound right. > I run it against much larger projects than this with no issues. > > 20 minutes is a crazy long time for this to run. > > Can you post your configuration file? > How about your ant.xml file? > And how about a stack trace? > > Thanks, > Hamlet > > ----- Original Message ----- >> Hi, >> >> I have a project with 200+ Groovy files (30k+ LOC) which I try to >> analyse with CodeNarc. >> >> I am running CodeNarc via Ant. With default settings it runs ~20min, >> spits out a report but also generates a lot of OOMEs. The results >> vary a lot since sometimes some classes can be analysed and sometimes >> they can't due to this memory issue. >> >> So I had to increase the memory: >> export ANT_OPTS='-Xmx512m -XX:MaxPermSize=512m' >> >> With this settings after 60min I get this error: >> "java.lang.AssertionError: Thread Pool terminated before completion.. >> Expression: completed. Values: completed = false" >> >> I have seen your pre-v0.13 post that there are some issue and I have >> seen the POOL_TIMEOUT_SECONDS in AntFileSetSourceAnalyzer. >> >> Can you explain the root of the problem? And is there already a >> solution for it? >> >> Regards, >> René Scheibe >> >> >> --------------------------------------------------------------------- >> --------- Enable your software for Intel(R) Active Management >> Technology to meet the growing manageability and security demands of >> your customers. >> Businesses >> are taking advantage of Intel(R) vPro (TM) technology - will your >> software be a part of the solution? Download the Intel(R) >> Manageability Checker today! http://p.sf.net/sfu/intel-dev2devmar >> _______________________________________________ >> Codenarc-user mailing list >> Cod...@li... >> https://lists.sourceforge.net/lists/listinfo/codenarc-user >> ------------------------------------------------------------------------------ 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 _______________________________________________ Codenarc-user mailing list Cod...@li... https://lists.sourceforge.net/lists/listinfo/codenarc-user |
From: R. S. <ren...@go...> - 2011-03-28 16:42:00
|
Hi Hamlet, here are some more details as requested. 1) We use a lot of "import some.path.*" in our tests. I know that Groovy supports relative imports and the Groovy compiler has a hard time with it. For GroovyEclipse there was already a performance patch to handle this in a better way This reduced compile time by factor of ~10 as I remember. 2) codenarc.properties # method names can also contain spaces, " and ' (nice test descriptions) MethodName.regex = [a-z][\\w "']* 3) build.xml (excerpt): <target name="codenarc"> <delete dir="logs/codenarc"/> <mkdir dir="logs/codenarc"/> <taskdef name="codenarc" classname="org.codenarc.ant.CodeNarcTask"> <classpath> <fileset dir="lib" includes="log4j*jar"/> <fileset dir="lib" includes="antlr*jar"/> <fileset dir="lib" includes="asm*jar"/> <fileset dir="lib" includes="groovy*jar"/> <fileset dir="lib" includes="CodeNarc*.jar"/> <fileset dir="lib" includes="GMetrics*.jar"/> </classpath> </taskdef> <codenarc ruleSetFiles="rulesets/basic.xml, rulesets/braces.xml, rulesets/concurrency.xml, rulesets/design.xml, rulesets/dry.xml, rulesets/exceptions.xml, rulesets/generic.xml, rulesets/imports.xml, rulesets/junit.xml, rulesets/logging.xml, rulesets/naming.xml, rulesets/size.xml, rulesets/unnecessary.xml, rulesets/unused.xml"> <fileset dir="src"> <include name="**/*.groovy"/> </fileset> <report type="xml"> <option name="outputFile" value="logs/codenarc/CodeNarcReport.xml"/> </report> <report type="html"> <option name="outputFile" value="logs/codenarc/CodeNarcReport.html"/> </report> </codenarc> </target> 4) stacktrace (after 60min) build.xml:878: java.lang.AssertionError: Thread Pool terminated before completion.. Expression: completed. Values: completed = false at org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:388) at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed(ScriptBytecodeAdapter.java:662) at org.codenarc.ant.AntFileSetSourceAnalyzer.executeWithThreadPool(AntFileSetSourceAnalyzer.groovy:134) at org.codenarc.ant.AntFileSetSourceAnalyzer.this$2$executeWithThreadPool(AntFileSetSourceAnalyzer.groovy) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) at org.codenarc.ant.AntFileSetSourceAnalyzer.processFileSet(AntFileSetSourceAnalyzer.groovy:118) at org.codenarc.ant.AntFileSetSourceAnalyzer.this$2$processFileSet(AntFileSetSourceAnalyzer.groovy) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:362) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:153) at org.codenarc.ant.AntFileSetSourceAnalyzer$_analyze_closure1.doCall(AntFileSetSourceAnalyzer.groovy:81) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:273) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) at groovy.lang.Closure.call(Closure.java:282) at groovy.lang.Closure.call(Closure.java:295) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1220) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1196) at org.codehaus.groovy.runtime.dgm$110.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:270) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) at org.codenarc.ant.AntFileSetSourceAnalyzer.analyze(AntFileSetSourceAnalyzer.groovy:80) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:63) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) at org.codenarc.CodeNarcRunner.execute(CodeNarcRunner.groovy:70) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:63) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at org.codenarc.ant.CodeNarcTask.execute(CodeNarcTask.groovy:86) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:390) at org.apache.tools.ant.Target.performTasks(Target.java:411) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1360) at org.apache.tools.ant.Project.executeTarget(Project.java:1329) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1212) at org.apache.tools.ant.Main.runBuild(Main.java:801) at org.apache.tools.ant.Main.startAnt(Main.java:218) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) Regards, René Scheibe On 03/28/2011 04:06 PM, Hamlet DArcy wrote: > This doesn't sound right. > I run it against much larger projects than this with no issues. > > 20 minutes is a crazy long time for this to run. > > Can you post your configuration file? > How about your ant.xml file? > And how about a stack trace? > > Thanks, > Hamlet > > ----- Original Message ----- >> Hi, >> >> I have a project with 200+ Groovy files (30k+ LOC) which I try to >> analyse with CodeNarc. >> >> I am running CodeNarc via Ant. With default settings it runs ~20min, >> spits out a report but also generates a lot of OOMEs. The results >> vary a >> lot since sometimes some classes can be analysed and sometimes they >> can't due to this memory issue. >> >> So I had to increase the memory: >> export ANT_OPTS='-Xmx512m -XX:MaxPermSize=512m' >> >> With this settings after 60min I get this error: >> "java.lang.AssertionError: Thread Pool terminated before completion.. >> Expression: completed. Values: completed = false" >> >> I have seen your pre-v0.13 post that there are some issue and I have >> seen the POOL_TIMEOUT_SECONDS in AntFileSetSourceAnalyzer. >> >> Can you explain the root of the problem? And is there already a >> solution >> for it? >> >> Regards, >> René Scheibe >> >> >> ------------------------------------------------------------------------------ >> Enable your software for Intel(R) Active Management Technology to >> meet the >> growing manageability and security demands of your customers. >> Businesses >> are taking advantage of Intel(R) vPro (TM) technology - will your >> software >> be a part of the solution? Download the Intel(R) Manageability >> Checker >> today! http://p.sf.net/sfu/intel-dev2devmar >> _______________________________________________ >> Codenarc-user mailing list >> Cod...@li... >> https://lists.sourceforge.net/lists/listinfo/codenarc-user >> |
From: Hamlet D. <ham...@ca...> - 2011-03-28 14:06:26
|
This doesn't sound right. I run it against much larger projects than this with no issues. 20 minutes is a crazy long time for this to run. Can you post your configuration file? How about your ant.xml file? And how about a stack trace? Thanks, Hamlet ----- Original Message ----- > Hi, > > I have a project with 200+ Groovy files (30k+ LOC) which I try to > analyse with CodeNarc. > > I am running CodeNarc via Ant. With default settings it runs ~20min, > spits out a report but also generates a lot of OOMEs. The results > vary a > lot since sometimes some classes can be analysed and sometimes they > can't due to this memory issue. > > So I had to increase the memory: > export ANT_OPTS='-Xmx512m -XX:MaxPermSize=512m' > > With this settings after 60min I get this error: > "java.lang.AssertionError: Thread Pool terminated before completion.. > Expression: completed. Values: completed = false" > > I have seen your pre-v0.13 post that there are some issue and I have > seen the POOL_TIMEOUT_SECONDS in AntFileSetSourceAnalyzer. > > Can you explain the root of the problem? And is there already a > solution > for it? > > Regards, > René Scheibe > > > ------------------------------------------------------------------------------ > Enable your software for Intel(R) Active Management Technology to > meet the > growing manageability and security demands of your customers. > Businesses > are taking advantage of Intel(R) vPro (TM) technology - will your > software > be a part of the solution? Download the Intel(R) Manageability > Checker > today! http://p.sf.net/sfu/intel-dev2devmar > _______________________________________________ > Codenarc-user mailing list > Cod...@li... > https://lists.sourceforge.net/lists/listinfo/codenarc-user > |
From: R. S. <ren...@go...> - 2011-03-28 12:46:11
|
Hi, I have a project with 200+ Groovy files (30k+ LOC) which I try to analyse with CodeNarc. I am running CodeNarc via Ant. With default settings it runs ~20min, spits out a report but also generates a lot of OOMEs. The results vary a lot since sometimes some classes can be analysed and sometimes they can't due to this memory issue. So I had to increase the memory: export ANT_OPTS='-Xmx512m -XX:MaxPermSize=512m' With this settings after 60min I get this error: "java.lang.AssertionError: Thread Pool terminated before completion.. Expression: completed. Values: completed = false" I have seen your pre-v0.13 post that there are some issue and I have seen the POOL_TIMEOUT_SECONDS in AntFileSetSourceAnalyzer. Can you explain the root of the problem? And is there already a solution for it? Regards, René Scheibe |
From: R. S. <ren...@go...> - 2011-03-28 12:27:26
|
Hi, I have a project with 200+ Groovy files (30k+ LOC) which I try to analyse with CodeNarc. I am running CodeNarc via Ant. With default settings it runs ~20min, spits out a report but also generates a lot of OOMEs. The results vary a lot since sometimes some classes can be analysed and sometimes they can't due to this memory issue. So I had to increase the memory: export ANT_OPTS='-Xmx512m -XX:MaxPermSize=512m' With this settings after 60min I get this error: "java.lang.AssertionError: Thread Pool terminated before completion.. Expression: completed. Values: completed = false" I have seen your pre-v0.13 post that there are some issue and I have seen the POOL_TIMEOUT_SECONDS in AntFileSetSourceAnalyzer. Can you explain the root of the problem? And is there already a solution for it? Regards, René Scheibe |
From: Hamlet D'A. <ham...@gm...> - 2011-03-25 13:46:07
|
Hi everyone, I have a few requests to make of anyone implementing a CodeNarc rule: 1) Every violation should have a text message. This makes a big difference when reading a CodeNarc report. 2) Violation messages should explain what specifically is wrong. For instance, try to include the variable name/field name/class name in the message so the reader can know more what went wrong. Use ASTNode.getText() to get the text for bits of AST to print out. 3) *Always* print the class name in the message. This makes it easy to add this class to the "classToIgnore" standard property. 4) Write your own ASTNode.getText() if the default value is not correct, missing, or just bad. For instance, ClosureExpression.getText() returns the String "<not supported for ClosureExpression>". The best way to fix this is by adding this code to your rule: ClosureExpression.metaClass.getText = { return ' { -> ...} ' } This is important because I can then come back later and merge your code into Groovy-core, making the language just a little better. That is all. Thank you. -- Hamlet D'Arcy ham...@gm... |
From: Chris M. <chr...@ea...> - 2011-03-07 00:20:33
|
The CodeNarc Team is proud to announce the release of version 0.13. CodeNarc <http://codenarc.sourceforge.net/> is a static analysis tool for Groovy source code. Version 0.13 adds 40 new rules (bringing the total to 206 rules). Try it out on the CodeNarc web console <http://meetcodenarc.appspot.com/edit/14001> , running on Google App Engine. New Features * New and improved syntax for defining custom rulesets. Just list the rule names you want. No need to specify ruleset filename or rule class. No more tweaking your custom rulesets with every CodeNarc release when we add new rules to the "basic" ruleset or one of the others. Feature #3193684. * Better support for command line runners. You can now specify the report type "console" as a command line parameter, and the CodeNarc text report is output to the console instead of a file. Feature #3162487 * All rules now provide a nicely formatted message. This makes console tools and the CodeNarc Web Console much more user friendly. Feature #3162847 * Greatly improved styling of the HTML report. Feature #3192593 * Improved error messages when CodeNarc is mis-configured and configuration file does not compile. Feature #3193468 * Improved println rule. If a class defines a println() method, then it is OK to call this method because it won't dispatch to System.out.println(). Feature #3194121 New Rules Unnecessary/Dead Code * EmptyInstanceInitializer rule (basic) - Feature #3163464 - An empty instance initializer. It is safe to remove it. * EmptyStaticInitializer rule (basic) - Feature #3161685 - An empty static initializer was found. It is safe to remove it. * EmptyMethod rule (basic) - Feature #3163806 - A method was found without an implementation. If the method is overriding or implementing a parent method, then mark it with the @Override annotation. * UnnecessaryCallToSubstring rule (unnecessary) - Feature #3164688 - Calling String.substring(0) always returns the original string. This code is meaningless. * UnnecessaryModOne rule (unnecessary) - Feature #3164684 - Any expression mod 1 (exp % 1) is guaranteed to always return zero. This code is probably an error, and should be either (exp & 1) or (exp % 2). * UnnecessarySelfAssignment rule (unnecessary) - Feature #3164674 - Method contains a pointless self-assignment to a variable or property. * UnnecessaryTransientModifier rule (unnecessary) - Feature #3164672 - The field is marked as transient, but the class isn't Serializable, so marking it as transient has no effect. * UnnecessaryFail rule (junit) - Feature #3105925 - In a unit test, catching an exception and immediately calling Assert.fail() is pointless and hides the stack trace. It is better to rethrow the exception or not catch the exception at all. * UnnecessaryPublicModifier rule (unnecessary) - Feature #3166320 - The 'public' modifier is not required on methods or classes. * UnnecessaryDefInMethodDeclaration rule (unnecessary) - Feature #3165469 - If a method has a visibility modifier, then the def keyword is unneeded. For instance 'def private method() {}' is redundant and can be simplified to 'private method() {}'. * UnnecessarySemicolon rule (unnecessary) - Feature #3176207 - Semicolons as line terminators are not required in Groovy: remove them. Do not use a semicolon as a replacement for empty braces on for and while loops; this is a confusing practice. * UnnecessaryGString rule (unnecessary) - Feature #3183521 - String objects should be created with single quotes, and GString objects created with double quotes. Creating normal String objects with double quotes is confusing to readers.. Bugs/Bad Practices * AssignmentInConditional rule (basic) - An assignment operator (=) was used in a conditional test. This is usually a typo, and the comparison operator (==) was intended. * SerializableClassMustDefineSerialVersionUID rule (basic) - Feature #3161076 - Classes that implement Serializable should define a serialVersionUID. * ConsecutiveStringConcatenation rule (basic) - Feature #3163826 - Catches concatenation of two string literals on the same line. These can safely by joined. * ConsecutiveLiteralAppends rule (basic) - Feature #3161779 - Violations occur when method calls to append(Object) are chained together with literals as parameters. The chained calls can be joined into one invocation. * AddEmptyString rule (basic) - Feature #3161763 - Finds empty string literals which are being added. This is an inefficient way to convert any type to a String. * BrokenOddnessCheck rule (basic) - Feature #3164687 - The code uses x % 2 == 1 to check to see if a value is odd, but this won't work for negative numbers (e.g., (-5) % 2 == -1). If this code is intending to check for oddness, consider using x & 1 == 1, or x % 2 != 0. * ExceptionExtendsError rule (exceptions) - Feature #3161749 - Errors are system exceptions. Do not extend them. * MissingNewInThrowStatementRule (exceptions) - Feature #3166115 - Improved existing rule to catch throwing a class literal, which always causes a RuntimeException. * UseAssertTrueInsteadOfAssertEquals (junit) - Feature #3172959 - This rule was expanded to handle assert statements as well as JUnit style assertions. * GroovyLangImmutable rule (basic) - Feature #3175158 - The groovy.lang.Immutable annotation has been deprecated and replaced by groovy.transform.Immutable. Do not use the Immutable in groovy.lang. * IntegerGetInteger rule (basic) - Feature #3174771 - This rule catches usages of java.lang.Integer.getInteger(String, ...) which reads an Integer from the System properties. It is often mistakenly used to attempt to read user input or parse a String into an Integer. It is a poor piece of API to use; replace it with System.properties['prop']. * BooleanGetBoolean rule (basic) - Feature #3174770 - This rule catches usages of java.lang.Boolean.getBoolean(String) which reads a boolean from the System properties. It is often mistakenly used to attempt to read user input or parse a String into a boolean. It is a poor piece of API to use; replace it with System.properties['prop̈́']. * ChainedTest rule (junit) - Feature #3175647 - A test methodency that invokes another test method is a chained test; the methods are dependent on one another. Tests should be isolated, and not be dependent on one another. * CoupledTestCase rule (junit) - Feature #3175645 - This rule finds test cases that are coupled to other test cases, either by invoking static methods on another test case or by creating instances of another test case. If you require shared logic in test cases then extract that logic to a new class where it can properly be reused. Concurrency Problems · BusyWait rule (concurrency) - Feature #3170271 - Busy waiting (forcing a Thread.sleep() while waiting on a condition) should be avoided. Prefer using the gate and barrier objects in the java.util.concurrent package. · DoubleCheckedLocking rule (concurrency) - Feature #3170263 - This rule detects double checked locking, where a 'lock hint' is tested for null before initializing an object within a synchronized block. Double checked locking does not guarantee correctness and is an anti-pattern. · InconsistentPropertyLocking rule (concurrency) - Feature #3164700 - Class contains similarly-named get and set methods where one method of the pair is marked either @WithReadLock or @WithWriteLock and the other is not locked at all. · InconsistentPropertySynchronization rule (concurrency) - Feature #3164699 - Class contains similarly-named get and set methods where the set method is synchronized and the get method is not, or the get method is synchronized and the set method is not. · StaticCalendarField rule (concurrency) - Feature #3164702 - Calendar objects should not be used as static fields. Calendars are inherently unsafe for multithreaded use. Sharing a single instance across thread boundaries without proper synchronization will result in erratic behavior of the application. · StaticDateFormatField rule (concurrency) - DateFormat objects should not be used as static fields. DateFormat are inherently unsafe for multithreaded use. Sharing a single instance across thread boundaries without proper synchronization will result in erratic behavior of the application. · StaticMatcherField rule (concurrency) - Feature #3170276 - Matcher objects should not be used as static fields. Calendars are inherently unsafe for multithreaded use. Sharing a single instance across thread boundaries without proper synchronization will result in erratic behavior of the application. · SynchronizedOnBoxedPrimitive rule (concurrency) - Feature #3164708 - The code synchronizes on a boxed primitive constant, such as an Integer. Since Integer objects can be cached and shared, this code could be synchronizing on the same object as other, unrelated code, leading to unresponsiveness and possible deadlock · SynchronizedOnReentrantLock rule (concurrency) - Feature #3170262 - Synchronizing on a ReentrantLock field is almost never the intended usage. A ReentrantLock should be obtained using the lock() method and released in a finally block using the unlock() method. · SynchronizedOnString rule (concurrency) - Feature #3164707 - Synchronization on a String field can lead to deadlock because Strings are interned by the JVM and can be shared. · SynchronizedReadObjectMethod rule (concurrency) - Feature #3164704 - Catches Serializable classes that define a synchronized readObject method. By definition, an object created by deserialization is only reachable by one thread, and thus there is no need for readObject() to be synchronized. If the readObject() method itself is causing the object to become visible to another thread, that is an example of very dubious coding style. · ThreadGroup rule (concurrency) - Feature #3161692 - Avoid using ThreadGroup; although it is intended to be used in a threaded environment it contains methods that are not thread safe. · VolatileArrayField rule (concurrency) - Feature #3170265 - Volatile array fields are unsafe because the contents of the array are not treated as volatile. Changing the entire array reference is visible to other threads, but changing an array element is not. · WaitOutsideOfWhileLoop rule (concurrency) - Feature #3127703 - Calls to Object.wait() must be within a while loop. This ensures that the awaited condition has not already been satisfied by another thread before the wait() is invoked. It also ensures that the proper thread was resumed and guards against incorrect notification. Bug Fixes * Fix Bug #3162499 UnnecessaryObjectReferences: This rule was not ignoring 'this' references, leading to false positives. * Fix Bug #3164150 UnnecessaryReturnKeyword: Rule is no longer triggered if the return is for a closure. * Fix Bug #3165139 LoggingSwallowsStacktrace: No longer reports multiple logger errors. * Fix bug #3166311: Error on numeric/boolean property values if they contain leading or trailing whitespace in "codenarc.properties" or in XML ruleset file. * Fix bug #3170295: @SuppressWarnings does not work with GMetrics-based rules (CC and ABC). * Fix bug #3190483: The UnusedPrivateField rule now ignores fields named serialVersionUID. The rule has a property called ignoreFieldNames that can be used to add other ignores as well. * Fix bug #3162975: The UnusedPrivate* rules now correctly read anonymous classes. * Fix bug #3155974: The UnusedPrivate* rules now correctly read inner classes. * Fix bug #3183443: Restricted the ConfusingTernary rule to reduce false positives. The rule looks for inverted conditionals in ternary statements. It did not account for Groovy Truth, and suggested 'x != null' be inverted to 'x', but that is not the inverse. So the rule was relaxed. * Fix bug #3195027: The violation message for "Replace Getter with Property Access" suggests converting ".getURLs()" to ".uRLs". This has been corrected to ".URLs". * Fix bug #3196019: Compiling files with unresolved Grapes dependencies no longer causes an error.. Potential Breaking Changes * addViolation(ASTNode) is deprecated. Instead use addViolation(ASTNode, String) when adding violations to the output. Thanks * Many thanks to Mathilde Lemée, Guillaume Laforge, and Tim Yates for helping us redesign our HTML report. * Big thanks to Evgeny Goldin and Cédric Champeau for reporting bugs which helps us improve the product so much faster.. Visit the CodeNarc Home Page <http://codenarc.sourceforge.net/> |
From: Hamlet D'A. <ham...@gm...> - 2011-03-03 10:30:40
|
Hi all, The Griffon CodeNarc plugin is updated to CodeNarc 0.13 RC1. Any Griffon users out there? Now would be a great time to test the new rules. -- Hamlet D'Arcy ham...@gm... |
From: Chris M. <chr...@ea...> - 2011-03-03 01:04:26
|
A CodeNarc-0.13-RC1.jar is available in Maven2 Central Repo. groupId: org.codenarc artifactId: CodeNarc version: 0.13-RC1 It took a whole day to replicate into the central repo, so note that this release is from Tuesday March 1st @ 22:00 EST (I know that bug #3196019 was fixed since then). Chris |
From: Cédric C. <ced...@gm...> - 2011-03-02 21:43:03
|
Great, thanks ! Le 02/03/2011 13:04, Hamlet D'Arcy a écrit : > This is fixed in version 0.13 > > The problem is that @Grab resolves dependences at compile time. Since > CodeNarc partially compiles the code, the resolution kicked in. > > The solution was to remove the @Grab AST Transformation from the > compilation process. > > > > > > On Tue, Mar 1, 2011 at 10:24 AM, Hamlet DArcy<ham...@ca...> wrote: >> That sounds like the problem. >> >> I'll try to test it locally. >> >> ----- Original Message ----- >>> It can be so. I didn't dig into @Grab resolving code, but from the >>> stacktrace, NoClassDefFoundError just means that a dependency of some >>> class is ivy so you may be right that it actually doesn't try to >>> download anything. I didn't try to run a unit test with CodeNarc to >>> check if this happens with a simple groovy file though. >>> >>> Le 01/03/2011 10:12, Hamlet D'Arcy a écrit : >>>> To my knowledge, CodeNarc does not trigger an @Grab resolution. >>>> >>>> Do you think this can be caused by CodeNarc having a Class >>>> reference >>>> to @Grab instead of a String reference to "groovy.Grab"? That is >>>> probably what happens, is CodeNarc tries to convert this text into >>>> a >>>> Class file, which loads the class. >>>> >>>> What do you think? >>>> >>>> >>> >>> ------------------------------------------------------------------------------ >>> Free Software Download: Index, Search& Analyze Logs and other IT >>> data in >>> Real-Time with Splunk. Collect, index and harness all the fast moving >>> IT data >>> generated by your applications, servers and devices whether physical, >>> virtual >>> or in the cloud. Deliver compliance at lower cost and gain new >>> business >>> insights. http://p.sf.net/sfu/splunk-dev2dev >>> _______________________________________________ >>> Codenarc-user mailing list >>> Cod...@li... >>> https://lists.sourceforge.net/lists/listinfo/codenarc-user >>> >> ------------------------------------------------------------------------------ >> Free Software Download: Index, Search& Analyze Logs and other IT data in >> Real-Time with Splunk. Collect, index and harness all the fast moving IT data >> generated by your applications, servers and devices whether physical, virtual >> or in the cloud. Deliver compliance at lower cost and gain new business >> insights. http://p.sf.net/sfu/splunk-dev2dev >> _______________________________________________ >> Codenarc-user mailing list >> Cod...@li... >> https://lists.sourceforge.net/lists/listinfo/codenarc-user >> > > |
From: Hamlet D'A. <ham...@gm...> - 2011-03-02 14:01:01
|
Do you know the type of the mailing list? Options are: CommuniGate Ecartis ezmlm Lyris</option Mailman 2.0.* Mailman 2.1.* Majordomo majordomo2 mlmmj SmartList Sympa Unknown or Other On Tue, Mar 1, 2011 at 1:51 PM, <chr...@wa...> wrote: > > Yes, I also agree about the Nabble archive. Feel free to set that up. > Thanks! > > Chris > > Hamlet DArcy <ham...@ca...> wrote on 03/01/2011 04:20:28 AM: > >> The next release (days away) has a redesigned front page that >> highlights the project links a lot better. >> >> Chris, I agree with a Nabble archive... should we set that up? >> >> -- >> Hamlet >> >> >> >> ----- Original Message ----- >> > Hi again, >> > >> > There's something which is really wrong with CodeNarc IMHO : access >> > to >> > support. From the web site, it's really a pain to find out where the >> > ML >> > are. You have to click on : >> > >> > - "SourceForge project" >> > - Then "support" >> > - then "Codenarc-user" >> > - fill-in the form >> > - or if you are lucky, click on "codenarc archives" >> > >> > The latter brings us to the user-unfriendly ML front-end from >> > SourceForge. I think this is way too complicated (so complicated that >> > searching for codenarc posts on google won't guide you to the ML >> > either), and I strongly suggest to register to a friendly front-end >> > like >> > Nabble. It's just a few clicks away. Nabble is well-indexed by Google >> > and has a reasonable UI. Eventually, I'd add direct links from the CN >> > homepage to the MLs. >> > >> > http://n3.nabble.com/archive-your-mailing-list.html >> > >> > Cédric >> > >> > >> > >> >> ------------------------------------------------------------------------------ >> > Free Software Download: Index, Search & Analyze Logs and other IT >> > data in >> > Real-Time with Splunk. Collect, index and harness all the fast moving >> > IT data >> > generated by your applications, servers and devices whether physical, >> > virtual >> > or in the cloud. Deliver compliance at lower cost and gain new >> > business >> > insights. http://p.sf.net/sfu/splunk-dev2dev >> > _______________________________________________ >> > Codenarc-user mailing list >> > Cod...@li... >> > https://lists.sourceforge.net/lists/listinfo/codenarc-user >> > >> >> >> ------------------------------------------------------------------------------ >> Free Software Download: Index, Search & Analyze Logs and other IT data in >> Real-Time with Splunk. Collect, index and harness all the fast moving IT >> data >> generated by your applications, servers and devices whether physical, >> virtual >> or in the cloud. Deliver compliance at lower cost and gain new business >> insights. http://p.sf.net/sfu/splunk-dev2dev >> _______________________________________________ >> Codenarc-user mailing list >> Cod...@li... >> https://lists.sourceforge.net/lists/listinfo/codenarc-user > >> ForwardSourceID:NT0010455E > ------------------------------------------------------------------------------ > Free Software Download: Index, Search & Analyze Logs and other IT data in > Real-Time with Splunk. Collect, index and harness all the fast moving IT > data > generated by your applications, servers and devices whether physical, > virtual > or in the cloud. Deliver compliance at lower cost and gain new business > insights. http://p.sf.net/sfu/splunk-dev2dev > _______________________________________________ > Codenarc-user mailing list > Cod...@li... > https://lists.sourceforge.net/lists/listinfo/codenarc-user > > -- Hamlet D'Arcy ham...@gm... |
From: Hamlet D. <ham...@ca...> - 2011-03-02 12:05:38
|
I also found this interesting set of static analysis rules: https://www.securecoding.cert.org/confluence/display/java/The+CERT+Oracle+Secure+Coding+Standard+for+Java Fortify rules are here: https://www.fortify.com/vulncat/en/vulncat/index.html I predict that CodeNarc gets a "security" ruleset in a future release :) ----- Original Message ----- > Hi everyone, > > Is anyone using Fortify, HPs static analysis tool? > > It doesn't cover Groovy, but it seems like CodeNarc could expand our > ruleset based on their information. > > Just wondering... > > -- > Hamlet D'Arcy > ham...@ca... > > |
From: Hamlet D'A. <ham...@gm...> - 2011-03-02 12:04:33
|
This is fixed in version 0.13 The problem is that @Grab resolves dependences at compile time. Since CodeNarc partially compiles the code, the resolution kicked in. The solution was to remove the @Grab AST Transformation from the compilation process. On Tue, Mar 1, 2011 at 10:24 AM, Hamlet DArcy <ham...@ca...> wrote: > That sounds like the problem. > > I'll try to test it locally. > > ----- Original Message ----- >> It can be so. I didn't dig into @Grab resolving code, but from the >> stacktrace, NoClassDefFoundError just means that a dependency of some >> class is ivy so you may be right that it actually doesn't try to >> download anything. I didn't try to run a unit test with CodeNarc to >> check if this happens with a simple groovy file though. >> >> Le 01/03/2011 10:12, Hamlet D'Arcy a écrit : >> > To my knowledge, CodeNarc does not trigger an @Grab resolution. >> > >> > Do you think this can be caused by CodeNarc having a Class >> > reference >> > to @Grab instead of a String reference to "groovy.Grab"? That is >> > probably what happens, is CodeNarc tries to convert this text into >> > a >> > Class file, which loads the class. >> > >> > What do you think? >> > >> > >> >> >> ------------------------------------------------------------------------------ >> Free Software Download: Index, Search & Analyze Logs and other IT >> data in >> Real-Time with Splunk. Collect, index and harness all the fast moving >> IT data >> generated by your applications, servers and devices whether physical, >> virtual >> or in the cloud. Deliver compliance at lower cost and gain new >> business >> insights. http://p.sf.net/sfu/splunk-dev2dev >> _______________________________________________ >> Codenarc-user mailing list >> Cod...@li... >> https://lists.sourceforge.net/lists/listinfo/codenarc-user >> > > ------------------------------------------------------------------------------ > Free Software Download: Index, Search & Analyze Logs and other IT data in > Real-Time with Splunk. Collect, index and harness all the fast moving IT data > generated by your applications, servers and devices whether physical, virtual > or in the cloud. Deliver compliance at lower cost and gain new business > insights. http://p.sf.net/sfu/splunk-dev2dev > _______________________________________________ > Codenarc-user mailing list > Cod...@li... > https://lists.sourceforge.net/lists/listinfo/codenarc-user > -- Hamlet D'Arcy ham...@gm... |
From: Hamlet D. <ham...@ca...> - 2011-03-02 08:50:09
|
Hi everyone, Is anyone using Fortify, HPs static analysis tool? It doesn't cover Groovy, but it seems like CodeNarc could expand our ruleset based on their information. Just wondering... -- Hamlet D'Arcy ham...@ca... |
From: <chr...@wa...> - 2011-03-01 12:55:56
|
I am not tied to the Maven site or look-and-feel either. But actually we can upload individual site files at any time. I use WinSCP and it is pretty straightforward and relatively quick. Like you said, we just need to be careful about not advertising rules and features that are not generally available. Chris Hamlet DArcy <ham...@ca...> wrote on 03/01/2011 04:30:11 AM: > > > Chris, I agree with a Nabble archive... should we set that up? > > Honestly, I don't like Maven Site at all. > > Using Site means we can only update the website with a release of > the software. But there are a tons of things I'd like to edit > without having a release. Rule documentation is sensibly tied to a > release, because rules are tied to a release. But css changes, logo > changes, site layout... this stuff shouldn't be tied to a release. > > I don't know if we'll change anything... but what I would to (if I > had infinite time) is remove Maven Site generation for everything > but the rules. Leave the rules in the .apt format, but move > navigation, styles, and everything else into static pages that are > just edited and uploaded whenever we want. > > Just my opinion, which no one asked for. > > > > ----- Original Message ----- > > Great, thanks ! > > > > Le 01/03/2011 10:20, Hamlet DArcy a écrit : > > > The next release (days away) has a redesigned front page that > > > highlights the project links a lot better. > > > > > > Chris, I agree with a Nabble archive... should we set that up? > > > > > > -- > > > Hamlet > > > > > > > > > > > > ----- Original Message ----- > > >> Hi again, > > >> > > >> There's something which is really wrong with CodeNarc IMHO : > > >> access > > >> to > > >> support. From the web site, it's really a pain to find out where > > >> the > > >> ML > > >> are. You have to click on : > > >> > > >> - "SourceForge project" > > >> - Then "support" > > >> - then "Codenarc-user" > > >> - fill-in the form > > >> - or if you are lucky, click on "codenarc archives" > > >> > > >> The latter brings us to the user-unfriendly ML front-end from > > >> SourceForge. I think this is way too complicated (so complicated > > >> that > > >> searching for codenarc posts on google won't guide you to the ML > > >> either), and I strongly suggest to register to a friendly > > >> front-end > > >> like > > >> Nabble. It's just a few clicks away. Nabble is well-indexed by > > >> Google > > >> and has a reasonable UI. Eventually, I'd add direct links from the > > >> CN > > >> homepage to the MLs. > > >> > > >> http://n3.nabble.com/archive-your-mailing-list.html > > >> > > >> Cédric > > >> > > >> > > >> > ------------------------------------------------------------------------------ > > >> Free Software Download: Index, Search& Analyze Logs and other IT > > >> data in > > >> Real-Time with Splunk. Collect, index and harness all the fast > > >> moving > > >> IT data > > >> generated by your applications, servers and devices whether > > >> physical, > > >> virtual > > >> or in the cloud. Deliver compliance at lower cost and gain new > > >> business > > >> insights. http://p.sf.net/sfu/splunk-dev2dev > > >> _______________________________________________ > > >> Codenarc-user mailing list > > >> Cod...@li... > > >> https://lists.sourceforge.net/lists/listinfo/codenarc-user > > >> > > > > > > > ------------------------------------------------------------------------------ > > Free Software Download: Index, Search & Analyze Logs and other IT > > data in > > Real-Time with Splunk. Collect, index and harness all the fast moving > > IT data > > generated by your applications, servers and devices whether physical, > > virtual > > or in the cloud. Deliver compliance at lower cost and gain new > > business > > insights. http://p.sf.net/sfu/splunk-dev2dev > > _______________________________________________ > > Codenarc-user mailing list > > Cod...@li... > > https://lists.sourceforge.net/lists/listinfo/codenarc-user > > > > ------------------------------------------------------------------------------ > Free Software Download: Index, Search & Analyze Logs and other IT data in > Real-Time with Splunk. Collect, index and harness all the fast moving IT data > generated by your applications, servers and devices whether physical, virtual > or in the cloud. Deliver compliance at lower cost and gain new business > insights. http://p.sf.net/sfu/splunk-dev2dev > _______________________________________________ > Codenarc-user mailing list > Cod...@li... > https://lists.sourceforge.net/lists/listinfo/codenarc-user > ForwardSourceID:NT00104582 |
From: <chr...@wa...> - 2011-03-01 12:51:42
|
Yes, I also agree about the Nabble archive. Feel free to set that up. Thanks! Chris Hamlet DArcy <ham...@ca...> wrote on 03/01/2011 04:20:28 AM: > The next release (days away) has a redesigned front page that > highlights the project links a lot better. > > Chris, I agree with a Nabble archive... should we set that up? > > -- > Hamlet > > > > ----- Original Message ----- > > Hi again, > > > > There's something which is really wrong with CodeNarc IMHO : access > > to > > support. From the web site, it's really a pain to find out where the > > ML > > are. You have to click on : > > > > - "SourceForge project" > > - Then "support" > > - then "Codenarc-user" > > - fill-in the form > > - or if you are lucky, click on "codenarc archives" > > > > The latter brings us to the user-unfriendly ML front-end from > > SourceForge. I think this is way too complicated (so complicated that > > searching for codenarc posts on google won't guide you to the ML > > either), and I strongly suggest to register to a friendly front-end > > like > > Nabble. It's just a few clicks away. Nabble is well-indexed by Google > > and has a reasonable UI. Eventually, I'd add direct links from the CN > > homepage to the MLs. > > > > http://n3.nabble.com/archive-your-mailing-list.html > > > > Cédric > > > > > > > ------------------------------------------------------------------------------ > > Free Software Download: Index, Search & Analyze Logs and other IT > > data in > > Real-Time with Splunk. Collect, index and harness all the fast moving > > IT data > > generated by your applications, servers and devices whether physical, > > virtual > > or in the cloud. Deliver compliance at lower cost and gain new > > business > > insights. http://p.sf.net/sfu/splunk-dev2dev > > _______________________________________________ > > Codenarc-user mailing list > > Cod...@li... > > https://lists.sourceforge.net/lists/listinfo/codenarc-user > > > > ------------------------------------------------------------------------------ > Free Software Download: Index, Search & Analyze Logs and other IT data in > Real-Time with Splunk. Collect, index and harness all the fast moving IT data > generated by your applications, servers and devices whether physical, virtual > or in the cloud. Deliver compliance at lower cost and gain new business > insights. http://p.sf.net/sfu/splunk-dev2dev > _______________________________________________ > Codenarc-user mailing list > Cod...@li... > https://lists.sourceforge.net/lists/listinfo/codenarc-user > ForwardSourceID:NT0010455E |
From: Hamlet D. <ham...@ca...> - 2011-03-01 09:30:19
|
> > Chris, I agree with a Nabble archive... should we set that up? Honestly, I don't like Maven Site at all. Using Site means we can only update the website with a release of the software. But there are a tons of things I'd like to edit without having a release. Rule documentation is sensibly tied to a release, because rules are tied to a release. But css changes, logo changes, site layout... this stuff shouldn't be tied to a release. I don't know if we'll change anything... but what I would to (if I had infinite time) is remove Maven Site generation for everything but the rules. Leave the rules in the .apt format, but move navigation, styles, and everything else into static pages that are just edited and uploaded whenever we want. Just my opinion, which no one asked for. ----- Original Message ----- > Great, thanks ! > > Le 01/03/2011 10:20, Hamlet DArcy a écrit : > > The next release (days away) has a redesigned front page that > > highlights the project links a lot better. > > > > Chris, I agree with a Nabble archive... should we set that up? > > > > -- > > Hamlet > > > > > > > > ----- Original Message ----- > >> Hi again, > >> > >> There's something which is really wrong with CodeNarc IMHO : > >> access > >> to > >> support. From the web site, it's really a pain to find out where > >> the > >> ML > >> are. You have to click on : > >> > >> - "SourceForge project" > >> - Then "support" > >> - then "Codenarc-user" > >> - fill-in the form > >> - or if you are lucky, click on "codenarc archives" > >> > >> The latter brings us to the user-unfriendly ML front-end from > >> SourceForge. I think this is way too complicated (so complicated > >> that > >> searching for codenarc posts on google won't guide you to the ML > >> either), and I strongly suggest to register to a friendly > >> front-end > >> like > >> Nabble. It's just a few clicks away. Nabble is well-indexed by > >> Google > >> and has a reasonable UI. Eventually, I'd add direct links from the > >> CN > >> homepage to the MLs. > >> > >> http://n3.nabble.com/archive-your-mailing-list.html > >> > >> Cédric > >> > >> > >> ------------------------------------------------------------------------------ > >> Free Software Download: Index, Search& Analyze Logs and other IT > >> data in > >> Real-Time with Splunk. Collect, index and harness all the fast > >> moving > >> IT data > >> generated by your applications, servers and devices whether > >> physical, > >> virtual > >> or in the cloud. Deliver compliance at lower cost and gain new > >> business > >> insights. http://p.sf.net/sfu/splunk-dev2dev > >> _______________________________________________ > >> Codenarc-user mailing list > >> Cod...@li... > >> https://lists.sourceforge.net/lists/listinfo/codenarc-user > >> > > > ------------------------------------------------------------------------------ > Free Software Download: Index, Search & Analyze Logs and other IT > data in > Real-Time with Splunk. Collect, index and harness all the fast moving > IT data > generated by your applications, servers and devices whether physical, > virtual > or in the cloud. Deliver compliance at lower cost and gain new > business > insights. http://p.sf.net/sfu/splunk-dev2dev > _______________________________________________ > Codenarc-user mailing list > Cod...@li... > https://lists.sourceforge.net/lists/listinfo/codenarc-user > |
From: Hamlet D. <ham...@ca...> - 2011-03-01 09:24:40
|
That sounds like the problem. I'll try to test it locally. ----- Original Message ----- > It can be so. I didn't dig into @Grab resolving code, but from the > stacktrace, NoClassDefFoundError just means that a dependency of some > class is ivy so you may be right that it actually doesn't try to > download anything. I didn't try to run a unit test with CodeNarc to > check if this happens with a simple groovy file though. > > Le 01/03/2011 10:12, Hamlet D'Arcy a écrit : > > To my knowledge, CodeNarc does not trigger an @Grab resolution. > > > > Do you think this can be caused by CodeNarc having a Class > > reference > > to @Grab instead of a String reference to "groovy.Grab"? That is > > probably what happens, is CodeNarc tries to convert this text into > > a > > Class file, which loads the class. > > > > What do you think? > > > > > > > ------------------------------------------------------------------------------ > Free Software Download: Index, Search & Analyze Logs and other IT > data in > Real-Time with Splunk. Collect, index and harness all the fast moving > IT data > generated by your applications, servers and devices whether physical, > virtual > or in the cloud. Deliver compliance at lower cost and gain new > business > insights. http://p.sf.net/sfu/splunk-dev2dev > _______________________________________________ > Codenarc-user mailing list > Cod...@li... > https://lists.sourceforge.net/lists/listinfo/codenarc-user > |
From: Cédric C. <ced...@gm...> - 2011-03-01 09:23:43
|
Great, thanks ! Le 01/03/2011 10:20, Hamlet DArcy a écrit : > The next release (days away) has a redesigned front page that highlights the project links a lot better. > > Chris, I agree with a Nabble archive... should we set that up? > > -- > Hamlet > > > > ----- Original Message ----- >> Hi again, >> >> There's something which is really wrong with CodeNarc IMHO : access >> to >> support. From the web site, it's really a pain to find out where the >> ML >> are. You have to click on : >> >> - "SourceForge project" >> - Then "support" >> - then "Codenarc-user" >> - fill-in the form >> - or if you are lucky, click on "codenarc archives" >> >> The latter brings us to the user-unfriendly ML front-end from >> SourceForge. I think this is way too complicated (so complicated that >> searching for codenarc posts on google won't guide you to the ML >> either), and I strongly suggest to register to a friendly front-end >> like >> Nabble. It's just a few clicks away. Nabble is well-indexed by Google >> and has a reasonable UI. Eventually, I'd add direct links from the CN >> homepage to the MLs. >> >> http://n3.nabble.com/archive-your-mailing-list.html >> >> Cédric >> >> >> ------------------------------------------------------------------------------ >> Free Software Download: Index, Search& Analyze Logs and other IT >> data in >> Real-Time with Splunk. Collect, index and harness all the fast moving >> IT data >> generated by your applications, servers and devices whether physical, >> virtual >> or in the cloud. Deliver compliance at lower cost and gain new >> business >> insights. http://p.sf.net/sfu/splunk-dev2dev >> _______________________________________________ >> Codenarc-user mailing list >> Cod...@li... >> https://lists.sourceforge.net/lists/listinfo/codenarc-user >> |
From: Cédric C. <ced...@gm...> - 2011-03-01 09:22:23
|
It can be so. I didn't dig into @Grab resolving code, but from the stacktrace, NoClassDefFoundError just means that a dependency of some class is ivy so you may be right that it actually doesn't try to download anything. I didn't try to run a unit test with CodeNarc to check if this happens with a simple groovy file though. Le 01/03/2011 10:12, Hamlet D'Arcy a écrit : > To my knowledge, CodeNarc does not trigger an @Grab resolution. > > Do you think this can be caused by CodeNarc having a Class reference > to @Grab instead of a String reference to "groovy.Grab"? That is > probably what happens, is CodeNarc tries to convert this text into a > Class file, which loads the class. > > What do you think? > > |
From: Hamlet D. <ham...@ca...> - 2011-03-01 09:20:35
|
The next release (days away) has a redesigned front page that highlights the project links a lot better. Chris, I agree with a Nabble archive... should we set that up? -- Hamlet ----- Original Message ----- > Hi again, > > There's something which is really wrong with CodeNarc IMHO : access > to > support. From the web site, it's really a pain to find out where the > ML > are. You have to click on : > > - "SourceForge project" > - Then "support" > - then "Codenarc-user" > - fill-in the form > - or if you are lucky, click on "codenarc archives" > > The latter brings us to the user-unfriendly ML front-end from > SourceForge. I think this is way too complicated (so complicated that > searching for codenarc posts on google won't guide you to the ML > either), and I strongly suggest to register to a friendly front-end > like > Nabble. It's just a few clicks away. Nabble is well-indexed by Google > and has a reasonable UI. Eventually, I'd add direct links from the CN > homepage to the MLs. > > http://n3.nabble.com/archive-your-mailing-list.html > > Cédric > > > ------------------------------------------------------------------------------ > Free Software Download: Index, Search & Analyze Logs and other IT > data in > Real-Time with Splunk. Collect, index and harness all the fast moving > IT data > generated by your applications, servers and devices whether physical, > virtual > or in the cloud. Deliver compliance at lower cost and gain new > business > insights. http://p.sf.net/sfu/splunk-dev2dev > _______________________________________________ > Codenarc-user mailing list > Cod...@li... > https://lists.sourceforge.net/lists/listinfo/codenarc-user > |
From: Cédric C. <ced...@gm...> - 2011-03-01 09:17:32
|
Hi again, There's something which is really wrong with CodeNarc IMHO : access to support. From the web site, it's really a pain to find out where the ML are. You have to click on : - "SourceForge project" - Then "support" - then "Codenarc-user" - fill-in the form - or if you are lucky, click on "codenarc archives" The latter brings us to the user-unfriendly ML front-end from SourceForge. I think this is way too complicated (so complicated that searching for codenarc posts on google won't guide you to the ML either), and I strongly suggest to register to a friendly front-end like Nabble. It's just a few clicks away. Nabble is well-indexed by Google and has a reasonable UI. Eventually, I'd add direct links from the CN homepage to the MLs. http://n3.nabble.com/archive-your-mailing-list.html Cédric |