Hi,

There is a bug that stops smart completion for methods working for some classes and not others for Java.
Below is an example. It works for "in" but not for "bingo".

package com.ilanpillemer.pingpong;
import java.lang.String;

public class Hello {  
   
    private java.io.PrintStream in;
    private java.lang.String bingo;
    private void test() {
in. // smart completion works here
bingo. // smart completion does not work here
    }
} // Hello

In order to debug I ran bovinate on the javap output for both, and it did not work for java.lang.String and did work for the other.

Below is the javap output for java.lang.String

// Compiled from "String.java"
public final class String implements java.io.Serializable, java.lang.Comparable<java.lang.String>, java.lang.CharSequence {
  public static final java.util.Comparator<java.lang.String> CASE_INSENSITIVE_ORDER;
  public java.lang.String();
  public java.lang.String(java.lang.String);
  public java.lang.String(char[]);
... and so forth

After a bit of clunking around I found out if I remove the generic in the class signature bovinate starts working.. ie I change the above to this.

// Compiled from "String.java"
public final class String implements java.io.Serializable, java.lang.Comparable, java.lang.CharSequence {
  public static final java.util.Comparator<java.lang.String> CASE_INSENSITIVE_ORDER;
  public java.lang.String();
  public java.lang.String(java.lang.String);
  public java.lang.String(char[]);

Then bovinate works; and auto-complete works and I can get back to using cedet for java programming.

I patched my copy of the file as follows with a kludge which is probably too much of a hammer as I suspect you only need to remove the generic in the signature. But I don't really know how to use regex and a novice with elisp - so was just pleased that this worked and got auto-complete working again... bzr also I know very little about so was not sure how to send a patch directly through. Below is the output of "bzr diff"

=== modified file 'lisp/cedet/semantic/db-javap.el'
--- lisp/cedet/semantic/db-javap.el 2014-02-17 12:57:23 +0000
+++ lisp/cedet/semantic/db-javap.el 2014-04-18 18:32:12 +0000
@@ -779,7 +779,14 @@
  (while (re-search-forward "\\(class\\|interface\\) \\([^\\. ]*\\.\\)+" nil t)
   (replace-match "\\1 " nil nil))
  )
-      
+
+      ;; strip out generics as bovinate dies on them
+      (save-excursion
+ (goto-char (point-min))
+ (while (re-search-forward "<.*>" nil t)
+  (replace-match "" nil nil))
+ )
+
       ;; Enable java mode and semantic parsing.
       (java-mode)
       (semantic-new-buffer-fcn)