tcl.debug: Move to Java 1.8.

Enable warnings, fix them and enable save actions.

Change-Id: If65d9ecc29818e1fb22416fdda8c5bbd68376d40
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
diff --git a/tcl/plugins/org.eclipse.dltk.tcl.debug/.classpath b/tcl/plugins/org.eclipse.dltk.tcl.debug/.classpath
index 64c5e31..eca7bdb 100644
--- a/tcl/plugins/org.eclipse.dltk.tcl.debug/.classpath
+++ b/tcl/plugins/org.eclipse.dltk.tcl.debug/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/tcl/plugins/org.eclipse.dltk.tcl.debug/.settings/org.eclipse.jdt.core.prefs b/tcl/plugins/org.eclipse.dltk.tcl.debug/.settings/org.eclipse.jdt.core.prefs
index 7882500..05ff4a1 100644
--- a/tcl/plugins/org.eclipse.dltk.tcl.debug/.settings/org.eclipse.jdt.core.prefs
+++ b/tcl/plugins/org.eclipse.dltk.tcl.debug/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,109 @@
-#Wed Feb 04 12:33:11 NOVT 2009
 eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
+org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/tcl/plugins/org.eclipse.dltk.tcl.debug/.settings/org.eclipse.jdt.ui.prefs b/tcl/plugins/org.eclipse.dltk.tcl.debug/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..5b0d571
--- /dev/null
+++ b/tcl/plugins/org.eclipse.dltk.tcl.debug/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,59 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=true
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=false
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_type_arguments=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=true
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/tcl/plugins/org.eclipse.dltk.tcl.debug/META-INF/MANIFEST.MF b/tcl/plugins/org.eclipse.dltk.tcl.debug/META-INF/MANIFEST.MF
index e1d7788..3af48af 100644
--- a/tcl/plugins/org.eclipse.dltk.tcl.debug/META-INF/MANIFEST.MF
+++ b/tcl/plugins/org.eclipse.dltk.tcl.debug/META-INF/MANIFEST.MF
@@ -12,5 +12,5 @@
 Bundle-Activator: org.eclipse.dltk.tcl.internal.debug.TclDebugPlugin
 Export-Package: org.eclipse.dltk.tcl.internal.debug
 Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
diff --git a/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclDebugPlugin.java b/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclDebugPlugin.java
index 883ad29..3a35bdb 100644
--- a/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclDebugPlugin.java
+++ b/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclDebugPlugin.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.tcl.internal.debug;
 
@@ -54,6 +53,7 @@
 		fgPlugin = this;
 	}
 
+	@Override
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
 
@@ -61,6 +61,7 @@
 		// Status.OK, "TCLDebugPlugin starting...", null));
 	}
 
+	@Override
 	public void stop(BundleContext context) throws Exception {
 		try {
 			savePluginPreferences();
diff --git a/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclDebugPreferenceInitializer.java b/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclDebugPreferenceInitializer.java
index c726a2a..143eae3 100644
--- a/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclDebugPreferenceInitializer.java
+++ b/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclDebugPreferenceInitializer.java
@@ -8,6 +8,7 @@
 public class TclDebugPreferenceInitializer extends
 		AbstractPreferenceInitializer {
 
+	@Override
 	public void initializeDefaultPreferences() {
 		Preferences store = TclDebugPlugin.getDefault().getPluginPreferences();
 
diff --git a/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclHotCodeReplaceProvider.java b/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclHotCodeReplaceProvider.java
index 4b75819..62df794 100644
--- a/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclHotCodeReplaceProvider.java
+++ b/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclHotCodeReplaceProvider.java
@@ -11,7 +11,6 @@
 import org.eclipse.dltk.core.DLTKCore;
 import org.eclipse.dltk.core.IMethod;
 import org.eclipse.dltk.core.IModelElement;
-import org.eclipse.dltk.core.IModelElementVisitor;
 import org.eclipse.dltk.core.ISourceModule;
 import org.eclipse.dltk.core.ISourceRange;
 import org.eclipse.dltk.core.ModelException;
@@ -26,6 +25,7 @@
 	public TclHotCodeReplaceProvider() {
 	}
 
+	@Override
 	public void performCodeReplace(IScriptDebugTarget target,
 			IResource[] resources) throws DebugException {
 		final IScriptThread[] threads = (IScriptThread[]) target.getThreads();
@@ -52,18 +52,14 @@
 		if (module == null) {
 			return null;
 		}
-		final List<IMethod> procList = new ArrayList<IMethod>();
+		final List<IMethod> procList = new ArrayList<>();
 		try {
-			module.accept(new IModelElementVisitor() {
-
-				public boolean visit(IModelElement element) {
-					if (element.getElementType() == IModelElement.METHOD) {
-						procList.add((IMethod) element);
-						return false;
-					}
-					return true;
+			module.accept(element -> {
+				if (element.getElementType() == IModelElement.METHOD) {
+					procList.add((IMethod) element);
+					return false;
 				}
-
+				return true;
 			});
 			if (procList.isEmpty()) {
 				return null;
@@ -106,7 +102,7 @@
 	 * @return
 	 */
 	private String[] collectNamespaces(IMethod method) {
-		final List<String> types = new ArrayList<String>();
+		final List<String> types = new ArrayList<>();
 		IModelElement parent = method.getParent();
 		while (parent.getElementType() == IModelElement.TYPE) {
 			types.add(parent.getElementName());
diff --git a/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclTypeFactory.java b/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclTypeFactory.java
index e171983..ed703b5 100644
--- a/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclTypeFactory.java
+++ b/tcl/plugins/org.eclipse.dltk.tcl.debug/src/org/eclipse/dltk/tcl/internal/debug/TclTypeFactory.java
@@ -14,6 +14,7 @@
 			super(STRING);
 		}
 
+		@Override
 		public String formatValue(IScriptValue value) {
 			String string = value.getRawValue();
 			if (string == null) {
@@ -22,6 +23,7 @@
 			return escapeString(string, false);
 		}
 
+		@Override
 		public String formatDetails(IScriptValue value) {
 			String string = value.getRawValue();
 			if (string == null) {
@@ -85,21 +87,6 @@
 			return result.toString();
 		}
 
-		/**
-		 * @param value
-		 * @return
-		 */
-		private static boolean canBraceEscape(String value) {
-			final int length = value.length();
-			for (int i = 0; i < length; i++) {
-				final char c = value.charAt(i);
-				if (c < 32 || c == '{' || c == '}') {
-					return false;
-				}
-			}
-			return true;
-		}
-
 		private static char toHexChar(int value) {
 			if (value <= 9) {
 				return (char) ('0' + value);
@@ -143,6 +130,7 @@
 			super(NAMESPACE);
 		}
 
+		@Override
 		public String formatValue(IScriptValue value) {
 			return NAMESPACE;
 		}
@@ -154,6 +142,7 @@
 
 	private static final String NAMESPACE = "namespace"; //$NON-NLS-1$
 
+	@Override
 	public IScriptType buildType(String type) {
 		if (STRING.equals(type)) {
 			return stringType;