You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wagon-commits@maven.apache.org by da...@apache.org on 2008/01/01 05:14:41 UTC

svn commit: r607799 - in /maven/wagon/trunk: wagon-provider-test/src/main/java/org/apache/maven/wagon/ wagon-providers/wagon-ssh-ganymed/src/main/java/org/apache/maven/wagon/providers/ssh/ganymed/ wagon-providers/wagon-ssh/src/main/java/org/apache/mave...

Author: dantran
Date: Mon Dec 31 20:14:41 2007
New Revision: 607799

URL: http://svn.apache.org/viewvc?rev=607799&view=rev
Log:
Fix NPE found in AbstractJschWagon (WAGON-91) and handle ignoreFailures flag for both Jsch and Ganymed wagon providers (WAGON-94).

Modified:
    maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/CommandExecutorTestCase.java
    maven/wagon/trunk/wagon-providers/wagon-ssh-ganymed/src/main/java/org/apache/maven/wagon/providers/ssh/ganymed/AbstractGanymedWagon.java
    maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java

Modified: maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/CommandExecutorTestCase.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/CommandExecutorTestCase.java?rev=607799&r1=607798&r2=607799&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/CommandExecutorTestCase.java (original)
+++ maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/CommandExecutorTestCase.java Mon Dec 31 20:14:41 2007
@@ -1,22 +1,18 @@
 package org.apache.maven.wagon;
 
 /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
  */
 
 import org.codehaus.plexus.PlexusTestCase;
@@ -52,6 +48,30 @@
         catch ( CommandExecutionException e )
         {
             assertTrue( e.getMessage().trim().endsWith( "fail: command not found" ) );
+        }
+        finally
+        {
+            exec.disconnect();
+        }
+    }
+
+    public void testIgnoreFailuresInCommandExecuted()
+        throws Exception
+    {
+        CommandExecutor exec = (CommandExecutor) lookup( CommandExecutor.ROLE );
+
+        Repository repository = getTestRepository();
+
+        AuthenticationInfo authenticationInfo = new AuthenticationInfo();
+        authenticationInfo.setUserName( System.getProperty( "user.name" ) );
+
+        exec.connect( repository, authenticationInfo );
+
+        try
+        {
+            Streams streams = exec.executeCommand( "fail", true );
+            //expect no exception, and stderr has something.
+            assertTrue( streams.getErr().length() > 0 );
         }
         finally
         {

Modified: maven/wagon/trunk/wagon-providers/wagon-ssh-ganymed/src/main/java/org/apache/maven/wagon/providers/ssh/ganymed/AbstractGanymedWagon.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-ganymed/src/main/java/org/apache/maven/wagon/providers/ssh/ganymed/AbstractGanymedWagon.java?rev=607799&r1=607798&r2=607799&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh-ganymed/src/main/java/org/apache/maven/wagon/providers/ssh/ganymed/AbstractGanymedWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh-ganymed/src/main/java/org/apache/maven/wagon/providers/ssh/ganymed/AbstractGanymedWagon.java Mon Dec 31 20:14:41 2007
@@ -186,7 +186,7 @@
         {
             Streams streams = CommandExecutorStreamProcessor.processStreams( stderrReader, stdoutReader );
 
-            if ( streams.getErr().length() > 0 )
+            if ( streams.getErr().length() > 0 && !ignoreFailures )
             {
                 int exitCode = session.getExitStatus().intValue();
                 throw new CommandExecutionException( "Exit code: " + exitCode + " - " + streams.getErr() );

Modified: maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java?rev=607799&r1=607798&r2=607799&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/AbstractJschWagon.java Mon Dec 31 20:14:41 2007
@@ -192,7 +192,7 @@
                 HostKeyRepository hkr = sch.getHostKeyRepository();
                 HostKey[] keys = hkr.getHostKey();
 
-                for ( int i = 0; i < keys.length; i++ )
+                for ( int i = 0; keys != null && i < keys.length; i++ )
                 {
                     HostKey key = keys[i];
                     w.println( key.getHost() + " " + key.getType() + " " + key.getKey() );
@@ -259,7 +259,7 @@
 
             Streams streams = CommandExecutorStreamProcessor.processStreams( stderrReader, stdoutReader );
 
-            if ( streams.getErr().length() > 0 )
+            if ( streams.getErr().length() > 0 && !ignoreFailures )
             {
                 int exitCode = channel.getExitStatus();
                 throw new CommandExecutionException( "Exit code: " + exitCode + " - " + streams.getErr() );



---------------------------------------------------------------------
To unsubscribe, e-mail: wagon-commits-unsubscribe@maven.apache.org
For additional commands, e-mail: wagon-commits-help@maven.apache.org