Consume any garbage on System.in before asking for the passphrase
git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk@514821 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/plugin/gpg/GpgSignAttachedMojo.java b/src/main/java/org/apache/maven/plugin/gpg/GpgSignAttachedMojo.java
index 5c8cc84..330534c 100644
--- a/src/main/java/org/apache/maven/plugin/gpg/GpgSignAttachedMojo.java
+++ b/src/main/java/org/apache/maven/plugin/gpg/GpgSignAttachedMojo.java
@@ -341,11 +341,18 @@
{
//TODO: with JDK 1.6, we could call System.console().readPassword("GPG Passphrase: ", null);
+ BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
+ while (System.in.available() != 0)
+ {
+ //there's some junk already on the input stream, consume it
+ //so we can get the real passphrase
+ System.in.read();
+ }
+
System.out.print("GPG Passphrase: ");
MaskingThread thread = new MaskingThread();
thread.start();
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
pass = in.readLine();