
897 N.E.2d 340 (2008)
The PEOPLE of the State of Illinois, Plaintiff-Appellee,
v.
Joseph EASTLING, Defendant-Appellant.
No. 1-05-2969.
Appellate Court of Illinois, First District, First Division.
October 20, 2008.
Rehearing Denied November 12, 2008.
*341 Michael J. Pelletier, Office of the State Appellate Defender (Tomas G. Gonzales, of Counsel), Chicago, IL, for Appellant.
Richard A. Devine, State's Attorney of Cook County (James E. Fitzgerald, Kathryn A. Scheirl, and Pierina J. Infelise, of Counsel), Chicago, IL, for Appellee.
Justice HALL delivered the opinion of the court:
Following a jury trial, defendant Joseph Eastling was found guilty of first-degree murder in the shooting death of Dwayne Cobbins. Defendant was subsequently sentenced to natural life imprisonment without parole.
Defendant contends on appeal that his sixth amendment right to confront witnesses against him was violated when the trial court improperly admitted State witness Julius Wilson's prior statements to the grand jury and his prior statements to police as substantive evidence under section 115-10.1 of the Code of Criminal Procedure of 1963 (Code) (725 ILCS 5/115-10.1 (West 1998)). For the reasons that follow, we affirm.
The State presented evidence that on February 29, 2000, at approximately 4:15 in the afternoon, defendant and two of his fellow gang members, one of whom is a codefendant and the other who is now *342 deceased, drove up beside the victim's double-parked car and fatally shot the victim as he sat in the car talking to a man standing curbside. The State theorized that the shooting was motivated by a gang war between defendant's gang, The One Ways, and the victim's gang, The Imperial Insane Vice Lords or Double I's.
Julius Wilson, a convicted felon, was called as a witness by the State. Wilson testified that at the time of the shooting he was a member of the Traveling Vice Lords street gang. Wilson's gang was affiliated with the defendant's gang.
At the time of his testimony, Wilson was being held in custody pursuant to an outstanding warrant in connection with an unrelated case. On direct examination, Wilson denied ever appearing before the grand jury. Wilson also denied ever meeting with Detective Kato to discuss this case, although he initially admitted that the detective questioned him about the case and he claimed he was forced into making the statements attributed to him by the detective.
Detective Kato testified about his meeting with Julius Wilson. The detective testified that on June 16, 2000, he received information from a fellow detective that Wilson had information concerning the shooting.
Detective Kato testified that Wilson told him that around March 1, 2000, Wilson had a conversation with defendant during which defendant stated that he had caught the victim "snoozing" and had "chopped his ass," meaning he caught the victim off guard and then fatally shot him. Wilson also identified a photograph of defendant as the person who admitted to killing the victim.
Detective Kato further testified that Wilson told him that in April or May 2000, Wilson and defendant observed the police conduct a police raid on a building located at 4235 West Kamerling. Wilson stated that the defendant became visibly upset when he saw a police officer exit the building carrying a rifle. According to Wilson, defendant claimed that the rifle was the same firearm he used to kill the victim.
Detective Kato testified that Wilson gave his statement under his own free will, he was never threatened into giving the statement, and he was not offered anything in exchange for his information.
Based on Wilson's information, Detective Kato was able to locate the rifle recovered in the police raid. The rifle fit the description of the firearm Wilson claimed he observed during the raid.
The prosecutor confronted Wilson with a transcript of his grand jury testimony after he denied appearing before the grand jury. When the prosecutor read Wilson the questions and answers from the transcript, Wilson denied giving each and every answer attributed to him.
At this point, the trial court asked defense counsel for defendant if he would stipulate that according to the court reporter's notes the aforementioned questions and answers were asked and given during Wilson's grand jury examination. Defense counsel agreed to the stipulation.
Assistant State's Attorney (ASA) Ed Maloney then testified about the circumstances surrounding Wilson's grand jury testimony. ASA Maloney testified that on September 20, 2000, he presented Wilson to the grand jury in connection with this case. ASA Maloney testified that he asked Wilson a series of questions concerning the shooting incident and that Wilson provided him with a series of answers to those questions.
ASA Maloney then identified State's exhibit No. 46 as a true and correct copy of the transcript of Wilson's grand jury testimony. *343 However, the trial court did not allow him to publish the contents of the transcript to the jury because the court determined that the State had already read through the transcript during Wilson's direct examination.
While the jury was out deliberating, the trial court called Julius Wilson and his counsel before the bench, stating as follows:
"THE COURT: The State just finished their last argument in this case. I'm going to give the State until Friday to see whether or not they are going to indict [Wilson] for perjury and/or contempt. And if they don't do it by Friday, I'll dismiss the petition. If they do, that will be a whole different avenue. But I've never seen or heard of any witness who has denied that he was the person who testified before the grand jury. I never heard of such a thing. I never saw it. It might be the first in the annals of American criminal jurisprudence. But it's not going to be for me to decide whether he should be indicted for it, or if he is, whether he's guilty or not guilty.
The case will be held until Friday to see if the State decides to secure an indictment and if they do, whether there's a true bill voted. That's all."[1]

