diff --git a/java/java-impl/src/com/intellij/application/options/CodeStyleGenerationConfigurable.form b/java/java-impl/src/com/intellij/application/options/CodeStyleGenerationConfigurable.form
index d3fac3319a2f..144b2ab5be50 100644
--- a/java/java-impl/src/com/intellij/application/options/CodeStyleGenerationConfigurable.form
+++ b/java/java-impl/src/com/intellij/application/options/CodeStyleGenerationConfigurable.form
@@ -3,7 +3,7 @@
-
+
@@ -155,7 +155,7 @@
-
+
@@ -235,20 +235,41 @@
-
+
-
+
+
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/java-impl/src/com/intellij/application/options/CodeStyleGenerationConfigurable.java b/java/java-impl/src/com/intellij/application/options/CodeStyleGenerationConfigurable.java
index 5d457c5ee6ca..8f1241f5603e 100644
--- a/java/java-impl/src/com/intellij/application/options/CodeStyleGenerationConfigurable.java
+++ b/java/java-impl/src/com/intellij/application/options/CodeStyleGenerationConfigurable.java
@@ -54,6 +54,7 @@ public class CodeStyleGenerationConfigurable implements Configurable {
private JCheckBox myCbUseExternalAnnotations;
private JCheckBox myInsertOverrideAnnotationCheckBox;
private JPanel myMembersPanel;
+ private JCheckBox myRepeatSynchronizedCheckBox;
public CodeStyleGenerationConfigurable(CodeStyleSettings settings) {
mySettings = settings;
@@ -226,6 +227,7 @@ public class CodeStyleGenerationConfigurable implements Configurable {
myCbUseExternalAnnotations.setSelected(settings.USE_EXTERNAL_ANNOTATIONS);
myInsertOverrideAnnotationCheckBox.setSelected(settings.INSERT_OVERRIDE_ANNOTATION);
+ myRepeatSynchronizedCheckBox.setSelected(settings.REPEAT_SYNCHRONIZED);
}
public void reset() {
@@ -253,6 +255,7 @@ public class CodeStyleGenerationConfigurable implements Configurable {
settings.USE_EXTERNAL_ANNOTATIONS = myCbUseExternalAnnotations.isSelected();
settings.INSERT_OVERRIDE_ANNOTATION = myInsertOverrideAnnotationCheckBox.isSelected();
+ settings.REPEAT_SYNCHRONIZED = myRepeatSynchronizedCheckBox.isSelected();
myMembersOrderList.apply(settings);
@@ -287,6 +290,7 @@ public class CodeStyleGenerationConfigurable implements Configurable {
isModified |= isModified(myCbUseExternalAnnotations, settings.USE_EXTERNAL_ANNOTATIONS);
isModified |= isModified(myInsertOverrideAnnotationCheckBox, settings.INSERT_OVERRIDE_ANNOTATION);
+ isModified |= isModified(myRepeatSynchronizedCheckBox, settings.REPEAT_SYNCHRONIZED);
isModified |= myMembersOrderList.isModified(settings);
diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java b/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java
index 08e87459fa0e..5f894b93a429 100644
--- a/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java
+++ b/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java
@@ -305,6 +305,10 @@ public class OverrideImplementUtil {
}
annotateOnOverrideImplement(result, aClass, method, insertOverrideIfPossible);
+
+ if (CodeStyleSettingsManager.getSettings(aClass.getProject()).REPEAT_SYNCHRONIZED && method.hasModifierProperty(PsiModifier.SYNCHRONIZED)) {
+ result.getModifierList().setModifierProperty(PsiModifier.SYNCHRONIZED, true);
+ }
final PsiCodeBlock body = JavaPsiFacade.getInstance(method.getProject()).getElementFactory().createCodeBlockFromText("{}", null);
PsiCodeBlock oldbody = result.getBody();
diff --git a/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java b/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java
index a5938986e813..07e9cd2ba37d 100644
--- a/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java
+++ b/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java
@@ -207,6 +207,9 @@ public class CodeStyleSettings extends CommonCodeStyleSettings implements Clonea
public boolean USE_EXTERNAL_ANNOTATIONS = false;
public boolean INSERT_OVERRIDE_ANNOTATION = true;
+//----------------- override -------------------
+ public boolean REPEAT_SYNCHRONIZED = true;
+
//----------------- IMPORTS --------------------
public boolean LAYOUT_STATIC_IMPORTS_SEPARATELY = true;
diff --git a/plugins/testng/lib/src/testng.zip b/plugins/testng/lib/src/testng.zip
index c20697953852..e510ff8091c5 100644
Binary files a/plugins/testng/lib/src/testng.zip and b/plugins/testng/lib/src/testng.zip differ
diff --git a/plugins/testng/lib/testng-jdk15.jar b/plugins/testng/lib/testng-jdk15.jar
index 505188be0e5d..8f7d5f46cc4c 100644
Binary files a/plugins/testng/lib/testng-jdk15.jar and b/plugins/testng/lib/testng-jdk15.jar differ