@@ -110,7 +110,7 @@ public final void wait() throws InterruptedException {
110
110
protected void finalize () throws Throwable { }
111
111
112
112
/**
113
- * This method is not present in the original Objecct class.
113
+ * This method is not present in the original Object class.
114
114
* It will be called by JBMC when the monitor in this instance
115
115
* is being acquired as a result of either the execution of a
116
116
* monitorenter bytecode instruction or the call to a synchronized
@@ -122,8 +122,8 @@ public static void monitorenter(Object object)
122
122
{
123
123
//FIXME: we shoud remove the call to this method from the call
124
124
// stack appended to the thrown exception
125
- // if (object == null)
126
- // throw new NullPointerException();
125
+ if (object == null )
126
+ throw new NullPointerException ();
127
127
128
128
CProver .atomicBegin ();
129
129
// this assume blocks this execution path in JBMC and simulates
@@ -134,7 +134,7 @@ public static void monitorenter(Object object)
134
134
}
135
135
136
136
/**
137
- * This method is not present in the original Objecct class.
137
+ * This method is not present in the original Object class.
138
138
* It will be called by JBMC when the monitor in this instance
139
139
* is being released as a result of either the execution of a
140
140
* monitorexit bytecode instruction or the return (normal or exceptional)
@@ -145,6 +145,9 @@ public static void monitorexit(Object object)
145
145
{
146
146
//FIXME: we shoud remove the call to this method from the call
147
147
// stack appended to the thrown exception
148
+ // FIXME: Enabling these exceptions makes
149
+ // jbmc-regression/synchronized-blocks/test_sync.desc
150
+ // run into an infinite loop during symex
148
151
// if (object == null)
149
152
// throw new NullPointerException();
150
153
0 commit comments