ANALYSIS
Defendant now contends on appeal that the admission of Julius Wilson's prior statements to the grand jury violated defendant's confrontation rights under the sixth amendment to the United States Constitution (U.S. Const., amend.VI) because he was denied an adequate opportunity to cross-examine Wilson regarding his alleged grand jury testimony where Wilson claimed he never appeared before the grand jury.
Defendant also contends that Wilson's prior statements to the grand jury were inadmissible as substantive evidence under section 115-10.1(b) of the Code because he was denied an adequate opportunity to cross-examine Wilson regarding these statements where Wilson claimed he never appeared before the grand jury. Defendant further contends that Wilson's prior statements to Detective Kato were inadmissible as substantive evidence under section 115-10.1 of the Code because the statements did not meet the personal knowledge requirement of subsection (c)(2). We disagree.
Initially, we note that defendant has waived these issues for review because he failed to raise an objection to the statements at trial and did not include these issues in his post-trial motion. People v. Enoch, 122 Ill.2d 176, 185-86, 119 Ill.Dec. 265, 522 N.E.2d 1124 (1988). Furthermore, we find that the plain error doctrine articulated in Supreme Court Rule 615(a) (134 Ill.2d R. 615(a)) does not apply because the statements at issue were not so prejudicial as to deprive defendant of a fair trial and the evidence was not closely balanced. People v. Laugharn, 297 Ill.App.3d 807, 810-11, 232 Ill.Dec. 381, 698 N.E.2d 219 (1998).
Nevertheless, even absent waiver, we find that the trial court did not err in admitting the statements at issue.
We generally review the admissibility of evidence at trial for an abuse of discretion. People v. Aguilar, 265 Ill. App.3d 105, 109, 202 Ill.Dec. 485, 637 N.E.2d 1221 (1994). However, we independently *344 review constitutional issues. People v. Edwards, 309 Ill.App.3d 447, 452, 242 Ill.Dec. 769, 722 N.E.2d 258 (1999).
"A criminal defendant has a fundamental constitutional right to confront the witnesses against him, which includes the right to cross-examination." People v. Kliner, 185 Ill.2d 81, 130, 235 Ill.Dec. 667, 705 N.E.2d 850 (1998); see also People v. Davis, 337 Ill.App.3d 977, 984, 272 Ill.Dec. 397, 787 N.E.2d 212 (2003) (confrontation clause gives criminal defendant the right to cross-examine witnesses against him in order to show bias, motive, or other factors which might influence testimony).
However, the confrontation clause guarantees only "`an opportunity for effective cross-examination, not cross-examination that is effective in whatever way, and to whatever extent, the defense might wish.'" (Emphasis in original.) People v. Flores, 128 Ill.2d 66, 89, 131 Ill.Dec. 106, 538 N.E.2d 481 (1989), quoting United States v. Owens, 484 U.S. 554, 559, 108 S.Ct. 838, 842, 98 L.Ed.2d 951, 957 (1988). The confrontation clause includes no guarantee that a witness's testimony will not be "marred by forgetfulness, confusion, or evasion. To the contrary, the [c]onfrontation [c]lause is generally satisfied when the defense is given a full and fair opportunity to probe and expose these infirmities through cross-examination, thereby calling to the attention of the factfinder the reasons for giving scant weight to the witness' testimony." Delaware v. Fensterer, 474 U.S. 15, 21-22, 106 S.Ct. 292, 295, 88 L.Ed.2d 15, 21 (1985).
Consequently, a witness's claimed inability to recall a prior out-of-court statement does not violate a defendant's right of confrontation as long as the witness is physically present at trial, takes an oath to testify truthfully, and answers questions put to him during cross-examination. Flores, 128 Ill.2d at 89-90, 131 Ill.Dec. 106, 538 N.E.2d 481. Under these circumstances, a defendant has a full and fair opportunity to expose deliberate falsehoods or genuine flaws in a witness's memory. See Owens, 484 U.S. at 559, 108 S.Ct. at 842, 98 L.Ed.2d at 958 (confrontation clause not violated where a defendant has a full and fair opportunity to bring out a witness's bad memory and other facts tending to discredit his testimony).
Here, Julius Wilson's assertions that he never appeared before the grand jury and that he never spoke to Detective Kato about the shooting incident did not deprive defendant of the opportunity to effectively cross-examine Wilson within the meaning of the confrontation clause. Wilson was physically present at trial and confronted the defendant face-to-face, he was competent to testify and testified under oath, defense counsel had a full opportunity for contemporaneous cross-examination, and the judge, jury, and defendant were able to observe Wilson's demeanor and body language and evaluate for themselves whether he was being truthful when he testified that he never appeared before the grand jury and never spoke to Detective Kato about the shooting incident.
This examination satisfied the primary purpose of the confrontation clause, which is to facilitate the truth-finding process by providing the trier of fact with a satisfactory basis for evaluating the truth of a prior out-of-court statement. United States v. Baker, 722 F.2d 343, 349 (7th Cir.1983); People v. Jenkins, 104 Ill.App.3d 522, 524-25, 60 Ill.Dec. 272, 432 N.E.2d 1171 (1982).
In contrast to cases in which the witness either invoked a fifth amendment privilege against self-incrimination and refused to answer questions (Douglas v. Alabama, 380 U.S. 415, 420, 85 S.Ct. 1074, 1077, 13 L.Ed.2d 934, 938 (1965)), or claimed to have totally not remembered testifying before *345 the grand jury (People v. Yarbrough, 166 Ill.App.3d 825, 117 Ill.Dec. 765, 520 N.E.2d 1116 (1988)), Wilson testified under oath that he never even appeared before the grand jury in connection with this case. And although Wilson testified that he never spoke to Detective Kato about the shooting incident, he initially admitted that the detective questioned him about the incident and claimed that he was forced into making the statements attributed to him by the detective.
The record clearly shows that the defendant was afforded the opportunity to cross-examine Julius Wilson under oath and challenge his credibility by calling the jury's attention to Wilson's contentions that he never appeared before the grand jury in connection with this case and was never questioned by Detective Kato concerning the shooting incident.
Finally, even though the portion of Wilson's statement to Detective Kato in which he claims the defendant told him that he shot the victim was inadmissible as substantive evidence under subsection (c)(2) of section 115-10.1 of the Code because Wilson had no personal knowledge of the event, such admission was harmless where virtually identical evidence was properly admitted through other witnesses.
Allen Sanders, a convicted felon, testified that he had known the victim for about 10 years and that they were both members of the same street gang. Sanders claimed he also knew defendant and codefendant. On redirect, Sanders acknowledged that he spoke with Detective Sam Cirone at the scene of the shooting and identified defendant and codefendant as the individuals who shot and killed the victim.
Jarvell Jones testified that he was a member of the Conservative Vice Lords street gang and that he grew up on the same block where the shooting occurred and was friends with the victim. Jones testified that on the date of the shooting, he was sitting on his porch when he saw the victim sitting in his car talking to a man standing curbside. At that point, defendant's car pulled up beside the victim's car.
Jarvell Jones testified that defendant was driving the vehicle, and that the codefendant, who was sitting in the front passenger seat, reached across defendant and shot at the victim. Jones estimated that about 10 shots were fired. On cross-examination, Jones testified that he had seen defendant on two prior occasions and recognized him because defendant had once pulled a gun on him.
Accordingly, for the reasons set forth above, the judgment of the circuit court of Cook County is affirmed.
Affirmed.
R. GORDON, P.J., and WOLFSON, J., concur.
NOTES
[1]  Julius Wilson was indicted for perjury (People of the State of Illinois v. Julius Wilson, No. 05 CR 19862 (Cir. Ct. Cook Co.)). On June 16, 2006, he pled guilty to committing perjury in the instant case and received a two-year sentence of imprisonment.
