ResourcePeer.java 11.8 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  javax.transaction.Transaction
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 */
package com.adobe.service;

import com.adobe.CORBA.ServantBase;
import com.adobe.service.Resource;
import com.adobe.service.ResourcePeerImpl;
import com.adobe.service.ResourcePooler;
import org.omg.CORBA.Object;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.transaction.Transaction;

public abstract class ResourcePeer {
    private static final Logger logger = LoggerFactory.getLogger(ResourcePeer.class);
    static Factory factory = new ResourcePeerImpl.Factory();
    protected Resource resource;
    boolean allocated = false;
    boolean ready = true;
    boolean reusable = false;
    ResourcePooler pooler;
    long requestStartTime = 0;

    protected ResourcePeer(Resource aResource) {
        this.resource = aResource;
    }

    void connect(ServantBase servantBase) {
        servantBase.activateWithOwner(this);
    }

    abstract void setSavedTx(Transaction var1);

    abstract Transaction getSavedTx();

    private void postTxCleanup() {
        if (ResourcePooler.tracePoolerActivity) {
            logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside postTxCleanup(), calling ServantBase.deactivateForOwner() for peer " + this);
        } else {
            logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside postTxCleanup(), calling ServantBase.deactivateForOwner() for peer " + this);
        }
        ServantBase.deactivateForOwner(this);
        if (ResourcePooler.tracePoolerActivity) {
            logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside postTxCleanup(), calling ResourcePooler.onDeallocate() for resource " + this.resource);
        } else {
            logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside postTxCleanup(), calling ResourcePooler.onDeallocate() for resource " + this.resource);
        }
        ResourcePooler.onDeallocate(this.resource);
    }

    void invokeJoin() {
        this.resource.onJoin();
    }

