239 int size = input.readInt(); |
239 int size = input.readInt(); |
240 if (size == 0) { |
240 if (size == 0) { |
241 throw new IOException("Event can't have zero size"); |
241 throw new IOException("Event can't have zero size"); |
242 } |
242 } |
243 long typeId = input.readLong(); |
243 long typeId = input.readLong(); |
244 |
244 Parser p = parsers.get(typeId); |
245 if (typeId != 0) { // Not metadata event |
245 if (p instanceof EventParser) { |
246 Parser p = parsers.get(typeId); |
246 // Fast path |
247 if (p instanceof EventParser) { |
247 EventParser ep = (EventParser) p; |
248 EventParser ep = (EventParser) p; |
248 RecordedEvent event = ep.parse(input); |
249 RecordedEvent event = ep.parse(input); |
249 if (event != null) { |
250 if (event != null) { |
250 input.position(pos + size); |
251 input.position(pos + size); |
251 return event; |
252 return event; |
252 } |
253 } |
253 // Not accepted by filter |
254 } |
254 } else { |
255 if (typeId == 1) { // checkpoint event |
255 if (typeId == 1) { // checkpoint event |
256 if (flushOperation != null) { |
256 if (flushOperation != null) { |
257 parseCheckpoint(); |
257 parseCheckpoint(); |
258 } |
258 } |
259 } else { |
259 } else { |
260 Logger.log(LogTag.JFR_SYSTEM_PARSER, LogLevel.INFO, "Unknwon event type " + typeId); |
260 if (typeId != 0) { // Not metadata event |
|
261 Logger.log(LogTag.JFR_SYSTEM_PARSER, LogLevel.INFO, "Unknwon event type " + typeId); |
|
262 } |
261 } |
263 } |
262 } |
264 } |
263 input.position(pos + size); |
265 input.position(pos + size); |
264 } |
266 } |
265 return null; |
267 return null; |