[389174] jsp:useBean doesn't work for nested generics e.g. type="List<List<Boolean>>"
diff --git a/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/translation/JSPJavaTranslatorCoreTest.java b/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/translation/JSPJavaTranslatorCoreTest.java
index ede3f82..33d077d 100644
--- a/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/translation/JSPJavaTranslatorCoreTest.java
+++ b/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/translation/JSPJavaTranslatorCoreTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2010 IBM Corporation and others.
+ * Copyright (c) 2006, 2012 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
@@ -11,6 +11,9 @@
  *******************************************************************************/
 package org.eclipse.jst.jsp.core.tests.translation;
 
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.util.ArrayList;
@@ -32,12 +35,15 @@
 import org.eclipse.core.runtime.OperationCanceledException;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jdt.core.compiler.IProblem;
 import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
+import org.eclipse.jst.jsp.core.internal.java.IJSPProblem;
 import org.eclipse.jst.jsp.core.internal.java.IJSPTranslation;
 import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
 import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapter;
 import org.eclipse.jst.jsp.core.internal.java.JSPTranslationExtension;
+import org.eclipse.jst.jsp.core.internal.java.JSPTranslator;
 import org.eclipse.jst.jsp.core.internal.modelhandler.ModelHandlerForJSP;
 import org.eclipse.jst.jsp.core.internal.preferences.JSPCorePreferenceNames;
 import org.eclipse.jst.jsp.core.internal.taglib.CustomTag;
@@ -703,4 +709,31 @@
 		}
 		assertEquals("Problem markers reported found \n" + markerText, 0, markers.length);
 	}
+
+	public void test_389174() throws CoreException, IOException {
+		IProject j = BundleResourceUtil.createSimpleProject(getName(), null, new String[]{JavaCore.NATURE_ID});
+		assertTrue(j.exists());
+
+		String typeName = "List<List<Boolean>>";
+		InputStream source = new ByteArrayInputStream(("<jsp:useBean id=\"x\" type=\"" + typeName + "\" />").getBytes());
+		IFile file = j.getFile(getName() + "_test.jsp");
+		file.create(source, IResource.FORCE, null);
+		JSPTranslator translator = new JSPTranslator();
+		IDOMModel structuredModel = null;
+		try {
+			structuredModel = (IDOMModel) StructuredModelManager.getModelManager().getModelForRead(file);
+			translator.reset(structuredModel.getDocument(), new NullProgressMonitor());
+			translator.translate();
+
+			assertTrue("specified type did not survive translation", translator.getTranslation().indexOf(typeName) >= 0);
+			IJSPProblem[] translationProblems = (IJSPProblem[]) translator.getTranslationProblems().toArray(new IJSPProblem[0]);
+			for (int i = 0; i < translationProblems.length; i++) {
+				assertTrue(translationProblems[i].getID() != IProblem.UndefinedType);
+			}
+		}
+		finally {
+			if (structuredModel != null)
+				structuredModel.releaseFromRead();
+		}
+	}
 }