View | Details | Raw Unified | Return to bug 306464 | Differences between
and this patch

Collapse All | Expand All

(-)compiler/org/eclipse/jdt/internal/compiler/lookup/MethodBinding.java (-3 lines)
Lines 353-361 Link Here
353
			}
353
			}
354
		}
354
		}
355
	}
355
	}
356
	if (missingTypes == null) {
357
		System.err.println("Could not find missing types in " + this); //$NON-NLS-1$
358
	}
359
	return missingTypes;
356
	return missingTypes;
360
}
357
}
361
358
(-)compiler/org/eclipse/jdt/internal/compiler/lookup/ParameterizedMethodBinding.java (-10 / +16 lines)
Lines 29-40 Link Here
29
		super(
29
		super(
30
				originalMethod.modifiers,
30
				originalMethod.modifiers,
31
				originalMethod.selector,
31
				originalMethod.selector,
32
				 originalMethod.returnType,
32
				originalMethod.returnType,
33
				originalMethod.parameters,
33
				originalMethod.parameters,
34
				originalMethod.thrownExceptions,
34
				originalMethod.thrownExceptions,
35
				parameterizedDeclaringClass);
35
				parameterizedDeclaringClass);
36
		this.originalMethod = originalMethod;
36
		this.originalMethod = originalMethod;
37
		this.tagBits = originalMethod.tagBits;
37
		/* missing type bit cannot be copied as is it might come from the return type or a parameter type that
38
		 * is substituted by a raw type.
39
		 */
40
		this.tagBits = originalMethod.tagBits & ~TagBits.HasMissingType;
38
41
39
		final TypeVariableBinding[] originalVariables = originalMethod.typeVariables;
42
		final TypeVariableBinding[] originalVariables = originalMethod.typeVariables;
40
		Substitution substitution = null;
43
		Substitution substitution = null;
Lines 61-73 Link Here
61
					return !isStatic && parameterizedDeclaringClass.isRawSubstitution();
64
					return !isStatic && parameterizedDeclaringClass.isRawSubstitution();
62
				}
65
				}
63
				public TypeBinding substitute(TypeVariableBinding typeVariable) {
66
				public TypeBinding substitute(TypeVariableBinding typeVariable) {
64
			        // check this variable can be substituted given copied variables
67
					// check this variable can be substituted given copied variables
65
			        if (typeVariable.rank < length && originalVariables[typeVariable.rank] == typeVariable) {
68
					if (typeVariable.rank < length && originalVariables[typeVariable.rank] == typeVariable) {
66
						return substitutedVariables[typeVariable.rank];
69
						return substitutedVariables[typeVariable.rank];
67
			        }
70
					}
68
			        if (!isStatic)
71
					if (!isStatic)
69
						return parameterizedDeclaringClass.substitute(typeVariable);
72
						return parameterizedDeclaringClass.substitute(typeVariable);
70
			        return typeVariable;
73
					return typeVariable;
71
				}
74
				}
72
			};
75
			};
73
76
Lines 105-112 Link Here
105
			this.returnType = Scope.substitute(substitution, this.returnType);
108
			this.returnType = Scope.substitute(substitution, this.returnType);
106
			this.parameters = Scope.substitute(substitution, this.parameters);
109
			this.parameters = Scope.substitute(substitution, this.parameters);
107
			this.thrownExceptions = Scope.substitute(substitution, this.thrownExceptions);
110
			this.thrownExceptions = Scope.substitute(substitution, this.thrownExceptions);
108
		    // error case where exception type variable would have been substituted by a non-reference type (207573)
111
			// error case where exception type variable would have been substituted by a non-reference type (207573)
109
		    if (this.thrownExceptions == null) this.thrownExceptions = Binding.NO_EXCEPTIONS;
112
			if (this.thrownExceptions == null) this.thrownExceptions = Binding.NO_EXCEPTIONS;
110
		}
113
		}
111
		checkMissingType: {
114
		checkMissingType: {
112
			if ((this.tagBits & TagBits.HasMissingType) != 0)
115
			if ((this.tagBits & TagBits.HasMissingType) != 0)
Lines 143-149 Link Here
143
				originalMethod.thrownExceptions,
146
				originalMethod.thrownExceptions,
144
				declaringClass);
147
				declaringClass);
