fixed type safety problems
diff --git a/org.eclipse.help.base/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.help.base/.settings/org.eclipse.jdt.core.prefs
index c79077d..34d2b77 100644
--- a/org.eclipse.help.base/.settings/org.eclipse.jdt.core.prefs
+++ b/org.eclipse.help.base/.settings/org.eclipse.jdt.core.prefs
@@ -1,5 +1,12 @@
 eclipse.preferences.version=1

+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.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault

+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable

+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.5

 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve

 org.eclipse.jdt.core.compiler.compliance=1.5

@@ -17,6 +24,7 @@
 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning

 org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

+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

@@ -30,7 +38,9 @@
 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=ignore

+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled

 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore

 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore

 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled

@@ -39,12 +49,18 @@
 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning

 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning

 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error

+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning

+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error

 org.eclipse.jdt.core.compiler.problem.nullReference=ignore

+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.possibleAccidentalBooleanAssignment=ignore

 org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore

+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning

 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=ignore

@@ -54,19 +70,22 @@
 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.unnecessaryElse=ignore

-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=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

@@ -76,6 +95,7 @@
 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.5

diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/HelpApplication.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/HelpApplication.java
index 0aed640..2fc0671 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/HelpApplication.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/HelpApplication.java
@@ -116,7 +116,7 @@
 	 * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String, java.lang.Object)
 	 */
 	public void setInitializationData(IConfigurationElement configElement, String propertyName, Object data) {
-		String value = (String)((Map)data).get("mode"); //$NON-NLS-1$
+		String value = (String)((Map<?, ?>)data).get("mode"); //$NON-NLS-1$
 		if ("infocenter".equalsIgnoreCase(value)) { //$NON-NLS-1$
 			BaseHelpSystem.setMode(BaseHelpSystem.MODE_INFOCENTER);
 		}
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteIndexProvider.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteIndexProvider.java
index 6cd5c62..95d7e32 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteIndexProvider.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteIndexProvider.java
@@ -96,7 +96,7 @@
 					}
 				}
 			}
