プロが教える店舗&オフィスのセキュリティ対策術

ソースがなくて困ってJADの逆コンパイルをしてみました。
(Decompiled by Jad v1.5.8e.)以下のように結果が出ます。

public GenericApplicationForm save() throws Exception {
Connection conn = null;
TranslationEntryForm translationentryform;
initCommonInfo();
if(checkEntryContent()) {
break MISSING_BLOCK_LABEL_24;
}
translationentryform = srcform;
DBUtil.closeConnection(conn);
return transentryform;
conn = DBUtil.getConnection(srcform.getWebInfoPath());
daSaveContent(conn);
conn.commit();
ContentData();
break MISSING_BLOCK_LABEL_61;
Exception exception;
exception;
DBUtil.closeConnection(conn);
throw exception;
DBUtil.closeConnection(conn);
return srcform;
}

Break MISSING_BLOCK_LABEL とexception;並びにCloseが2箇所あるところがおかしいと思うのですが、どう読めば良いでしょうか
変な質問で申し訳ありませんが宜しく御願い致します。

A 回答 (1件)

jadによる逆コンパイルは100%成功するわけではないのよ。


特に元の実装が想定外の形で作られていると
こういうことが発生するわ。
余計な代入があったり、変な処理をしてたり、とかね。
逆コンパイルは、こういうときはこう復元する、ってやっているだけだから
それに当てはまらないとおかしなソースが出来上がるわ。

推測だけど
public GenericApplicationForm save() throws Exception {
Connection conn = null;
TranslationEntryForm translationentryform = null;
try {
initCommonInfo();
if(checkEntryContent()) {
} else {
translationentryform = srcform;
DBUtil.closeConnection(conn);
return transentryform;
}
conn = DBUtil.getConnection(srcform.getWebInfoPath());
daSaveContent(conn);
conn.commit();
ContentData();
} catch(Exception exception) {
DBUtil.closeConnection(conn);
throw exception;
}
DBUtil.closeConnection(conn);
return srcform;
}
こんな形だったんじゃないかしら。
まあ、こんな変な実装は普通しないと思うけど。
変数とかおかしいし。
このコードはあくまで推測よ。
    • good
    • 0
この回答へのお礼

誠にありがとうございます。大変なご面倒をお掛けしております。
ご指摘のように作成者のシステムはグチャグチャです。
稼動確認は十分でないものの兎に角動きました。
多分また同様な質問をさせて戴くかと思いますが宜しく御願い致します。

お礼日時:2010/04/06 19:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!