145
		this.originalMethod = originalMethod;
148
		this.originalMethod = originalMethod;
146
		this.tagBits = originalMethod.tagBits;
149
		/* missing type bit cannot be copied as is it might come from the return type or a parameter type that
150
		 * is substituted by a raw type.
151
		 */
152
		this.tagBits = originalMethod.tagBits & ~TagBits.HasMissingType;
147
153
148
		final TypeVariableBinding[] originalVariables = originalMethod.typeVariables;
154
		final TypeVariableBinding[] originalVariables = originalMethod.typeVariables;
149
		Substitution substitution = null;
155
		Substitution substitution = null;
(-)compiler/org/eclipse/jdt/internal/compiler/lookup/RawTypeBinding.java (-2 / +24 lines)
Lines 1-5 Link Here
1
/*******************************************************************************
1
/*******************************************************************************
2
 * Copyright (c) 2000, 2008 IBM Corporation and others.
2
 * Copyright (c) 2000, 2010 IBM Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 26-33 Link Here
26
     */
26
     */
27
	public RawTypeBinding(ReferenceBinding type, ReferenceBinding enclosingType, LookupEnvironment environment){
27
	public RawTypeBinding(ReferenceBinding type, ReferenceBinding enclosingType, LookupEnvironment environment){
28
		super(type, null, enclosingType, environment);
28
		super(type, null, enclosingType, environment);
29
		if (enclosingType == null || (enclosingType.modifiers & ExtraCompilerModifiers.AccGenericSignature) == 0)
29
		this.tagBits &= ~TagBits.HasMissingType;
30
		if ((type.tagBits & TagBits.HasMissingType) != 0) {
31
			if (type instanceof MissingTypeBinding) {
32
				this.tagBits |= TagBits.HasMissingType;
33
			} else if (type instanceof ParameterizedTypeBinding) {
34
				ParameterizedTypeBinding parameterizedTypeBinding = (ParameterizedTypeBinding) type;
35
				if (parameterizedTypeBinding.genericType() instanceof MissingTypeBinding) {
36
					this.tagBits |= TagBits.HasMissingType;
37
				}
38
			}
39
		}
40
		if (enclosingType != null && (enclosingType.tagBits & TagBits.HasMissingType) != 0) {
41
			if (enclosingType instanceof MissingTypeBinding) {
42
				this.tagBits |= TagBits.HasMissingType;
43
			} else if (enclosingType instanceof ParameterizedTypeBinding) {
44
				ParameterizedTypeBinding parameterizedTypeBinding = (ParameterizedTypeBinding) enclosingType;
45
				if (parameterizedTypeBinding.genericType() instanceof MissingTypeBinding) {
46
					this.tagBits |= TagBits.HasMissingType;
47
				}
48
			}
49
		}
50
		if (enclosingType == null || (enclosingType.modifiers & ExtraCompilerModifiers.AccGenericSignature) == 0) {
30
			this.modifiers &= ~ExtraCompilerModifiers.AccGenericSignature; // only need signature if enclosing needs one
51
			this.modifiers &= ~ExtraCompilerModifiers.AccGenericSignature; // only need signature if enclosing needs one
52
		}
31
	}
53
	}
