DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=29526>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=29526 Cannot undeploy and deploy war file with on the same context ------- Additional Comments From [EMAIL PROTECTED] 2004-06-21 13:56 ------- Remy, I am also encountering this bug with my application. When undeploying it leaves a single jar that cannot be deleted. I've tracked it down to a single class within this jar that is causing the problem. Here is the code, can you think of any reason this class may be causing a problem?: package com.company; // ---------------------------------------------------------------------------- - // StringEncrypter.java // ---------------------------------------------------------------------------- - // CIPHER / GENERATORS import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.KeyGenerator; // KEY SPECIFICATIONS import java.security.spec.KeySpec; import java.security.spec.AlgorithmParameterSpec; import javax.crypto.spec.PBEKeySpec; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEParameterSpec; // EXCEPTIONS import java.security.InvalidAlgorithmParameterException; import java.security.NoSuchAlgorithmException; import java.security.InvalidKeyException; import java.security.spec.InvalidKeySpecException; import javax.crypto.NoSuchPaddingException; import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; import java.io.UnsupportedEncodingException; import java.io.IOException; /** * ---------------------------------------------------------------------------- - * The following example implements a class for encrypting and decrypting * strings using several Cipher algorithms. The class is created with a key and * can be used repeatedly to encrypt and decrypt strings using that key. * Some of the more popular algorithms are: * Blowfish * DES * DESede * PBEWithMD5AndDES * PBEWithMD5AndTripleDES * TripleDES * ---------------------------------------------------------------------------- - */ public class Encrypter { Cipher ecipher; Cipher dcipher; /** * Constructor used to create this object. Responsible for setting * and initializing this object's encrypter and decrypter Chipher instances * given a Secret Key and algorithm. * @param key Secret Key used to initialize both the encrypter and * decrypter instances. * @param algorithm Which algorithm to use for creating the encrypter and * decrypter instances. */ Encrypter(SecretKey key, String algorithm) { try { ecipher = Cipher.getInstance(algorithm); dcipher = Cipher.getInstance(algorithm); ecipher.init(Cipher.ENCRYPT_MODE, key); dcipher.init(Cipher.DECRYPT_MODE, key); } catch (Exception e) { } } /** * Constructor used to create this object. Responsible for setting * and initializing this object's encrypter and decrypter Chipher instances * given a Pass Phrase and algorithm. * @param passPhrase Pass Phrase used to initialize both the encrypter and * decrypter instances. */ Encrypter(String passPhrase) { // 8-bytes Salt byte[] salt = { (byte)0xA9, (byte)0x9B, (byte)0xC8, (byte)0x32, (byte)0x56, (byte)0x35, (byte)0xE3, (byte)0x03 }; // Iteration count int iterationCount = 20; try { KeySpec keySpec = new PBEKeySpec(passPhrase.toCharArray(), salt, iterationCount); SecretKey key = SecretKeyFactory.getInstance ("PBEWithMD5AndDES").generateSecret(keySpec); ecipher = Cipher.getInstance(key.getAlgorithm()); dcipher = Cipher.getInstance(key.getAlgorithm()); // Prepare the parameters to the cipthers AlgorithmParameterSpec paramSpec = new PBEParameterSpec(salt, iterationCount); ecipher.init(Cipher.ENCRYPT_MODE, key, paramSpec); dcipher.init(Cipher.DECRYPT_MODE, key, paramSpec); } catch (Exception e) { } } /** * Takes a single String as an argument and returns an Encrypted version * of that String. * @param str String to be encrypted * @return <code>String</code> Encrypted version of the provided String */ public String encrypt(String str) { try { // Encode the string into bytes using utf-8 byte[] utf8 = str.getBytes("UTF8"); // Encrypt byte[] enc = ecipher.doFinal(utf8); // Encode bytes to base64 to get a string return new sun.misc.BASE64Encoder().encode(enc); } catch (Exception e) { } } public static Encrypter getEncrypter() { return new Encrypter("Any old phrase"); } /** * Takes a encrypted String as an argument, decrypts and returns the * decrypted String. * @param str Encrypted String to be decrypted * @return <code>String</code> Decrypted version of the provided String */ public String decrypt(String str) { try { // Decode base64 to get bytes byte[] dec = new sun.misc.BASE64Decoder().decodeBuffer(str); // Decrypt byte[] utf8 = dcipher.doFinal(dec); // Decode using utf-8 return new String(utf8, "UTF8"); } catch (Exception e) { } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]