@@ -280,29 +280,20 @@ public void loadInput(String name, byte[] data) {
280280 }
281281
282282 try {
283-
284- ClassReader reader ;
285- ClassNode node ;
286- try {
287- reader = new ClassReader (data );
288- node = new ClassNode ();
289- reader .accept (node , ClassReader .SKIP_FRAMES );
290- } catch (Throwable t ) {
291- // Check and see if Cafedood can patch out ASM crashing data
292- ClassFileReader cfr = new ClassFileReader ();
293- cfr .setDropForwardVersioned (true );
294- cfr .setDropEofAttributes (true );
295- ClassFile cf = cfr .read (data );
296- new IllegalStrippingTransformer (cf ).transform ();
297- ClassFileWriter cfw = new ClassFileWriter ();
298- byte [] fixedData = cfw .write (cf );
299- // Should be compliant now unless a new crash is discovered.
300- // Check for updates or open an issue on the CAFED00D project if this occurs
301- reader = new ClassReader (fixedData );
302- node = new ClassNode ();
303- reader .accept (node , ClassReader .SKIP_FRAMES );
304- }
305-
283+ // Pass the bytecode through cafedude to filter out any ASM crashing data.
284+ // We always do this step since there are ASM crashes targeting both reading and writing steps
285+ ClassFileReader cfr = new ClassFileReader ();
286+ cfr .setDropForwardVersioned (true );
287+ cfr .setDropEofAttributes (true );
288+ ClassFile cf = cfr .read (data );
289+ new IllegalStrippingTransformer (cf ).transform ();
290+ ClassFileWriter cfw = new ClassFileWriter ();
291+ byte [] fixedData = cfw .write (cf );
292+ // Should be compliant now unless a new crash is discovered.
293+ // Check for updates or open an issue on the CAFED00D project if this occurs
294+ ClassReader reader = new ClassReader (fixedData );
295+ ClassNode node = new ClassNode ();
296+ reader .accept (node , ClassReader .SKIP_FRAMES );
306297 readers .put (node , reader );
307298 setConstantPool (node , new ConstantPool (reader ));
308299
0 commit comments