package com.thoughtworks.xstream.converters.reflection; import com.ijm.dataencryption.de.DataDecryptTool; import com.thoughtworks.xstream.converters.ConversionException; import com.thoughtworks.xstream.converters.MarshallingContext; import com.thoughtworks.xstream.converters.UnmarshallingContext; import com.thoughtworks.xstream.converters.reflection.ReflectionProvider; import com.thoughtworks.xstream.core.ClassLoaderReference; import com.thoughtworks.xstream.io.ExtendedHierarchicalStreamWriterHelper; import com.thoughtworks.xstream.io.HierarchicalStreamReader; import com.thoughtworks.xstream.io.HierarchicalStreamWriter; import com.thoughtworks.xstream.mapper.Mapper; import java.lang.reflect.Field; import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import net.sf.cglib.proxy.Callback; import net.sf.cglib.proxy.CallbackFilter; import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.Factory; import net.sf.cglib.proxy.NoOp; /* loaded from: classes.dex */ public class CGLIBEnhancedConverter extends SerializableConverter { private static String CALLBACK_MARKER = "CGLIB$CALLBACK_"; private static String DEFAULT_NAMING_MARKER = "$$EnhancerByCGLIB$$"; static /* synthetic */ Class class$com$thoughtworks$xstream$converters$reflection$CGLIBEnhancedConverter; static /* synthetic */ Class class$com$thoughtworks$xstream$mapper$CGLIBMapper$Marker; static /* synthetic */ Class class$java$lang$Class; static /* synthetic */ Class class$java$lang$String; static /* synthetic */ Class class$java$util$HashMap; static /* synthetic */ Class class$net$sf$cglib$proxy$Callback; static /* synthetic */ Class class$net$sf$cglib$proxy$Factory; static /* synthetic */ Class class$net$sf$cglib$proxy$MethodInterceptor; static /* synthetic */ Class class$net$sf$cglib$proxy$NoOp; private transient Map fieldCache; private static class CGLIBFilteringReflectionProvider extends ReflectionProviderWrapper { public CGLIBFilteringReflectionProvider(ReflectionProvider reflectionProvider) { super(reflectionProvider); } @Override // com.thoughtworks.xstream.converters.reflection.ReflectionProviderWrapper, com.thoughtworks.xstream.converters.reflection.ReflectionProvider public void visitSerializableFields(Object obj, final ReflectionProvider.Visitor visitor) { this.wrapped.visitSerializableFields(obj, new ReflectionProvider.Visitor() { // from class: com.thoughtworks.xstream.converters.reflection.CGLIBEnhancedConverter.CGLIBFilteringReflectionProvider.1 @Override // com.thoughtworks.xstream.converters.reflection.ReflectionProvider.Visitor public void visit(String str, Class cls, Class cls2, Object obj2) { if (str.startsWith("CGLIB$")) { return; } visitor.visit(str, cls, cls2, obj2); } }); } } private static class ReverseEngineeredCallbackFilter implements CallbackFilter { private final Map callbackIndexMap; public ReverseEngineeredCallbackFilter(Map map) { this.callbackIndexMap = map; } public int accept(Method method) { if (this.callbackIndexMap.containsKey(method)) { return ((Integer) this.callbackIndexMap.get(method)).intValue(); } ConversionException conversionException = new ConversionException("CGLIB callback not detected in reverse engineering"); conversionException.add("CGLIB-callback", method.toString()); throw conversionException; } } private static final class ReverseEngineeringInvocationHandler implements InvocationHandler { private final Integer index; private final Map indexMap; public ReverseEngineeringInvocationHandler(int i, Map map) { this.indexMap = map; this.index = new Integer(i); } @Override // java.lang.reflect.InvocationHandler public Object invoke(Object obj, Method method, Object[] objArr) throws Throwable { Map map = this.indexMap; map.put(map.get(null), this.index); return null; } } public CGLIBEnhancedConverter(Mapper mapper, ReflectionProvider reflectionProvider, ClassLoaderReference classLoaderReference) { super(mapper, new CGLIBFilteringReflectionProvider(reflectionProvider), classLoaderReference); this.fieldCache = new HashMap(); } static /* synthetic */ Class class$(String str) { try { return Class.forName(str); } catch (ClassNotFoundException e) { throw new NoClassDefFoundError().initCause(e); } } private Object create(Enhancer enhancer, List list, boolean z) { Object create = enhancer.create(); if (z) { ((Factory) create).setCallbacks((Callback[]) list.toArray(new Callback[list.size()])); } return create; } private Map createCallbackIndexMap(Factory factory) { Class cls; Method method; Callback[] callbacks = factory.getCallbacks(); Callback[] callbackArr = new Callback[callbacks.length]; Map hashMap = new HashMap(); int i = -1; for (int i2 = 0; i2 < callbacks.length; i2++) { Callback callback = callbacks[i2]; if (callback == null) { callbackArr[i2] = null; } else { Class cls2 = class$net$sf$cglib$proxy$NoOp; if (cls2 == null) { cls2 = class$("net.sf.cglib.proxy.NoOp"); class$net$sf$cglib$proxy$NoOp = cls2; } if (cls2.isAssignableFrom(callback.getClass())) { callbackArr[i2] = NoOp.INSTANCE; i = i2; } else { callbackArr[i2] = createReverseEngineeredCallbackOfProperType(callback, i2, hashMap); } } } try { factory.setCallbacks(callbackArr); HashSet> hashSet = new HashSet(); HashSet hashSet2 = new HashSet(); r6 = factory.getClass(); do { hashSet2.addAll(Arrays.asList(r6.getDeclaredMethods())); hashSet2.addAll(Arrays.asList(r6.getMethods())); hashSet.addAll(Arrays.asList(r6.getInterfaces())); r6 = r6.getSuperclass(); } while (r6 != null); for (Class cls3 : hashSet) { hashSet2.addAll(Arrays.asList(cls3.getDeclaredMethods())); } Iterator it = hashSet2.iterator(); while (it.hasNext()) { Method method2 = (Method) it.next(); if (!method2.isAccessible()) { method2.setAccessible(true); } if (class$net$sf$cglib$proxy$Factory == null) { cls = class$("net.sf.cglib.proxy.Factory"); class$net$sf$cglib$proxy$Factory = cls; } else { cls = class$net$sf$cglib$proxy$Factory; } if (!cls.isAssignableFrom(method2.getDeclaringClass()) && (method2.getModifiers() & 24) <= 0) { Class[] parameterTypes = method2.getParameterTypes(); try { try { method = (method2.getModifiers() & DataDecryptTool.DECRYPT_SP_FILE) > 0 ? factory.getClass().getMethod(method2.getName(), method2.getParameterTypes()) : method2; } catch (NoSuchMethodException unused) { ConversionException conversionException = new ConversionException("CGLIB enhanced proxies wit abstract nethod that has not been implemented"); conversionException.add("proxy-superclass", cls3.getSuperclass().getName()); conversionException.add("method", method2.toString()); throw conversionException; } catch (InvocationTargetException unused2) { } } catch (IllegalAccessException e) { e = e; } try { hashMap.put(null, method2); method.invoke(factory, parameterTypes == null ? null : createNullArguments(parameterTypes)); if (hashMap.containsKey(method2)) { it.remove(); } } catch (IllegalAccessException e2) { e = e2; method2 = method; ObjectAccessException objectAccessException = new ObjectAccessException("Cannot access method", e); objectAccessException.add("method", method2.toString()); throw objectAccessException; } } it.remove(); } if (i >= 0) { Integer num = new Integer(i); Iterator it2 = hashSet2.iterator(); while (it2.hasNext()) { hashMap.put(it2.next(), num); } } factory.setCallbacks(callbacks); hashMap.remove(null); return hashMap; } catch (Throwable th) { factory.setCallbacks(callbacks); throw th; } } private Object[] createNullArguments(Class[] clsArr) { Object[] objArr = new Object[clsArr.length]; for (int i = 0; i < objArr.length; i++) { Class cls = clsArr[i]; if (cls.isPrimitive()) { if (cls == Byte.TYPE) { objArr[i] = new Byte((byte) 0); } else if (cls == Short.TYPE) { objArr[i] = new Short((short) 0); } else if (cls == Integer.TYPE) { objArr[i] = new Integer(0); } else if (cls == Long.TYPE) { objArr[i] = new Long(0L); } else if (cls == Float.TYPE) { objArr[i] = new Float(0.0f); } else if (cls == Double.TYPE) { objArr[i] = new Double(0.0d); } else if (cls == Character.TYPE) { objArr[i] = new Character((char) 0); } else { objArr[i] = Boolean.FALSE; } } } return objArr; } private Callback createReverseEngineeredCallbackOfProperType(Callback callback, int i, Map map) { Class cls = null; Class[] interfaces = callback.getClass().getInterfaces(); int i2 = 0; while (i2 < interfaces.length) { Class cls2 = class$net$sf$cglib$proxy$Callback; if (cls2 == null) { cls2 = class$("net.sf.cglib.proxy.Callback"); class$net$sf$cglib$proxy$Callback = cls2; } if (cls2.isAssignableFrom(interfaces[i2])) { cls = interfaces[i2]; Class cls3 = class$net$sf$cglib$proxy$Callback; if (cls3 == null) { cls3 = class$("net.sf.cglib.proxy.Callback"); class$net$sf$cglib$proxy$Callback = cls3; } if (cls == cls3) { ConversionException conversionException = new ConversionException("Cannot handle CGLIB callback"); conversionException.add("CGLIB-callback-type", callback.getClass().getName()); throw conversionException; } Class[] interfaces2 = cls.getInterfaces(); List asList = Arrays.asList(interfaces2); Class cls4 = class$net$sf$cglib$proxy$Callback; if (cls4 == null) { cls4 = class$("net.sf.cglib.proxy.Callback"); class$net$sf$cglib$proxy$Callback = cls4; } if (asList.contains(cls4)) { break; } interfaces = interfaces2; i2 = -1; } i2++; } return (Callback) Proxy.newProxyInstance(cls.getClassLoader(), new Class[]{cls}, new ReverseEngineeringInvocationHandler(i, map)); } private Callback[] getCallbacks(Object obj) { Class cls = obj.getClass(); List list = (List) this.fieldCache.get(cls.getName()); if (list == null) { list = new ArrayList(); this.fieldCache.put(cls.getName(), list); int i = 0; while (true) { try { StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append(CALLBACK_MARKER); stringBuffer.append(i); Field declaredField = cls.getDeclaredField(stringBuffer.toString()); if (!declaredField.isAccessible()) { declaredField.setAccessible(true); } list.add(declaredField); i++; } catch (NoSuchFieldException unused) { } } } ArrayList arrayList = new ArrayList(); for (int i2 = 0; i2 < list.size(); i2++) { try { arrayList.add(((Field) list.get(i2)).get(obj)); } catch (IllegalAccessException e) { ObjectAccessException objectAccessException = new ObjectAccessException("Cannot access field", e); StringBuffer stringBuffer2 = new StringBuffer(); stringBuffer2.append(cls.getName()); stringBuffer2.append("."); stringBuffer2.append(CALLBACK_MARKER); stringBuffer2.append(i2); objectAccessException.add("field", stringBuffer2.toString()); throw objectAccessException; } } return (Callback[]) arrayList.toArray(new Callback[arrayList.size()]); } private void readCallback(HierarchicalStreamReader hierarchicalStreamReader, UnmarshallingContext unmarshallingContext, List list, List list2) { Callback callback = (Callback) unmarshallingContext.convertAnother(null, this.mapper.realClass(hierarchicalStreamReader.getNodeName())); list2.add(callback); if (callback == null) { list.add(NoOp.INSTANCE); } else { list.add(callback); } } @Override // com.thoughtworks.xstream.converters.reflection.SerializableConverter, com.thoughtworks.xstream.converters.ConverterMatcher public boolean canConvert(Class cls) { if (cls == null || !Enhancer.isEnhanced(cls) || cls.getName().indexOf(DEFAULT_NAMING_MARKER) <= 0) { Class cls2 = class$com$thoughtworks$xstream$mapper$CGLIBMapper$Marker; if (cls2 == null) { cls2 = class$("com.thoughtworks.xstream.mapper.CGLIBMapper$Marker"); class$com$thoughtworks$xstream$mapper$CGLIBMapper$Marker = cls2; } if (cls != cls2) { return false; } } return true; } @Override // com.thoughtworks.xstream.converters.reflection.SerializableConverter protected List hierarchyFor(Class cls) { List hierarchyFor = super.hierarchyFor(cls); hierarchyFor.remove(hierarchyFor.size() - 1); return hierarchyFor; } @Override // com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter, com.thoughtworks.xstream.converters.Converter public void marshal(Object obj, HierarchicalStreamWriter hierarchicalStreamWriter, MarshallingContext marshallingContext) { Class cls; Class cls2 = obj.getClass(); Class cls3 = class$net$sf$cglib$proxy$Factory; if (cls3 == null) { cls3 = class$("net.sf.cglib.proxy.Factory"); class$net$sf$cglib$proxy$Factory = cls3; } boolean isAssignableFrom = cls3.isAssignableFrom(cls2); ExtendedHierarchicalStreamWriterHelper.startNode(hierarchicalStreamWriter, "type", cls2); marshallingContext.convertAnother(cls2.getSuperclass()); hierarchicalStreamWriter.endNode(); hierarchicalStreamWriter.startNode("interfaces"); Class[] interfaces = cls2.getInterfaces(); for (int i = 0; i < interfaces.length; i++) { Class cls4 = interfaces[i]; Class cls5 = class$net$sf$cglib$proxy$Factory; if (cls5 == null) { cls5 = class$("net.sf.cglib.proxy.Factory"); class$net$sf$cglib$proxy$Factory = cls5; } if (cls4 != cls5) { ExtendedHierarchicalStreamWriterHelper.startNode(hierarchicalStreamWriter, this.mapper.serializedClass(interfaces[i].getClass()), interfaces[i].getClass()); marshallingContext.convertAnother(interfaces[i]); hierarchicalStreamWriter.endNode(); } } hierarchicalStreamWriter.endNode(); hierarchicalStreamWriter.startNode("hasFactory"); hierarchicalStreamWriter.setValue(String.valueOf(isAssignableFrom)); hierarchicalStreamWriter.endNode(); Callback[] callbacks = isAssignableFrom ? ((Factory) obj).getCallbacks() : getCallbacks(obj); if (callbacks.length > 1) { if (!isAssignableFrom) { ConversionException conversionException = new ConversionException("Cannot handle CGLIB enhanced proxies without factory that have multiple callbacks"); conversionException.add("proxy-superclass", cls2.getSuperclass().getName()); conversionException.add("number-of-callbacks", String.valueOf(callbacks.length)); throw conversionException; } Map createCallbackIndexMap = createCallbackIndexMap((Factory) obj); hierarchicalStreamWriter.startNode("callbacks"); hierarchicalStreamWriter.startNode("mapping"); marshallingContext.convertAnother(createCallbackIndexMap); hierarchicalStreamWriter.endNode(); } boolean z = false; for (Callback callback : callbacks) { if (callback == null) { hierarchicalStreamWriter.startNode(this.mapper.serializedClass(null)); hierarchicalStreamWriter.endNode(); } else { if (!z) { Class cls6 = class$net$sf$cglib$proxy$MethodInterceptor; if (cls6 == null) { cls6 = class$("net.sf.cglib.proxy.MethodInterceptor"); class$net$sf$cglib$proxy$MethodInterceptor = cls6; } if (!cls6.isAssignableFrom(callback.getClass())) { z = false; ExtendedHierarchicalStreamWriterHelper.startNode(hierarchicalStreamWriter, this.mapper.serializedClass(callback.getClass()), callback.getClass()); marshallingContext.convertAnother(callback); hierarchicalStreamWriter.endNode(); } } z = true; ExtendedHierarchicalStreamWriterHelper.startNode(hierarchicalStreamWriter, this.mapper.serializedClass(callback.getClass()), callback.getClass()); marshallingContext.convertAnother(callback); hierarchicalStreamWriter.endNode(); } } if (callbacks.length > 1) { hierarchicalStreamWriter.endNode(); } try { Field declaredField = cls2.getDeclaredField("serialVersionUID"); if (!declaredField.isAccessible()) { declaredField.setAccessible(true); } long j = declaredField.getLong(null); if (class$java$lang$String == null) { cls = class$("java.lang.String"); class$java$lang$String = cls; } else { cls = class$java$lang$String; } ExtendedHierarchicalStreamWriterHelper.startNode(hierarchicalStreamWriter, "serialVersionUID", cls); hierarchicalStreamWriter.setValue(String.valueOf(j)); hierarchicalStreamWriter.endNode(); } catch (IllegalAccessException e) { ObjectAccessException objectAccessException = new ObjectAccessException("Cannot access field", e); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append(cls2.getName()); stringBuffer.append(".serialVersionUID"); objectAccessException.add("field", stringBuffer.toString()); throw objectAccessException; } catch (NoSuchFieldException unused) { } if (z) { hierarchicalStreamWriter.startNode("instance"); super.doMarshalConditionally(obj, hierarchicalStreamWriter, marshallingContext); hierarchicalStreamWriter.endNode(); } } @Override // com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter protected Object readResolve() { super.readResolve(); this.fieldCache = new HashMap(); return this; } @Override // com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter, com.thoughtworks.xstream.converters.Converter public Object unmarshal(HierarchicalStreamReader hierarchicalStreamReader, UnmarshallingContext unmarshallingContext) { Map map; Enhancer enhancer = new Enhancer(); hierarchicalStreamReader.moveDown(); Class cls = class$java$lang$Class; if (cls == null) { cls = class$("java.lang.Class"); class$java$lang$Class = cls; } Object obj = null; enhancer.setSuperclass((Class) unmarshallingContext.convertAnother(null, cls)); hierarchicalStreamReader.moveUp(); hierarchicalStreamReader.moveDown(); ArrayList arrayList = new ArrayList(); while (hierarchicalStreamReader.hasMoreChildren()) { hierarchicalStreamReader.moveDown(); arrayList.add(unmarshallingContext.convertAnother(null, this.mapper.realClass(hierarchicalStreamReader.getNodeName()))); hierarchicalStreamReader.moveUp(); } enhancer.setInterfaces((Class[]) arrayList.toArray(new Class[arrayList.size()])); hierarchicalStreamReader.moveUp(); hierarchicalStreamReader.moveDown(); boolean booleanValue = Boolean.valueOf(hierarchicalStreamReader.getValue()).booleanValue(); enhancer.setUseFactory(booleanValue); hierarchicalStreamReader.moveUp(); ArrayList arrayList2 = new ArrayList(); ArrayList arrayList3 = new ArrayList(); hierarchicalStreamReader.moveDown(); if ("callbacks".equals(hierarchicalStreamReader.getNodeName())) { hierarchicalStreamReader.moveDown(); Class cls2 = class$java$util$HashMap; if (cls2 == null) { cls2 = class$("java.util.HashMap"); class$java$util$HashMap = cls2; } map = (Map) unmarshallingContext.convertAnother(null, cls2); hierarchicalStreamReader.moveUp(); while (hierarchicalStreamReader.hasMoreChildren()) { hierarchicalStreamReader.moveDown(); readCallback(hierarchicalStreamReader, unmarshallingContext, arrayList2, arrayList3); hierarchicalStreamReader.moveUp(); } } else { readCallback(hierarchicalStreamReader, unmarshallingContext, arrayList2, arrayList3); map = null; } enhancer.setCallbacks((Callback[]) arrayList2.toArray(new Callback[arrayList2.size()])); if (map != null) { enhancer.setCallbackFilter(new ReverseEngineeredCallbackFilter(map)); } hierarchicalStreamReader.moveUp(); while (hierarchicalStreamReader.hasMoreChildren()) { hierarchicalStreamReader.moveDown(); if (hierarchicalStreamReader.getNodeName().equals("serialVersionUID")) { enhancer.setSerialVersionUID(Long.valueOf(hierarchicalStreamReader.getValue())); } else if (hierarchicalStreamReader.getNodeName().equals("instance")) { obj = create(enhancer, arrayList3, booleanValue); super.doUnmarshalConditionally(obj, hierarchicalStreamReader, unmarshallingContext); } hierarchicalStreamReader.moveUp(); } if (obj == null) { obj = create(enhancer, arrayList3, booleanValue); } return this.serializationMembers.callReadResolve(obj); } public CGLIBEnhancedConverter(Mapper mapper, ReflectionProvider reflectionProvider, ClassLoader classLoader) { super(mapper, new CGLIBFilteringReflectionProvider(reflectionProvider), classLoader); this.fieldCache = new HashMap(); } /* JADX WARN: Illegal instructions before constructor call */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct code enable 'Show inconsistent code' option in preferences */ public CGLIBEnhancedConverter(com.thoughtworks.xstream.mapper.Mapper r2, com.thoughtworks.xstream.converters.reflection.ReflectionProvider r3) { /* r1 = this; com.thoughtworks.xstream.converters.reflection.CGLIBEnhancedConverter$CGLIBFilteringReflectionProvider r0 = new com.thoughtworks.xstream.converters.reflection.CGLIBEnhancedConverter$CGLIBFilteringReflectionProvider r0.(r3) java.lang.Class r3 = com.thoughtworks.xstream.converters.reflection.CGLIBEnhancedConverter.class$com$thoughtworks$xstream$converters$reflection$CGLIBEnhancedConverter if (r3 != 0) goto L11 java.lang.String r3 = "com.thoughtworks.xstream.converters.reflection.CGLIBEnhancedConverter" java.lang.Class r3 = class$(r3) com.thoughtworks.xstream.converters.reflection.CGLIBEnhancedConverter.class$com$thoughtworks$xstream$converters$reflection$CGLIBEnhancedConverter = r3 L11: java.lang.ClassLoader r3 = r3.getClassLoader() r1.(r2, r0, r3) return */ throw new UnsupportedOperationException("Method not decompiled: com.thoughtworks.xstream.converters.reflection.CGLIBEnhancedConverter.(com.thoughtworks.xstream.mapper.Mapper, com.thoughtworks.xstream.converters.reflection.ReflectionProvider):void"); } }