    protected void invokePrepare() throws Resource.Rollback {
        if (ResourcePooler.tracePoolerActivity) {
            logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokePrepare(), calling resource " + this.resource + " onPrepare()");
        } else {
            logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokePrepare(), calling resource " + this.resource + " onPrepare()");
        }
        this.resource.onPrepare();
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     * Enabled aggressive block sorting
     * Enabled unnecessary exception pruning
     * Enabled aggressive exception aggregation
     * Lifted jumps to return sites
     */
    void invokeRollback() {
        try {
            if (ResourcePooler.tracePoolerActivity) {
                logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeRollback(), calling resource " + this.resource + " onRollback()");
            } else {
                logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeRollback(), calling resource " + this.resource + " onRollback()");
            }
            this.resource.onRollback();
            java.lang.Object var2_1 = null;
        }
        catch (Throwable var1_9) {
            java.lang.Object var2_2 = null;
            try {}
            catch (Throwable var3_8) {
                java.lang.Object var4_6 = null;
                if (ResourcePooler.tracePoolerActivity) {
                    logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeRollback(), calling setSavedTx(null)");
                } else {
                    logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeRollback(), calling setSavedTx(null)");
                }
                this.setSavedTx(null);
                this.postTxCleanup();
                throw var3_8;
            }
            if (ResourcePooler.tracePoolerActivity) {
                logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeRollback(), calling resource " + this.resource + " onComplete()");
            } else {
                logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeRollback(), calling resource " + this.resource + " onComplete()");
            }
            this.resource.onComplete();
            java.lang.Object var4_5 = null;
            if (ResourcePooler.tracePoolerActivity) {
                logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeRollback(), calling setSavedTx(null)");
            } else {
                logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeRollback(), calling setSavedTx(null)");
            }
            this.setSavedTx(null);
            this.postTxCleanup();
            throw var1_9;
        }
        try {
            if (ResourcePooler.tracePoolerActivity) {
                logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeRollback(), calling resource " + this.resource + " onComplete()");
            } else {
                logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeRollback(), calling resource " + this.resource + " onComplete()");
            }
            this.resource.onComplete();
            java.lang.Object var4_3 = null;
            if (ResourcePooler.tracePoolerActivity) {
                logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeRollback(), calling setSavedTx(null)");
            } else {
                logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeRollback(), calling setSavedTx(null)");
            }
            this.setSavedTx(null);
            this.postTxCleanup();
            return;
        }
        catch (Throwable var3_7) {
            java.lang.Object var4_4 = null;
            if (ResourcePooler.tracePoolerActivity) {
                logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeRollback(), calling setSavedTx(null)");
            } else {
                logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeRollback(), calling setSavedTx(null)");
            }
            this.setSavedTx(null);
            this.postTxCleanup();
            throw var3_7;
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     * Unable to fully structure code
     */
    void invokeCommit() {
        block15 : {
            try {
                if (ResourcePooler.tracePoolerActivity) {
                    ResourcePeer.logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeCommit(), calling resource " + this.resource + " onCommit()");
                } else {
                    ResourcePeer.logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeCommit(), calling resource " + this.resource + " onCommit()");
                }
                this.resource.onCommit();
                var2_1 = null;
            }
            catch (Throwable var1_9) {
                block17 : {
                    var2_2 = null;
                    try {
                        if (ResourcePooler.tracePoolerActivity) {
                            ResourcePeer.logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeCommit(), calling resource " + this.resource + " onComplete()");
                        } else {
                            ResourcePeer.logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeCommit(), calling resource " + this.resource + " onComplete()");
                        }
                        this.resource.onComplete();
                        var4_5 = null;
                        if (!ResourcePooler.tracePoolerActivity) break block17;
                    }
                    catch (Throwable var3_8) {
                        var4_6 = null;
                        if (ResourcePooler.tracePoolerActivity) {
                            ResourcePeer.logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeCommit(), calling setSavedTx(null)");
                        } else {
                            ResourcePeer.logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeCommit(), calling setSavedTx(null)");
                        }
                        this.setSavedTx(null);
                        this.postTxCleanup();
                        throw var3_8;
                    }
                    ResourcePeer.logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeCommit(), calling setSavedTx(null)");
                    ** GOTO lbl35
                }
                ResourcePeer.logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeCommit(), calling setSavedTx(null)");
lbl35: // 2 sources:
                this.setSavedTx(null);
                this.postTxCleanup();
                {
                }
                throw var1_9;
            }
            try {
                if (ResourcePooler.tracePoolerActivity) {
                    ResourcePeer.logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeCommit(), calling resource " + this.resource + " onComplete()");
                } else {
                    ResourcePeer.logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeCommit(), calling resource " + this.resource + " onComplete()");
                }
                this.resource.onComplete();
                var4_3 = null;
                if (!ResourcePooler.tracePoolerActivity) break block15;
            }
            catch (Throwable var3_7) {
                var4_4 = null;
                if (ResourcePooler.tracePoolerActivity) {
                    ResourcePeer.logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeCommit(), calling setSavedTx(null)");
                } else {
                    ResourcePeer.logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeCommit(), calling setSavedTx(null)");
                }
                this.setSavedTx(null);
                this.postTxCleanup();
                throw var3_7;
            }
            ResourcePeer.logger.info("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeCommit(), calling setSavedTx(null)");
            ** GOTO lbl62
        }
        ResourcePeer.logger.debug("*****" + Thread.currentThread().getName() + " resource peer " + this + " inside invokeCommit(), calling setSavedTx(null)");
lbl62: // 2 sources:
        this.setSavedTx(null);
        this.postTxCleanup();
        {
        }
    }

    void setReusable(boolean isReusable) {
        this.reusable = isReusable;
    }

    void setReady(boolean isReady) {
        this.ready = isReady;
        if (this.ready) {
            ResourcePooler.notifyReady(this.resource);
        }
    }

    public abstract void resumeTx();

    public abstract void suspendTx();

    static interface Factory {
        public ResourcePeer create(Resource var1);
    }

}