#vulnerable code 
                             private void addCallToSuper(ClassScope classScope, GenerationContext context, Collection<Expression> args) {
		PreConditions.checkNotNull(classScope);
		if (classScope.getClazz().getSuperclass().isDefined()
				&& !classScope.getClazz().getSuperclass().getOrThrow().getClazz().equals(Object.class)) {
			// avoid useless call to super() when the super class is Object
			printer.print(stJsName(classScope.getClazz().getSuperClass())).print(".call");
			printArguments(Collections.singleton("this"), args, Collections.<String> emptyList(), context);
			printer.print(";");
		}
	} 
                            #location 6 
                            #vulnerability type NULL_DEREFERENCE
#fixed code
                             private void addCallToSuper(ClassScope classScope, GenerationContext context, Collection<Expression> args) {
		PreConditions.checkNotNull(classScope);

		Option<ClassWrapper> superClass = classScope.getClazz().getSuperclass();

		if (superClass.isDefined()) {
			if (ClassUtils.isSyntheticType(superClass.getOrThrow())) {
				// do not add call to super class is it's a synthetic
				return;
			}

			if (superClass.getOrThrow().getClazz().equals(Object.class)) {
				// avoid useless call to super() when the super class is Object
				return;
			}
			printer.print(stJsName(superClass.getOrThrow())).print(".call");
			printArguments(Collections.singleton("this"), args, Collections.<String> emptyList(), context);
			printer.print(";");

		}
	}