I am using a deeply nested series of public classes. These classes reside in the same top class and are used for mapping between I18N keys and the language file. The basic structure is:
public class Lang
{
public class Home
{
public static final String TITLE = "page.home.title";
public static final String MESSAGE = page.home.message";
}
public class Login
{
public static final String TITLE = "page.login.title";
public static final String MESSAGE = page.login.message";
public static final String USER_ID = page.login.userID";
public static final String PASSWORD = page.login.password";
public class Error
{
public static final String NOT_FOUND = page.login.err.notFound";
}
}
}
and so forth. The nesting is as deep as four classes.
In Ecplise and JSP, I need to import just the Lang class. The nested classes are implied. In Ecplise, code completion works correctly, and in MyEcplise 3.8.2 the code completion worked the same way.
However with 3.8.3 and 3.8.4, the code completion works rather weirdly:
Lang.
choose Login. this will produce
Lang.Lang.Login
Ok, delete the first Lang, so now you see
Lang.Login
enter a period, and choose Error. This will produce:
Lang.Login.Lang.Login.Error
The automatically inserted imports will now have
<%@ page language="Java" import="Lang" %>
<%@ page language="Java" import="Lang.Login" %>
<%@ page language="Java" import="Lang.Login.Error" %>
Again, this behaviour appeared in the 3.8.3 release.