J'utilise un deflater qui fonctionne bien lors des premiers tests, mais qui pose des problèmes lors des tests de charge !
Voila mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
	public static byte[] deflateEncode(String p_message) throws IOException {
		ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
		Deflater deflater = new Deflater(Deflater.DEFLATED,true);
		DeflaterOutputStream def = new DeflaterOutputStream(byteArray, deflater);
		try {
			def.write(p_message.getBytes());
		} catch (IOException e) {
			throw e;
		} finally {
			try {
				def.close();
			} catch (IOException e) {
				//on ne peut rien faire de plus
			}
		}
		try {
			byteArray.close();
		} catch (IOException e) {
			//on ne peut rien faire de plus
		}
		return byteArray.toByteArray();
	}
L'erreur vient quand on fait le def.close(), on obtient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
java.lang.NullPointerException: deflateBytes
at java.util.zip.Deflater.deflateBytes(Native Method)
at java.util.zip.Deflater.deflate(Deflater.java:279)
at java.util.zip.DeflaterOutputStream.deflate(DeflaterOutputStream.java:159)
at java.util.zip.DeflaterOutputStream.finish(DeflaterOutputStream.java:134)
at java.util.zip.DeflaterOutputStream.close(DeflaterOutputStream.java:146)
at com.bull.xss.saml2.util.SAMLUtil.deflateEncode(SAMLUtil.java:184)
J'avoue que je suis perplexe, vu que le problème ne se produit pas tout le temps mais uniquement quand on fait des tests de charge !
Toute suggestion est la bienvenue !