@@ -126,13 +126,14 @@ protected void checkSuperType(Set set) {
126126 }
127127
128128
129- protected void remedyReflectionDependency (Set set ) {
129+ protected void remedyDependency (Set set ) {
130130 String [] classNames = getClassNames ();
131131 for (int i = 0 ; i < classNames .length ; i ++) {
132132 if ("net.sf.j2s.ajax.ASWTClass" .equals (classNames [i ])) {
133133 return ;
134134 }
135135 }
136+ List toRemoveList = new ArrayList ();
136137 boolean needRemedy = false ;;
137138 for (Iterator iterator = set .iterator (); iterator .hasNext ();) {
138139 Object next = iterator .next ();
@@ -146,21 +147,30 @@ protected void remedyReflectionDependency(Set set) {
146147 if ("net.sf.j2s.ajax.AClass" .equals (name )
147148 || "net.sf.j2s.ajax.ASWTClass" .equals (name )) {
148149 needRemedy = true ;
149- break ;
150+ //break;
151+ }
152+ for (Iterator itr = classNameSet .iterator (); itr .hasNext ();) {
153+ String className = (String ) itr .next ();
154+ if (name .startsWith (className + "." )) { // inner class dependency
155+ toRemoveList .add (next );
156+ }
150157 }
151158 }
152159 if (needRemedy ) {
153160 set .add ("java.lang.reflect.Constructor" );
154161 }
162+ for (Iterator iterator = toRemoveList .iterator (); iterator .hasNext ();) {
163+ set .remove (iterator .next ());
164+ }
155165 }
156166
157167 public String getDependencyScript (StringBuffer mainJS ) {
158168 checkSuperType (musts );
159169 checkSuperType (requires );
160170 checkSuperType (optionals );
161- remedyReflectionDependency (musts );
162- remedyReflectionDependency (requires );
163- remedyReflectionDependency (optionals );
171+ remedyDependency (musts );
172+ remedyDependency (requires );
173+ remedyDependency (optionals );
164174
165175 musts .remove ("" );
166176 requires .remove ("" );
0 commit comments