You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ol...@apache.org on 2013/11/06 02:31:26 UTC

svn commit: r1539209 - /tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java

Author: olamy
Date: Wed Nov  6 01:31:25 2013
New Revision: 1539209

URL: http://svn.apache.org/r1539209
Log:
[MTOMCAT-211] The .war file is not extracted from executable war

Modified:
    tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java

Modified: tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java
URL: http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java?rev=1539209&r1=1539208&r2=1539209&view=diff
==============================================================================
--- tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java (original)
+++ tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java Wed Nov  6 01:31:25 2013
@@ -560,28 +560,35 @@ public class Tomcat7Runner
             InputStream inputStream = null;
             try
             {
+                File expandFile = null;
                 inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream( entry.getValue() );
                 if ( !useServerXml() )
                 {
                     if ( entry.getKey().equals( "/" ) )
                     {
-                        File expandFile = new File( extractDirectory, "webapps/ROOT.war" );
-                        debugMessage( "expand to file:" + expandFile.getPath() );
-                        expand( inputStream, expandFile );
+                        expandFile = new File( extractDirectory, "webapps/ROOT.war" );
                     }
                     else
                     {
-                        File expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
-                        debugMessage( "expand to file:" + expandFile.getPath() );
-                        expand( inputStream, expandFile );
+                        expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
                     }
                 }
                 else
                 {
-                    File expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
-                    debugMessage( "expand to file:" + expandFile.getPath() );
-                    expand( inputStream, new File( extractDirectory, "webapps/" + entry.getValue() ) );
+                    expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
                 }
+
+                debugMessage( "expand to file:" + expandFile.getPath() );
+
+                // MTOMCAT-211 ensure parent directories created
+
+                if ( !expandFile.getParentFile().mkdirs() )
+                {
+                    throw new Exception( "FATAL: impossible to create directories:" + expandFile.getParentFile() );
+                }
+
+                expand( inputStream, expandFile );
+
             }
             finally
             {



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: svn commit: r1539209 - /tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java

Posted by Olivier Lamy <ol...@apache.org>.
fixed.
Thanks for review.


On 7 November 2013 17:56, Konstantin Kolinko <kn...@gmail.com> wrote:
> 2013/11/6  <ol...@apache.org>:
>> Author: olamy
>> Date: Wed Nov  6 01:31:25 2013
>> New Revision: 1539209
>>
>> URL: http://svn.apache.org/r1539209
>> Log:
>> [MTOMCAT-211] The .war file is not extracted from executable war
>>
>> Modified:
>>     tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java
>>
>> Modified: tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java
>> URL: http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java?rev=1539209&r1=1539208&r2=1539209&view=diff
>> ==============================================================================
>> --- tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java (original)
>> +++ tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java Wed Nov  6 01:31:25 2013
>> @@ -560,28 +560,35 @@ public class Tomcat7Runner
>>              InputStream inputStream = null;
>>              try
>>              {
>> +                File expandFile = null;
>>                  inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream( entry.getValue() );
>>                  if ( !useServerXml() )
>>                  {
>>                      if ( entry.getKey().equals( "/" ) )
>>                      {
>> -                        File expandFile = new File( extractDirectory, "webapps/ROOT.war" );
>> -                        debugMessage( "expand to file:" + expandFile.getPath() );
>> -                        expand( inputStream, expandFile );
>> +                        expandFile = new File( extractDirectory, "webapps/ROOT.war" );
>>                      }
>>                      else
>>                      {
>> -                        File expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
>> -                        debugMessage( "expand to file:" + expandFile.getPath() );
>> -                        expand( inputStream, expandFile );
>> +                        expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
>>                      }
>>                  }
>>                  else
>>                  {
>> -                    File expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
>> -                    debugMessage( "expand to file:" + expandFile.getPath() );
>> -                    expand( inputStream, new File( extractDirectory, "webapps/" + entry.getValue() ) );
>> +                    expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
>>                  }
>> +
>> +                debugMessage( "expand to file:" + expandFile.getPath() );
>> +
>> +                // MTOMCAT-211 ensure parent directories created
>> +
>> +                if ( !expandFile.getParentFile().mkdirs() )
>> +                {
>> +                    throw new Exception( "FATAL: impossible to create directories:" + expandFile.getParentFile() );
>> +                }
>
> The above mkdirs() call returns "false" if those directories already exist.
>
> Can webappWarPerContext.entrySet() contain several wars? If so then I
> expect the code to throw the above exception when processing the
> second war.
>
> In Tomcat such code is usually written like this:
> quoting from o.a.c.core.StandardContext
> [[[
>         if (!dir.mkdirs() && !dir.isDirectory()) {
>             log.warn(sm.getString("standardContext.workCreateFail", dir,
>                     getName()));
>         }
> ]]]
>
>> +
>> +                expand( inputStream, expandFile );
>> +
>>              }
>>              finally
>>              {
>>
>
> Best regards,
> Konstantin Kolinko
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>



-- 
Olivier Lamy
Ecetera: http://ecetera.com.au
http://twitter.com/olamy | http://linkedin.com/in/olamy

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: svn commit: r1539209 - /tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java

Posted by Konstantin Kolinko <kn...@gmail.com>.
2013/11/6  <ol...@apache.org>:
> Author: olamy
> Date: Wed Nov  6 01:31:25 2013
> New Revision: 1539209
>
> URL: http://svn.apache.org/r1539209
> Log:
> [MTOMCAT-211] The .war file is not extracted from executable war
>
> Modified:
>     tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java
>
> Modified: tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java
> URL: http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java?rev=1539209&r1=1539208&r2=1539209&view=diff
> ==============================================================================
> --- tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java (original)
> +++ tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java Wed Nov  6 01:31:25 2013
> @@ -560,28 +560,35 @@ public class Tomcat7Runner
>              InputStream inputStream = null;
>              try
>              {
> +                File expandFile = null;
>                  inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream( entry.getValue() );
>                  if ( !useServerXml() )
>                  {
>                      if ( entry.getKey().equals( "/" ) )
>                      {
> -                        File expandFile = new File( extractDirectory, "webapps/ROOT.war" );
> -                        debugMessage( "expand to file:" + expandFile.getPath() );
> -                        expand( inputStream, expandFile );
> +                        expandFile = new File( extractDirectory, "webapps/ROOT.war" );
>                      }
>                      else
>                      {
> -                        File expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
> -                        debugMessage( "expand to file:" + expandFile.getPath() );
> -                        expand( inputStream, expandFile );
> +                        expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
>                      }
>                  }
>                  else
>                  {
> -                    File expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
> -                    debugMessage( "expand to file:" + expandFile.getPath() );
> -                    expand( inputStream, new File( extractDirectory, "webapps/" + entry.getValue() ) );
> +                    expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
>                  }
> +
> +                debugMessage( "expand to file:" + expandFile.getPath() );
> +
> +                // MTOMCAT-211 ensure parent directories created
> +
> +                if ( !expandFile.getParentFile().mkdirs() )
> +                {
> +                    throw new Exception( "FATAL: impossible to create directories:" + expandFile.getParentFile() );
> +                }

The above mkdirs() call returns "false" if those directories already exist.

Can webappWarPerContext.entrySet() contain several wars? If so then I
expect the code to throw the above exception when processing the
second war.

In Tomcat such code is usually written like this:
quoting from o.a.c.core.StandardContext
[[[
        if (!dir.mkdirs() && !dir.isDirectory()) {
            log.warn(sm.getString("standardContext.workCreateFail", dir,
                    getName()));
        }
]]]

> +
> +                expand( inputStream, expandFile );
> +
>              }
>              finally
>              {
>

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org