-			return (IIndexContribution[])contributions.toArray(new IIndexContribution[contributions.size()]);
+			return contributions.toArray(new IIndexContribution[contributions.size()]);
 		}
 		return new IIndexContribution[0];
 	}
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/browser/MozillaFactory.java b/org.eclipse.help.base/src/org/eclipse/help/internal/browser/MozillaFactory.java
index d0d9c66..15aee4c 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/browser/MozillaFactory.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/browser/MozillaFactory.java
@@ -106,7 +106,7 @@
 	public void setInitializationData(IConfigurationElement config,
 			String propertyName, Object data) throws CoreException {
 		try {
-			Hashtable params = (Hashtable) data;
+			Hashtable<?, ?> params = (Hashtable<?, ?>) data;
 			executable = (String) params.get("executable"); //$NON-NLS-1$
 			executableName = (String) params.get("executableName"); //$NON-NLS-1$
 			osList = (String) params.get("os"); //$NON-NLS-1$
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/protocols/HelpURLConnection.java b/org.eclipse.help.base/src/org/eclipse/help/internal/protocols/HelpURLConnection.java
index 62caddf..4fee8b2 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/protocols/HelpURLConnection.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/protocols/HelpURLConnection.java
@@ -185,7 +185,9 @@
 				if (existing == null)
 					arguments.put(arg, val);
 				else if (existing instanceof Vector) {
-					((Vector<String>) existing).add(val);
+					@SuppressWarnings("unchecked")
+					Vector<String> vector = (Vector<String>) existing;
+					vector.add(val);
 					arguments.put(arg, existing);
 				} else {
 					Vector<Object> v = new Vector<Object>(2);
@@ -234,11 +236,14 @@
 	/**
 	 *
 	 */
-	public Vector getMultiValue(String name) {
+	public Vector<String> getMultiValue(String name) {
 		if (arguments != null) {
 			Object value = arguments.get(name);
-			if (value instanceof Vector)
-				return (Vector) value;
+			if (value instanceof Vector) {
+				@SuppressWarnings("unchecked")
+				Vector<String> vector = (Vector<String>) value;
+				return vector;
+			}
 			return null;
 		}
 		return null;
@@ -254,9 +259,11 @@
 		String stringValue = null;
 		if (value instanceof String)
 			stringValue = (String) value;
-		else if (value instanceof Vector)
-			stringValue = (String) ((Vector) value).firstElement();
-		else
+		else if (value instanceof Vector) {
+			@SuppressWarnings("unchecked")
+			Vector<String> vector = (Vector<String>) value;
+			stringValue = vector.firstElement();
+		} else
 			return null;
 		try {
 			return URLCoder.decode(stringValue);
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/AnalyzerDescriptor.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/AnalyzerDescriptor.java
index 36124dc..19a0a2e 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/AnalyzerDescriptor.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/AnalyzerDescriptor.java
@@ -110,7 +110,7 @@
 				else
 					continue;
 				String pluginId = configElements[i].getContributor().getName();
-				String pluginVersion = (String) Platform.getBundle(pluginId).getHeaders()
+				String pluginVersion = Platform.getBundle(pluginId).getHeaders()
 						.get(Constants.BUNDLE_VERSION);
 				this.id = pluginId + "#" + pluginVersion + "?locale=" + locale; //$NON-NLS-1$ //$NON-NLS-2$
 				this.lang = locale;
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/HTMLSearchParticipant.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/HTMLSearchParticipant.java
index 34c3d69..f3180d4 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/HTMLSearchParticipant.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/HTMLSearchParticipant.java
@@ -49,7 +49,7 @@
 			if (participant == null) {
 				participant = getXhtmlParticipant();
 			}
-			return participant.addDocument((IHelpSearchIndex) index, pluginId, name, url, id, doc);
+			return participant.addDocument(index, pluginId, name, url, id, doc);
 		}
 		// otherwise, treat it as HTML
 		else {
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/IndexingOperation.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/IndexingOperation.java
index 457b277..92cb191 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/IndexingOperation.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/IndexingOperation.java
@@ -439,7 +439,7 @@
 		// get the list of indexed docs. This is a hashtable (url, plugin)
 		HelpProperties indexedDocs = index.getIndexedDocs();
 		Set<URL> removedDocs = new HashSet<URL>(indexedDocs.size());
-		for (Iterator docs = indexedDocs.keySet().iterator(); docs.hasNext();) {
+		for (Iterator<?> docs = indexedDocs.keySet().iterator(); docs.hasNext();) {
 			String doc = (String) docs.next();
 			// Assume the url is /pluginID/path_to_topic.html
 			int i = doc.indexOf('/', 1);
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/LocalSearchManager.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/LocalSearchManager.java
index e928591..238ec02 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/LocalSearchManager.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/LocalSearchManager.java
@@ -465,7 +465,7 @@
 					continue;
 				//ArrayList participants = (ArrayList) entry;
 				for (int j = 0; j < participants.size(); j++) {
-					ParticipantDescriptor desc = (ParticipantDescriptor) participants.get(j);
+					ParticipantDescriptor desc = participants.get(j);
 					if (desc.contains(refEl)) {
 						// found the matching descriptor - add it to the list
 						if (list == null)
@@ -538,7 +538,7 @@
 		}
 		if (result == PARTICIPANTS_NOT_FOUND)
 			return null;
-		return (ArrayList<ParticipantDescriptor>) result;
+		return result;
 	}
 
 	public void search(ISearchQuery searchQuery, ISearchHitCollector collector, IProgressMonitor pm)
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/PluginVersionInfo.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/PluginVersionInfo.java
index 6f7e95d..e8cc493 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/PluginVersionInfo.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/PluginVersionInfo.java
@@ -78,7 +78,7 @@
 			}
 			StringBuffer pluginVersionAndFragments = new StringBuffer();
 			appendBundleInformation(pluginVersionAndFragments, bundleId,
-					(String) pluginBundle.getHeaders().get(
+					pluginBundle.getHeaders().get(
 							Constants.BUNDLE_VERSION));
 			Bundle[] fragmentBundles = Platform.getFragments(pluginBundle);
 			if (fragmentBundles != null) {
@@ -88,7 +88,7 @@
 						continue;
 					appendBundleInformation(pluginVersionAndFragments,
 							fragmentBundles[f].getSymbolicName(),
-							(String) fragmentBundles[f].getHeaders().get(
+							fragmentBundles[f].getHeaders().get(
 									Constants.BUNDLE_VERSION));
 				}
 			}
@@ -136,7 +136,7 @@
 				}
 			}
 		}
-		for (Enumeration keysEnum = oldContrs.keys(); keysEnum
+		for (Enumeration<?> keysEnum = oldContrs.keys(); keysEnum
 				.hasMoreElements();) {
 			String oneContr = (String) keysEnum.nextElement();
 			if (!this.containsKey(oneContr)) {
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryBuilder.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryBuilder.java
index 9cc690e..08cf58a 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryBuilder.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryBuilder.java
@@ -245,7 +245,7 @@
 		Reader reader = new StringReader(text);
 		TokenStream tStream = analyzer.tokenStream(fieldName, reader);
 
-		CharTermAttribute termAttribute = (CharTermAttribute) tStream.getAttribute(CharTermAttribute.class);
+		CharTermAttribute termAttribute = tStream.getAttribute(CharTermAttribute.class);
 		try {
 			while (tStream.incrementToken()) {
 				String term = termAttribute.toString();
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchHit.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchHit.java
index dc3f880..f18dc82 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchHit.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchHit.java
@@ -57,8 +57,8 @@
 		if (o == this) {
 			return 0;
 		}
-		float s1 = ((SearchHit)this).getScore();
-		float s2 = ((SearchHit)o).getScore();
+		float s1 = this.getScore();
+		float s2 = o.getScore();
 		return (s1 < s2 ? 1 : s1 > s2 ? -1 : 0);
 	}
 
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchIndex.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchIndex.java
index 33c9476..67963a5 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchIndex.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchIndex.java
@@ -479,8 +479,8 @@
 
 				HelpProperties prebuiltDocs = new HelpProperties(INDEXED_DOCS_FILE, new File(indexPath));
 				prebuiltDocs.restore();
-				Set prebuiltHrefs = prebuiltDocs.keySet();
-				for (Iterator it = prebuiltHrefs.iterator(); it.hasNext();) {
+				Set<?> prebuiltHrefs = prebuiltDocs.keySet();
+				for (Iterator<?> it = prebuiltHrefs.iterator(); it.hasNext();) {
 					String href = (String) it.next();
 					if (i == 0) {
 						// optimization for first prebuilt index of a plug-in
@@ -725,7 +725,7 @@
 		String luceneVersionString = ""; //$NON-NLS-1$
 		Bundle luceneBundle = Platform.getBundle(LUCENE_BUNDLE_ID);
 		if (luceneBundle != null) {
-			luceneVersionString += (String) luceneBundle.getHeaders()
+			luceneVersionString += luceneBundle.getHeaders()
 					.get(Constants.BUNDLE_VERSION);
 		}
 		Version luceneVersion = new Version(luceneVersionString);
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchResults.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchResults.java
index d0cd0fd..1b7d1fa 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchResults.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchResults.java
@@ -94,9 +94,9 @@
 					// topic outside of scope
 					continue;
 				} else if ((scope instanceof AdaptableToc) || (scope instanceof AdaptableSelectedToc)) {
-					toc = (IToc) scope.getAdapter(IToc.class);
+					toc = scope.getAdapter(IToc.class);
 				} else if((scope instanceof AdaptableTopic) || (scope instanceof AdaptableSelectedTopic)){ // scope is AdaptableTopic or AdaptableSelectedTopic
-					toc = (IToc) scope.getParent().getAdapter(IToc.class);
+					toc = scope.getParent().getAdapter(IToc.class);
 				}
 			}
 
@@ -192,8 +192,8 @@
 			return null;
 		}
         String href = scope.getHref();
-		if(scope.getAdapter(IToc.class) instanceof IToc){
-			IToc toc=(IToc)scope.getAdapter(IToc.class);
+        IToc toc=scope.getAdapter(IToc.class);
+		if (toc != null){
 			href=toc.getTopic(null).getHref();
 		}
 
@@ -205,7 +205,7 @@
 				for (int i = 0; i < childrenScopes.length; i++) {
 					// To find the target toc recursively because scope.getHref
 					// may be null.
-					IToc toc = getTocForScope(childrenScopes[i], locale);
+					toc = getTocForScope(childrenScopes[i], locale);
 					if (toc != null)
 						return toc;
 				}
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/server/JettyHelpServer.java b/org.eclipse.help.base/src/org/eclipse/help/internal/server/JettyHelpServer.java
index 66b63ed..b15feed 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/server/JettyHelpServer.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/server/JettyHelpServer.java
@@ -58,7 +58,7 @@
 
 		public void run() {
 			try {
-				final Dictionary<String, Comparable> d = new Hashtable<String, Comparable>();
+				final Dictionary<String, Object> d = new Hashtable<String, Object>();
 				final int SESSION_TIMEOUT_INTERVAL_IN_SECONDS = 30*60;  // 30 minutes
 				configurePort();
 				d.put("http.port", new Integer(getPortParameter())); //$NON-NLS-1$
@@ -126,7 +126,7 @@
 		}
 		if (port == -1) {
 			// Jetty selected a port number for us
-			ServiceReference[] reference = bundle.getBundleContext().getServiceReferences("org.osgi.service.http.HttpService", "(other.info=" + getOtherInfo() + ')'); //$NON-NLS-1$ //$NON-NLS-2$
+			ServiceReference<?>[] reference = bundle.getBundleContext().getServiceReferences("org.osgi.service.http.HttpService", "(other.info=" + getOtherInfo() + ')'); //$NON-NLS-1$ //$NON-NLS-2$
 			Object assignedPort = reference[0].getProperty("http.port"); //$NON-NLS-1$
 			port = Integer.parseInt((String)assignedPort);
 		}
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/standalone/Eclipse.java b/org.eclipse.help.base/src/org/eclipse/help/internal/standalone/Eclipse.java
index 4eb3bab..eb4add8 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/standalone/Eclipse.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/standalone/Eclipse.java
@@ -57,11 +57,11 @@
 		cmdarray[1] = "-vm"; //$NON-NLS-1$
 		cmdarray[2] = Options.getVm();
 		for (int i = 0; i < eclipseArgs.size(); i++) {
-			cmdarray[3 + i] = (String) eclipseArgs.get(i);
+			cmdarray[3 + i] = eclipseArgs.get(i);
 		}
 		cmdarray[3 + eclipseArgs.size()] = "-vmargs"; //$NON-NLS-1$
 		for (int i = 0; i < vmArgs.size(); i++) {
-			cmdarray[4 + eclipseArgs.size() + i] = (String) vmArgs.get(i);
+			cmdarray[4 + eclipseArgs.size() + i] = vmArgs.get(i);
 		}
 	}
 	private void prepareJavaCommand() throws Exception {
@@ -70,13 +70,13 @@
 		cmdarray = new String[1 + vmArgs.size() + 3 + eclipseArgs.size()];
 		cmdarray[0] = Options.getVm();
 		for (int i = 0; i < vmArgs.size(); i++) {
-			cmdarray[1 + i] = (String) vmArgs.get(i);
+			cmdarray[1 + i] = vmArgs.get(i);
 		}
 		cmdarray[1 + vmArgs.size()] = "-cp"; //$NON-NLS-1$
 		cmdarray[2 + vmArgs.size()] = getStartupJar();
 		cmdarray[3 + vmArgs.size()] = "org.eclipse.core.launcher.Main"; //$NON-NLS-1$
 		for (int i = 0; i < eclipseArgs.size(); i++) {
-			cmdarray[4 + vmArgs.size() + i] = (String) eclipseArgs.get(i);
+			cmdarray[4 + vmArgs.size() + i] = eclipseArgs.get(i);
 		}
 	}
 	/**
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/workingset/AdaptableTocsArray.java b/org.eclipse.help.base/src/org/eclipse/help/internal/workingset/AdaptableTocsArray.java
index 4ead08e..3e3f861 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/workingset/AdaptableTocsArray.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/workingset/AdaptableTocsArray.java
@@ -63,7 +63,7 @@
 			for (int i = 0; i < children.length; i++)
 				map.put(children[i].getHref(), children[i]);
 		}
-		return (AdaptableToc) map.get(href);
+		return map.get(href);
 	}
 
 	IToc[] asArray() {
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/workingset/WorkingSetComparator.java b/org.eclipse.help.base/src/org/eclipse/help/internal/workingset/WorkingSetComparator.java
index dbff356..09de0ab 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/workingset/WorkingSetComparator.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/workingset/WorkingSetComparator.java
@@ -28,11 +28,11 @@
 		String name1 = null;
 		String name2 = null;
 
-		if (o1 instanceof WorkingSet)
-			name1 = ((WorkingSet) o1).getName();
+		if (o1 != null)
+			name1 = o1.getName();
 
-		if (o2 instanceof WorkingSet)
-			name2 = ((WorkingSet) o2).getName();
+		if (o2 != null)
+			name2 = o2.getName();
 
 		if (name1 == null || name2 == null)
 			return -1;
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/workingset/WorkingSetManager.java b/org.eclipse.help.base/src/org/eclipse/help/internal/workingset/WorkingSetManager.java
index 4966e49..47dba60 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/workingset/WorkingSetManager.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/workingset/WorkingSetManager.java
@@ -68,7 +68,7 @@
 
 	private AdaptableTocsArray root;
 
-	private Map allCriteriaValues;
+	private Map<String, Set<String>> allCriteriaValues;
 
 	private static final DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory
 			.newInstance();
@@ -492,7 +492,7 @@
 		}
 		List<String> valueIds = new ArrayList<String>();
 		if(null != criterionName && null != allCriteriaValues) {
-			Set<String> criterionValues = (Set<String>)allCriteriaValues.get(criterionName);
+			Set<String> criterionValues = allCriteriaValues.get(criterionName);
 			if(null != criterionValues && !criterionValues.isEmpty()) {
 				valueIds.addAll(criterionValues);
 				Collections.sort(valueIds);
diff --git a/org.eclipse.help.base/src/org/eclipse/help/search/HelpIndexBuilder.java b/org.eclipse.help.base/src/org/eclipse/help/search/HelpIndexBuilder.java
index 4320f54..43cfddd 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/search/HelpIndexBuilder.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/search/HelpIndexBuilder.java
@@ -19,7 +19,6 @@
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Dictionary;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Locale;
@@ -690,7 +689,7 @@
 			try {
 				Manifest OSGiManifest = new Manifest(new FileInputStream(
 						OSGiFile));
-				Dictionary headers = manifestToProperties(OSGiManifest
+				Properties headers = manifestToProperties(OSGiManifest
 						.getMainAttributes());
 				String value = headers.get(Constants.BUNDLE_SYMBOLICNAME)
 						.toString();
@@ -768,7 +767,7 @@
 	}
 
 	private Properties manifestToProperties(Attributes d) {
-		Iterator iter = d.keySet().iterator();
+		Iterator<Object> iter = d.keySet().iterator();
 		Properties result = new Properties();
 		while (iter.hasNext()) {
 			Attributes.Name key = (Attributes.Name) iter.next();
diff --git a/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/Entities.java b/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/Entities.java
index 348df1c..cec2528 100644
--- a/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/Entities.java
+++ b/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/Entities.java
@@ -19,7 +19,7 @@
 import java.util.*;
 
 public class Entities {
-  static final Hashtable decoder = new Hashtable(300);
+  static final Hashtable<String, String> decoder = new Hashtable<String, String>(300);
   static final String[]  encoder = new String[0x100];
 
   static final String decode(String entity) {
@@ -36,7 +36,7 @@
 	new Character((char)Integer.parseInt(entity.substring(start), radix));
       return c.toString();
     } else {
-      String s = (String)decoder.get(entity);
+      String s = decoder.get(entity);
       if (s != null)
 	return s;
       else return ""; //$NON-NLS-1$
@@ -48,7 +48,7 @@
     StringBuffer buffer = new StringBuffer(length * 2);
     for (int i = 0; i < length; i++) {
       char c = s.charAt(i);
-      int j = (int)c;
+      int j = c;
       if (j < 0x100 && encoder[j] != null) {
 	buffer.append(encoder[j]);		  // have a named encoding
 	buffer.append(';');
diff --git a/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/HTMLParser.java b/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/HTMLParser.java
index 16a51c6..73aa9f4 100644
--- a/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/HTMLParser.java
+++ b/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/HTMLParser.java
@@ -622,7 +622,7 @@
       return (jj_ntk = jj_nt.kind);
   }
 
-  private java.util.Vector jj_expentries = new java.util.Vector();
+  private java.util.Vector<int[]> jj_expentries = new java.util.Vector<int[]>();
   private int[] jj_expentry;
   private int jj_kind = -1;
   private int[] jj_lasttokens = new int[100];
@@ -638,8 +638,8 @@
         jj_expentry[i] = jj_lasttokens[i];
       }
       boolean exists = false;
-      for (java.util.Enumeration e = jj_expentries.elements(); e.hasMoreElements();) {
-        int[] oldentry = (int[])(e.nextElement());
+      for (java.util.Enumeration<int[]> e = jj_expentries.elements(); e.hasMoreElements();) {
+        int[] oldentry = e.nextElement();
         if (oldentry.length == jj_expentry.length) {
           exists = true;
           for (int i = 0; i < jj_expentry.length; i++) {
@@ -687,7 +687,7 @@
     jj_add_error_token(0, 0);
     int[][] exptokseq = new int[jj_expentries.size()][];
     for (int i = 0; i < jj_expentries.size(); i++) {
-      exptokseq[i] = (int[])jj_expentries.elementAt(i);
+      exptokseq[i] = jj_expentries.elementAt(i);
     }
     return new ParseException(token, exptokseq, tokenImage);
   }
diff --git a/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/HTMLParserTokenManager.java b/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/HTMLParserTokenManager.java
index ceb0818..7a9a0f7 100644
--- a/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/HTMLParserTokenManager.java
+++ b/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/HTMLParserTokenManager.java
@@ -511,7 +511,7 @@
       }
       else
       {
-         int hiByte = (int)(curChar >> 8);
+         int hiByte = curChar >> 8;
          int i1 = hiByte >> 6;
          long l1 = 1L << (hiByte & 077);
          int i2 = (curChar & 0xff) >> 6;
@@ -615,7 +615,7 @@
       }
       else
       {
-         int hiByte = (int)(curChar >> 8);
+         int hiByte = curChar >> 8;
          int i1 = hiByte >> 6;
          long l1 = 1L << (hiByte & 077);
          int i2 = (curChar & 0xff) >> 6;
@@ -703,7 +703,7 @@
       }
       else
       {
-         int hiByte = (int)(curChar >> 8);
+         int hiByte = curChar >> 8;
          int i1 = hiByte >> 6;
          long l1 = 1L << (hiByte & 077);
          int i2 = (curChar & 0xff) >> 6;
@@ -798,7 +798,7 @@
       }
       else
       {
-         int hiByte = (int)(curChar >> 8);
+         int hiByte = curChar >> 8;
          int i1 = hiByte >> 6;
          long l1 = 1L << (hiByte & 077);
          int i2 = (curChar & 0xff) >> 6;
@@ -940,7 +940,7 @@
       }
       else
       {
-         int hiByte = (int)(curChar >> 8);
+         int hiByte = curChar >> 8;
          int i1 = hiByte >> 6;
          long l1 = 1L << (hiByte & 077);
          int i2 = (curChar & 0xff) >> 6;
@@ -1108,7 +1108,7 @@
       }
       else
       {
-         int hiByte = (int)(curChar >> 8);
+         int hiByte = curChar >> 8;
          int i1 = hiByte >> 6;
          long l1 = 1L << (hiByte & 077);
          int i2 = (curChar & 0xff) >> 6;
@@ -1251,7 +1251,7 @@
       }
       else
       {
-         int hiByte = (int)(curChar >> 8);
+         int hiByte = curChar >> 8;
          int i1 = hiByte >> 6;
          long l1 = 1L << (hiByte & 077);
          int i2 = (curChar & 0xff) >> 6;
@@ -1423,7 +1423,7 @@
       }
       else
       {
-         int hiByte = (int)(curChar >> 8);
+         int hiByte = curChar >> 8;
          int i1 = hiByte >> 6;
          long l1 = 1L << (hiByte & 077);
          int i2 = (curChar & 0xff) >> 6;
diff --git a/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/Tags.java b/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/Tags.java
index aa37df0..c0d8324 100644
--- a/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/Tags.java
+++ b/org.eclipse.help.base/src_demo/org/apache/lucene/demo/html/Tags.java
@@ -26,7 +26,7 @@
   /**
    * contains all tags for which whitespaces have to be inserted for proper tokenization
    */
-  public static final Set WS_ELEMS = Collections.synchronizedSet(new HashSet());
+  public static final Set<String> WS_ELEMS = Collections.synchronizedSet(new HashSet<String>());
 
   static{
     WS_ELEMS.add("<hr"); //$NON-NLS-1$