[ http://jira.codehaus.org/browse/MSUREFIRE-145?page=comments#action_69330 
] 

Brett Porter commented on MSUREFIRE-145:
----------------------------------------

can you post the problem instead of the solution, since I think you have 
misdiagnosed this.

I can't reproduce it. With:
<systemProperties>
  <property><name>cargo</name><value>blargo</value></property>
</systemProperties>

and an assertion in the test case that checks the system property, it works 
with forkModes of once, never and always.

The mistaken assumptions you have above:
- isForking is true when forkMode is once and never, despite what you said.
- when forking, the system properties are passed on to surefire to set on the 
child process, not set immediately. Therefore, the expression is !isForking 
because you only want to set the system properties if you are *not* forking
- the logs are not misleading. The system properties are always set, just in 
different JVMs.

> Plugin not longer sets system properties when forking is on and debugging 
> information is not correct
> ----------------------------------------------------------------------------------------------------
>
>          Key: MSUREFIRE-145
>          URL: http://jira.codehaus.org/browse/MSUREFIRE-145
>      Project: Maven 2.x Surefire Plugin
>         Type: Bug

>     Versions: 2.3
>     Reporter: Vincent Massol
>     Priority: Blocker

>
>
> The following code is in SurefirePlugin.java:
> {code:java}
>         processSystemProperties( !fork.isForking() );
>         if ( getLog().isDebugEnabled() )
>         {
>             showMap( systemProperties, "system property" );
>         }
> {code}
> 2 problems:
> 1) fork.isForking() is false when forking is enabled and thus system 
> properties are not set:
> {code:java}
>     protected void processSystemProperties( boolean setInSystem )
>     {
> [...]
>         if ( setInSystem )
>         {
>             // Add all system properties configured by the user
>             Iterator iter = systemProperties.keySet().iterator();
>             while ( iter.hasNext() )
>             {
>                 String key = (String) iter.next();
>                 String value = systemProperties.getProperty( key );
>                 System.setProperty( key, value );
>             }
>         }
>     }
> {code}
> 2)  showMap() is called regardless of whether the system properties are set 
> or not, leading to the following kind of misleading logs:
> {noformat}
> [...]
> [DEBUG] Setting system property [cargo.jetty4x.port]=[8280]
> [DEBUG] Setting system property [cargo.jetty6x.port]=[8280]
> [DEBUG] Setting system property [cargo.jetty5x.port]=[8280]
> [...]
> {noformat}
> Those properties are actually NOT set.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to