@@ -269,18 +269,42 @@ public synchronized void close() {
269
269
}
270
270
}
271
271
272
- @ Override
273
- public PacketEvent onPacketSending (Injector injector , Object packet , NetworkMarker marker ) {
272
+ @ Override
273
+ public PacketEvent onPacketSending (Injector injector , Object packet , NetworkMarker marker ) {
274
274
Class <?> clazz = packet .getClass ();
275
-
275
+
276
276
if (sendingFilters .contains (clazz ) || marker != null ) {
277
- PacketContainer container = new PacketContainer (PacketRegistry .getPacketType (clazz ), packet );
278
- return packetQueued (container , injector .getPlayer (), marker );
277
+ try {
278
+ PacketContainer container = new PacketContainer (PacketRegistry .getPacketType (clazz ), packet );
279
+ return packetQueued (container , injector .getPlayer (), marker );
280
+ } catch (LinkageError er ) {
281
+ // Issue #109
282
+ if (isDebug ()) {
283
+ try {
284
+ System .out .println ("Encountered a LinkageError in onPacketSending" );
285
+ System .out .println ("injector=" + injector );
286
+ System .out .println ("packet=" + packet );
287
+ System .out .println ("marker=" + marker );
288
+
289
+ Thread curr = Thread .currentThread ();
290
+ System .out .println ("current thread=" + curr .getName ());
291
+ System .out .println ("class loader=" + curr .getContextClassLoader ());
292
+
293
+ Class <PacketContainer > container = PacketContainer .class ;
294
+ System .out .println ("packet container=" + container );
295
+ System .out .println ("class loader=" + container .getClassLoader ());
296
+ } catch (LinkageError e1 ) {
297
+ e1 .printStackTrace ();
298
+ }
299
+ }
300
+
301
+ er .printStackTrace ();
302
+ }
279
303
}
280
304
281
305
// Don't change anything
282
306
return null ;
283
- }
307
+ }
284
308
285
309
@ Override
286
310
public PacketEvent onPacketReceiving (Injector injector , Object packet , NetworkMarker marker ) {
0 commit comments