177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle/* 277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * Copyright (C) 2015 The Android Open Source Project 377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * 477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * Licensed under the Apache License, Version 2.0 (the "License"); 577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * you may not use this file except in compliance with the License. 677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * You may obtain a copy of the License at 777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * 877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * http://www.apache.org/licenses/LICENSE-2.0 977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * 1077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * Unless required by applicable law or agreed to in writing, software 1177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * distributed under the License is distributed on an "AS IS" BASIS, 1277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * See the License for the specific language governing permissions and 1477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle * limitations under the License. 1577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle */ 1677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 1777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravlepublic class Main { 1877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 1977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle private volatile Object objectField; 2077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle private volatile int intField; 2177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle private volatile float floatField; 2277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle private volatile long longField; 2377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle private volatile double doubleField; 2477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle private volatile byte byteField; 2577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle private volatile boolean booleanField; 2677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle private volatile char charField; 2777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle private volatile short shortField; 2877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 2977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static void $opt$setObjectField(Main m) { 3077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.objectField = null; 3177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 3277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 3377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static void $opt$setIntField(Main m) { 3477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.intField = 0; 3577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 3677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 3777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static void $opt$setFloatField(Main m) { 3877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.floatField = 0; 3977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 4077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 4177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static void $opt$setLongField(Main m) { 4277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.longField = 0; 4377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 4477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 4577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static void $opt$setDoubleField(Main m) { 4677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.doubleField = 0; 4777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 4877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 4977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static void $opt$setByteField(Main m) { 5077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.byteField = 0; 5177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 5277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 5377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static void $opt$setBooleanField(Main m) { 5477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.booleanField = false; 5577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 5677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 5777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static void $opt$setCharField(Main m) { 5877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.charField = 0; 5977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 6077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 6177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static void $opt$setShortField(Main m) { 6277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle m.shortField = 0; 6377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 6477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 6577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static Object $opt$getObjectField(Main m) { 6677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.objectField; 6777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 6877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 6977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static int $opt$getIntField(Main m) { 7077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.intField; 7177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 7277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 7377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static float $opt$getFloatField(Main m) { 7477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.floatField; 7577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 7677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 7777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static long $opt$getLongField(Main m) { 7877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.longField; 7977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 8077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 8177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static double $opt$getDoubleField(Main m) { 8277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.doubleField; 8377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 8477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 8577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static byte $opt$getByteField(Main m) { 8677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.byteField; 8777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 8877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 8977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static boolean $opt$getBooleanField(Main m) { 9077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.booleanField; 9177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 9277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 9377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static char $opt$getCharField(Main m) { 9477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.charField; 9577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 9677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 9777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static short $opt$getShortField(Main m) { 9877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle return m.shortField; 9977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 10077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 10177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle public static void main(String[] args) { 10277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle int methodLine = 30; 10377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle int thisLine = 103; 10477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 10577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$setObjectField(null); 10677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 10777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 10877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 2, methodLine, "$opt$setObjectField"); 10977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 11077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 11177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$setIntField(null); 11277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 11377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 11477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$setIntField"); 11577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 11677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 11777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$setFloatField(null); 11877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 11977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 12077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$setFloatField"); 12177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 12277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 12377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$setLongField(null); 12477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 12577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 12677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$setLongField"); 12777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 12877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 12977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$setDoubleField(null); 13077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 13177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 13277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$setDoubleField"); 13377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 13477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 13577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$setByteField(null); 13677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 13777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 13877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$setByteField"); 13977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 14077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 14177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$setBooleanField(null); 14277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 14377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 14477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$setBooleanField"); 14577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 14677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 14777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$setCharField(null); 14877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 14977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 15077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$setCharField"); 15177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 15277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 15377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$setShortField(null); 15477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 15577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 15677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$setShortField"); 15777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 15877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 15977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$getObjectField(null); 16077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 16177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 16277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$getObjectField"); 16377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 16477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 16577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$getIntField(null); 16677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 16777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 16877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$getIntField"); 16977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 17077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 17177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$getFloatField(null); 17277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 17377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 17477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$getFloatField"); 17577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 17677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 17777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$getLongField(null); 17877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 17977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 18077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$getLongField"); 18177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 18277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 18377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$getDoubleField(null); 18477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 18577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 18677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$getDoubleField"); 18777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 18877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 18977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$getByteField(null); 19077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 19177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 19277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$getByteField"); 19377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 19477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 19577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$getBooleanField(null); 19677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 19777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 19877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$getBooleanField"); 19977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 20077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 20177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$getCharField(null); 20277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 20377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 20477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$getCharField"); 20577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 20677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle try { 20777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle $opt$getShortField(null); 20877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new RuntimeException("Failed to throw NullPointerException."); 20977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } catch (NullPointerException npe) { 21077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle check(npe, thisLine += 6, methodLine += 4, "$opt$getShortField"); 21177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 21277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 21377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 21477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle static void check(NullPointerException npe, int mainLine, int medthodLine, String methodName) { 21577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle System.out.println(methodName); 21677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle StackTraceElement[] trace = npe.getStackTrace(); 21777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle checkElement(trace[0], "Main", methodName, "Main.java", medthodLine); 21877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle checkElement(trace[1], "Main", "main", "Main.java", mainLine); 21977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 22077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 22177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle static void checkElement(StackTraceElement element, 22277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle String declaringClass, String methodName, 22377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle String fileName, int lineNumber) { 22477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle assertEquals(declaringClass, element.getClassName()); 22577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle assertEquals(methodName, element.getMethodName()); 22677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle assertEquals(fileName, element.getFileName()); 22777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle assertEquals(lineNumber, element.getLineNumber()); 22877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 22977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 23077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle static void assertEquals(Object expected, Object actual) { 23177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle if (!expected.equals(actual)) { 23277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle String msg = "Expected \"" + expected + "\" but got \"" + actual + "\""; 23377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new AssertionError(msg); 23477520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 23577520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 23677520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 23777520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle static void assertEquals(int expected, int actual) { 23877520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle if (expected != actual) { 23977520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle throw new AssertionError("Expected " + expected + " got " + actual); 24077520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 24177520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle } 24277520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle 24377520bca97ec44e3758510cebd0f20e3bb4584eaCalin Juravle} 244