Follow-up on bug 477476 - Auto-formatter gets indentation wrong when used as post-save action
diff --git a/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476a/A_in.java b/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476a/A_in.java
index b78fe42..0592d9f 100644
--- a/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476a/A_in.java
+++ b/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476a/A_in.java
@@ -93,5 +93,9 @@
 )//
 );
 		}
+
+		this.getWriter().println("aaaaa" + //
+				"bbbbbb" + //
+				"ccc");
 	}
 }
\ No newline at end of file
diff --git a/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476a/A_out.java b/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476a/A_out.java
index 04cdb3c..fb8df2c 100644
--- a/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476a/A_out.java
+++ b/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476a/A_out.java
@@ -93,5 +93,10 @@
 					)//

 			);

 		}

+

+		this.getWriter()

+		        .println("aaaaa" + //

+		                "bbbbbb" + //

+		                "ccc");

 	}

 }
\ No newline at end of file
diff --git a/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476b/A_in.java b/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476b/A_in.java
index 3899aff..84aa715 100644
--- a/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476b/A_in.java
+++ b/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476b/A_in.java
@@ -93,5 +93,9 @@
 [#)#]
 [#);#]
 		}
+		
+		[#	this.getWriter().println("aaaaa" + //#]
+				[#		"bbbbbb" + //      #]
+						[#	"ccc");#]
 	}
 }
\ No newline at end of file
diff --git a/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476b/A_out.java b/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476b/A_out.java
index a946229..e9f0c66 100644
--- a/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476b/A_out.java
+++ b/org.eclipse.jdt.core.tests.model/workspace/Formatter/test477476b/A_out.java
@@ -94,5 +94,10 @@
 					)

 			);

 		}

+		

+		this.getWriter()

+				.println("aaaaa" + //

+						"bbbbbb" + //

+						"ccc");

 	}

 }
\ No newline at end of file
diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapExecutor.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapExecutor.java
index 49272996..8b14811 100644
--- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapExecutor.java
+++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapExecutor.java
@@ -425,7 +425,8 @@
 
 		if ((!lineExceeded || firstPotentialWrap < 0) && lastIndex + 1 < this.tm.size()) {
 			Token nextLineToken = this.tm.get(lastIndex + 1);
-			if (nextLineToken.isWrappable() && (this.tm.get(lastIndex).isComment() || nextLineToken.isComment())) {
+			if ((nextLineToken.getWrapPolicy() != null && nextLineToken.getWrapPolicy().wrapMode != WrapMode.FORCED)
+					&& (this.tm.get(lastIndex).isComment() || nextLineToken.isComment())) {
 				// this might be a pre-existing wrap forced by a comment, calculate penalties as normal
 				bestIndent = getWrapIndent(nextLineToken);
 				bestNextWrap = lastIndex + 1;
diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapPreparator.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapPreparator.java
index 509b104..1d24564 100644
--- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapPreparator.java
+++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapPreparator.java
@@ -814,7 +814,7 @@
 
 		if (!this.secondaryWrapIndexes.isEmpty()) {
 			int optionNoAlignment = (wrappingOption & ~Alignment.SPLIT_MASK) | Alignment.M_NO_ALIGNMENT;
-			policy = getWrapPolicy(optionNoAlignment, 0, false, parentNode);
+			policy = getWrapPolicy(optionNoAlignment, 1, false, parentNode);
 			for (int index : this.secondaryWrapIndexes) {
 				Token token = this.tm.get(index);
 				if (token.getWrapPolicy() == null)