32
54
33
	public char[] computeUniqueKey(boolean isLeaf) {
55
	public char[] computeUniqueKey(boolean isLeaf) {
(-)compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java (+8 lines)
Lines 5119-5124 Link Here
5119
}
5119
}
5120
public void missingTypeInConstructor(ASTNode location, MethodBinding constructor) {
5120
public void missingTypeInConstructor(ASTNode location, MethodBinding constructor) {
5121
	List missingTypes = constructor.collectMissingTypes(null);
5121
	List missingTypes = constructor.collectMissingTypes(null);
5122
	if (missingTypes == null) {
5123
		System.err.println("The constructor " + constructor + " is wrongly tagged as containing missing types"); //$NON-NLS-1$ //$NON-NLS-2$
5124
		return;
5125
	}
5122
	TypeBinding missingType = (TypeBinding) missingTypes.get(0);
5126
	TypeBinding missingType = (TypeBinding) missingTypes.get(0);
5123
	int start = location.sourceStart;
5127
	int start = location.sourceStart;
5124
	int end = location.sourceEnd;
5128
	int end = location.sourceEnd;
Lines 5147-5152 Link Here
5147
5151
5148
public void missingTypeInMethod(MessageSend messageSend, MethodBinding method) {
5152
public void missingTypeInMethod(MessageSend messageSend, MethodBinding method) {
5149
	List missingTypes = method.collectMissingTypes(null);
5153
	List missingTypes = method.collectMissingTypes(null);
5154
	if (missingTypes == null) {
5155
		System.err.println("The method " + method + " is wrongly tagged as containing missing types"); //$NON-NLS-1$ //$NON-NLS-2$
5156
		return;
5157
	}
5150
	TypeBinding missingType = (TypeBinding) missingTypes.get(0);
5158
	TypeBinding missingType = (TypeBinding) missingTypes.get(0);
5151
	this.handle(
5159
	this.handle(
5152
			IProblem.MissingTypeInMethod,
5160
			IProblem.MissingTypeInMethod,
(-)src/org/eclipse/jdt/core/tests/compiler/regression/GenericTypeTest.java (-1 / +320 lines)
Lines 31-37 Link Here
31
	// All specified tests which does not belong to the class are skipped...
31
	// All specified tests which does not belong to the class are skipped...
32
	static {
32
	static {
33
//		TESTS_NAMES = new String[] { "test1245" };
33
//		TESTS_NAMES = new String[] { "test1245" };
34
//		TESTS_NUMBERS = new int[] { 1460 };
34
//		TESTS_NUMBERS = new int[] { 1461 };
35
//		TESTS_RANGE = new int[] { 1097, -1 };
35
//		TESTS_RANGE = new int[] { 1097, -1 };
36
	}
36
	}
37
	public static Test suite() {
37
	public static Test suite() {
Lines 50165-50168 Link Here
50165
		"Cannot perform instanceof check against parameterized type Test<A>.MyEntry. Use the form Test.MyEntry instead since further generic type information will be erased at runtime\n" + 
50165
		"Cannot perform instanceof check against parameterized type Test<A>.MyEntry. Use the form Test.MyEntry instead since further generic type information will be erased at runtime\n" + 
50166
		"----------\n");
50166
		"----------\n");
50167
}
50167
}
50168
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=306464
50169
public void test1461() {
50170
	this.runNegativeTest(
50171
		new String[] {
50172
			"JoinImpl.java",
50173
			"import javax.persistence.criteria.Expression;\n" + 
50174
			"import javax.persistence.criteria.Fetch;\n" + 
50175
			"import javax.persistence.criteria.From;\n" + 
50176
			"import javax.persistence.criteria.Join;\n" + 
50177
			"import javax.persistence.criteria.JoinType;\n" + 
50178
			"import javax.persistence.criteria.Path;\n" + 
50179
			"import javax.persistence.metamodel.Attribute;\n" + 
50180
			"import javax.persistence.metamodel.Bindable;\n" + 
50181
			"import javax.persistence.metamodel.ManagedType;\n" + 
50182
			"import javax.persistence.metamodel.Metamodel;\n" + 
50183
			"public class JoinImpl<Z, X> extends FromImpl<Z, X> implements Join<Z, X>, Fetch<Z, X> {\n" + 
50184
			"}",
50185
			"FromImpl.java",
50186
			"import java.util.ArrayList;\n" + 
50187
			"import java.util.HashSet;\n" + 
50188
			"import java.util.List;\n" + 
50189
			"import java.util.Set;\n" + 
50190
			"import java.util.Stack;\n" + 
50191
			"\n" + 
50192
			"import javax.persistence.criteria.CollectionJoin;\n" + 
50193
			"import javax.persistence.criteria.Expression;\n" + 
50194
			"import javax.persistence.criteria.Fetch;\n" + 
50195
			"import javax.persistence.criteria.From;\n" + 
50196
			"import javax.persistence.criteria.Join;\n" + 
50197
			"import javax.persistence.criteria.JoinType;\n" + 
50198
			"import javax.persistence.criteria.ListJoin;\n" + 
50199
			"import javax.persistence.criteria.MapJoin;\n" + 
50200
			"import javax.persistence.criteria.Path;\n" + 
50201
			"import javax.persistence.criteria.SetJoin;\n" + 
50202
			"import javax.persistence.metamodel.Attribute;\n" + 
50203
			"import javax.persistence.metamodel.Bindable;\n" + 
50204
			"import javax.persistence.metamodel.CollectionAttribute;\n" + 
50205
			"import javax.persistence.metamodel.ListAttribute;\n" + 
50206
			"import javax.persistence.metamodel.ManagedType;\n" + 
50207
			"import javax.persistence.metamodel.MapAttribute;\n" + 
50208
			"import javax.persistence.metamodel.Metamodel;\n" + 
50209
			"import javax.persistence.metamodel.PluralAttribute;\n" + 
50210
			"import javax.persistence.metamodel.SingularAttribute;\n" + 
50211
			"import javax.persistence.metamodel.Attribute.PersistentAttributeType;\n" + 
50212
			"import javax.persistence.metamodel.PluralAttribute.CollectionType;\n" + 
50213
			"import javax.persistence.metamodel.Type.PersistenceType;\n" + 
50214
			"\n" + 
50215
			"import org.eclipse.persistence.internal.helper.ClassConstants;\n" + 
50216
			"import org.eclipse.persistence.internal.localization.ExceptionLocalization;\n" + 
50217
			"\n" + 
50218
			"public class FromImpl<Z, X>  extends PathImpl<X> implements javax.persistence.criteria.From<Z, X> {\n" + 
50219
			"\n" + 
50220
			"    protected Set<Join<X, ?>> joins;\n" + 
50221
			"    \n" + 
50222
			"    public Set<Join<X, ?>> getJoins() {\n" + 
50223
			"        return joins;\n" + 
50224
			"    }\n" + 
50225
			"\n" + 
50226
			"    public void findJoins(AbstractQueryImpl query){\n" + 
50227
			"        Stack stack = new Stack();\n" + 
50228
			"        stack.push(this);\n" + 
50229
			"        while(!stack.isEmpty()){\n" + 
50230
			"            FromImpl currentJoin = (FromImpl) stack.pop();\n" + 
50231
			"            stack.addAll(currentJoin.getJoins());\n" + 
50232
			"            if (currentJoin.isLeaf){\n" + 
50233
			"                    query.addJoin(currentJoin);\n" + 
50234
			"                }\n" + 
50235
			"        }\n" + 
50236
			"    }\n" + 
50237
			"}"
50238
		},
50239
		"----------\n" + 
50240
		"1. ERROR in JoinImpl.java (at line 1)\n" + 
50241
		"	import javax.persistence.criteria.Expression;\n" + 
50242
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50243
		"The import javax.persistence cannot be resolved\n" + 
50244
		"----------\n" + 
50245
		"2. ERROR in JoinImpl.java (at line 2)\n" + 
50246
		"	import javax.persistence.criteria.Fetch;\n" + 
50247
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50248
		"The import javax.persistence cannot be resolved\n" + 
50249
		"----------\n" + 
50250
		"3. ERROR in JoinImpl.java (at line 3)\n" + 
50251
		"	import javax.persistence.criteria.From;\n" + 
50252
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50253
		"The import javax.persistence cannot be resolved\n" + 
50254
		"----------\n" + 
50255
		"4. ERROR in JoinImpl.java (at line 4)\n" + 
50256
		"	import javax.persistence.criteria.Join;\n" + 
50257
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50258
		"The import javax.persistence cannot be resolved\n" + 
50259
		"----------\n" + 
50260
		"5. ERROR in JoinImpl.java (at line 5)\n" + 
50261
		"	import javax.persistence.criteria.JoinType;\n" + 
50262
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50263
		"The import javax.persistence cannot be resolved\n" + 
50264
		"----------\n" + 
50265
		"6. ERROR in JoinImpl.java (at line 6)\n" + 
50266
		"	import javax.persistence.criteria.Path;\n" + 
50267
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50268
		"The import javax.persistence cannot be resolved\n" + 
50269
		"----------\n" + 
50270
		"7. ERROR in JoinImpl.java (at line 7)\n" + 
50271
		"	import javax.persistence.metamodel.Attribute;\n" + 
50272
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50273
		"The import javax.persistence cannot be resolved\n" + 
50274
		"----------\n" + 
50275
		"8. ERROR in JoinImpl.java (at line 8)\n" + 
50276
		"	import javax.persistence.metamodel.Bindable;\n" + 
50277
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50278
		"The import javax.persistence cannot be resolved\n" + 
50279
		"----------\n" + 
50280
		"9. ERROR in JoinImpl.java (at line 9)\n" + 
50281
		"	import javax.persistence.metamodel.ManagedType;\n" + 
50282
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50283
		"The import javax.persistence cannot be resolved\n" + 
50284
		"----------\n" + 
50285
		"10. ERROR in JoinImpl.java (at line 10)\n" + 
50286
		"	import javax.persistence.metamodel.Metamodel;\n" + 
50287
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50288
		"The import javax.persistence cannot be resolved\n" + 
50289
		"----------\n" + 
50290
		"11. ERROR in JoinImpl.java (at line 11)\n" + 
50291
		"	public class JoinImpl<Z, X> extends FromImpl<Z, X> implements Join<Z, X>, Fetch<Z, X> {\n" + 
50292
		"	                                                              ^^^^\n" + 
50293
		"Join cannot be resolved to a type\n" + 
50294
		"----------\n" + 
50295
		"12. ERROR in JoinImpl.java (at line 11)\n" + 
50296
		"	public class JoinImpl<Z, X> extends FromImpl<Z, X> implements Join<Z, X>, Fetch<Z, X> {\n" + 
50297
		"	                                                                          ^^^^^\n" + 
50298
		"Fetch cannot be resolved to a type\n" + 
50299
		"----------\n" + 
50300
		"----------\n" + 
50301
		"1. ERROR in FromImpl.java (at line 7)\n" + 
50302
		"	import javax.persistence.criteria.CollectionJoin;\n" + 
50303
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50304
		"The import javax.persistence cannot be resolved\n" + 
50305
		"----------\n" + 
50306
		"2. ERROR in FromImpl.java (at line 8)\n" + 
50307
		"	import javax.persistence.criteria.Expression;\n" + 
50308
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50309
		"The import javax.persistence cannot be resolved\n" + 
50310
		"----------\n" + 
50311
		"3. ERROR in FromImpl.java (at line 9)\n" + 
50312
		"	import javax.persistence.criteria.Fetch;\n" + 
50313
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50314
		"The import javax.persistence cannot be resolved\n" + 
50315
		"----------\n" + 
50316
		"4. ERROR in FromImpl.java (at line 10)\n" + 
50317
		"	import javax.persistence.criteria.From;\n" + 
50318
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50319
		"The import javax.persistence cannot be resolved\n" + 
50320
		"----------\n" + 
50321
		"5. ERROR in FromImpl.java (at line 11)\n" + 
50322
		"	import javax.persistence.criteria.Join;\n" + 
50323
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50324
		"The import javax.persistence cannot be resolved\n" + 
50325
		"----------\n" + 
50326
		"6. ERROR in FromImpl.java (at line 12)\n" + 
50327
		"	import javax.persistence.criteria.JoinType;\n" + 
50328
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50329
		"The import javax.persistence cannot be resolved\n" + 
50330
		"----------\n" + 
50331
		"7. ERROR in FromImpl.java (at line 13)\n" + 
50332
		"	import javax.persistence.criteria.ListJoin;\n" + 
50333
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50334
		"The import javax.persistence cannot be resolved\n" + 
50335
		"----------\n" + 
50336
		"8. ERROR in FromImpl.java (at line 14)\n" + 
50337
		"	import javax.persistence.criteria.MapJoin;\n" + 
50338
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50339
		"The import javax.persistence cannot be resolved\n" + 
50340
		"----------\n" + 
50341
		"9. ERROR in FromImpl.java (at line 15)\n" + 
50342
		"	import javax.persistence.criteria.Path;\n" + 
50343
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50344
		"The import javax.persistence cannot be resolved\n" + 
50345
		"----------\n" + 
50346
		"10. ERROR in FromImpl.java (at line 16)\n" + 
50347
		"	import javax.persistence.criteria.SetJoin;\n" + 
50348
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50349
		"The import javax.persistence cannot be resolved\n" + 
50350
		"----------\n" + 
50351
		"11. ERROR in FromImpl.java (at line 17)\n" + 
50352
		"	import javax.persistence.metamodel.Attribute;\n" + 
50353
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50354
		"The import javax.persistence cannot be resolved\n" + 
50355
		"----------\n" + 
50356
		"12. ERROR in FromImpl.java (at line 18)\n" + 
50357
		"	import javax.persistence.metamodel.Bindable;\n" + 
50358
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50359
		"The import javax.persistence cannot be resolved\n" + 
50360
		"----------\n" + 
50361
		"13. ERROR in FromImpl.java (at line 19)\n" + 
50362
		"	import javax.persistence.metamodel.CollectionAttribute;\n" + 
50363
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50364
		"The import javax.persistence cannot be resolved\n" + 
50365
		"----------\n" + 
50366
		"14. ERROR in FromImpl.java (at line 20)\n" + 
50367
		"	import javax.persistence.metamodel.ListAttribute;\n" + 
50368
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50369
		"The import javax.persistence cannot be resolved\n" + 
50370
		"----------\n" + 
50371
		"15. ERROR in FromImpl.java (at line 21)\n" + 
50372
		"	import javax.persistence.metamodel.ManagedType;\n" + 
50373
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50374
		"The import javax.persistence cannot be resolved\n" + 
50375
		"----------\n" + 
50376
		"16. ERROR in FromImpl.java (at line 22)\n" + 
50377
		"	import javax.persistence.metamodel.MapAttribute;\n" + 
50378
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50379
		"The import javax.persistence cannot be resolved\n" + 
50380
		"----------\n" + 
50381
		"17. ERROR in FromImpl.java (at line 23)\n" + 
50382
		"	import javax.persistence.metamodel.Metamodel;\n" + 
50383
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50384
		"The import javax.persistence cannot be resolved\n" + 
50385
		"----------\n" + 
50386
		"18. ERROR in FromImpl.java (at line 24)\n" + 
50387
		"	import javax.persistence.metamodel.PluralAttribute;\n" + 
50388
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50389
		"The import javax.persistence cannot be resolved\n" + 
50390
		"----------\n" + 
50391
		"19. ERROR in FromImpl.java (at line 25)\n" + 
50392
		"	import javax.persistence.metamodel.SingularAttribute;\n" + 
50393
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50394
		"The import javax.persistence cannot be resolved\n" + 
50395
		"----------\n" + 
50396
		"20. ERROR in FromImpl.java (at line 26)\n" + 
50397
		"	import javax.persistence.metamodel.Attribute.PersistentAttributeType;\n" + 
50398
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50399
		"The import javax.persistence cannot be resolved\n" + 
50400
		"----------\n" + 
50401
		"21. ERROR in FromImpl.java (at line 27)\n" + 
50402
		"	import javax.persistence.metamodel.PluralAttribute.CollectionType;\n" + 
50403
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50404
		"The import javax.persistence cannot be resolved\n" + 
50405
		"----------\n" + 
50406
		"22. ERROR in FromImpl.java (at line 28)\n" + 
50407
		"	import javax.persistence.metamodel.Type.PersistenceType;\n" + 
50408
		"	       ^^^^^^^^^^^^^^^^^\n" + 
50409
		"The import javax.persistence cannot be resolved\n" + 
50410
		"----------\n" + 
50411
		"23. ERROR in FromImpl.java (at line 30)\n" + 
50412
		"	import org.eclipse.persistence.internal.helper.ClassConstants;\n" + 
50413
		"	       ^^^^^^^^^^^\n" + 
50414
		"The import org.eclipse cannot be resolved\n" + 
50415
		"----------\n" + 
50416
		"24. ERROR in FromImpl.java (at line 31)\n" + 
50417
		"	import org.eclipse.persistence.internal.localization.ExceptionLocalization;\n" + 
50418
		"	       ^^^^^^^^^^^\n" + 
50419
		"The import org.eclipse cannot be resolved\n" + 
50420
		"----------\n" + 
50421
		"25. ERROR in FromImpl.java (at line 33)\n" + 
50422
		"	public class FromImpl<Z, X>  extends PathImpl<X> implements javax.persistence.criteria.From<Z, X> {\n" + 
50423
		"	                                     ^^^^^^^^\n" + 
50424
		"PathImpl cannot be resolved to a type\n" + 
50425
		"----------\n" + 
50426
		"26. ERROR in FromImpl.java (at line 33)\n" + 
50427
		"	public class FromImpl<Z, X>  extends PathImpl<X> implements javax.persistence.criteria.From<Z, X> {\n" + 
50428
		"	                                                            ^^^^^^^^^^^^^^^^^\n" + 
50429
		"javax.persistence cannot be resolved to a type\n" + 
50430
		"----------\n" + 
50431
		"27. ERROR in FromImpl.java (at line 35)\n" + 
50432
		"	protected Set<Join<X, ?>> joins;\n" + 
50433
		"	              ^^^^\n" + 
50434
		"Join cannot be resolved to a type\n" + 
50435
		"----------\n" + 
50436
		"28. ERROR in FromImpl.java (at line 37)\n" + 
50437
		"	public Set<Join<X, ?>> getJoins() {\n" + 
50438
		"	           ^^^^\n" + 
50439
		"Join cannot be resolved to a type\n" + 
50440
		"----------\n" + 
50441
		"29. ERROR in FromImpl.java (at line 38)\n" + 
50442
		"	return joins;\n" + 
50443
		"	       ^^^^^\n" + 
50444
		"Join cannot be resolved to a type\n" + 
50445
		"----------\n" + 
50446
		"30. ERROR in FromImpl.java (at line 41)\n" + 
50447
		"	public void findJoins(AbstractQueryImpl query){\n" + 
50448
		"	                      ^^^^^^^^^^^^^^^^^\n" + 
50449
		"AbstractQueryImpl cannot be resolved to a type\n" + 
50450
		"----------\n" + 
50451
		"31. WARNING in FromImpl.java (at line 42)\n" + 
50452
		"	Stack stack = new Stack();\n" + 
50453
		"	^^^^^\n" + 
50454
		"Stack is a raw type. References to generic type Stack<E> should be parameterized\n" + 
50455
		"----------\n" + 
50456
		"32. WARNING in FromImpl.java (at line 42)\n" + 
50457
		"	Stack stack = new Stack();\n" + 
50458
		"	                  ^^^^^\n" + 
50459
		"Stack is a raw type. References to generic type Stack<E> should be parameterized\n" + 
50460
		"----------\n" + 
50461
		"33. WARNING in FromImpl.java (at line 43)\n" + 
50462
		"	stack.push(this);\n" + 
50463
		"	^^^^^^^^^^^^^^^^\n" + 
50464
		"Type safety: The method push(Object) belongs to the raw type Stack. References to generic type Stack<E> should be parameterized\n" + 
50465
		"----------\n" + 
50466
		"34. WARNING in FromImpl.java (at line 45)\n" + 
50467
		"	FromImpl currentJoin = (FromImpl) stack.pop();\n" + 
50468
		"	^^^^^^^^\n" + 
50469
		"FromImpl is a raw type. References to generic type FromImpl<Z,X> should be parameterized\n" + 
50470
		"----------\n" + 
50471
		"35. WARNING in FromImpl.java (at line 45)\n" + 
50472
		"	FromImpl currentJoin = (FromImpl) stack.pop();\n" + 
50473
		"	                        ^^^^^^^^\n" + 
50474
		"FromImpl is a raw type. References to generic type FromImpl<Z,X> should be parameterized\n" + 
50475
		"----------\n" + 
50476
		"36. WARNING in FromImpl.java (at line 46)\n" + 
50477
		"	stack.addAll(currentJoin.getJoins());\n" + 
50478
		"	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
50479
		"Type safety: The method addAll(Collection) belongs to the raw type Vector. References to generic type Vector<E> should be parameterized\n" + 
50480
		"----------\n" + 
50481
		"37. ERROR in FromImpl.java (at line 47)\n" + 
50482
		"	if (currentJoin.isLeaf){\n" + 
50483
		"	                ^^^^^^\n" + 
50484
		"isLeaf cannot be resolved or is not a field\n" + 
50485
		"----------\n");
50486
}
50168
}
50487
}

Return to bug 306464