Bug erreur StackOverflowException

shinux Messages postés 5 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 27 juillet 2007 - 25 juil. 2007 à 19:03
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 27 juil. 2007 à 21:03
j'ai un bug dans mon application il s'agit d'un StackOverflowException le bug ce produit sur cette ligne de code :

if (!SQLdata.SQLCheckparsed(url) && !SQLdata.SQLcheckbandomain(domain) && !SQLclass1.SQLcheckexist(url)){

[...]}

voici le constructeur de ma class:

public SchedulerRepository(
string repo,
string cnx,
string cs,
int ml,
int md){

// Repository location

this.repository = repo;

// Dal

this.SQLdata =
new
SQLClass(cs, ml, md);

this.SQLclass1 =
new
SQLClass(cnx, 0, 0);

// Regexp

this.check_link =
new
Regex(
@"127\.0\.0\.(1|0)|255\.(0|255)\.(0|255)\.(0|255)|http:\/\/(\[::1\]|localhost)",
this.options);}

je déclare les variable récalcitrante ainsi

SQLClass SQLdata;
// scheduler database

SQLClass SQLclass1;
// main database

sa fait des heures que je cherche ou est problème

merci de votre aide

6 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
25 juil. 2007 à 20:09
Salut,

Vérifie que tu n'as pas des appels récursifs dans tes méthodes SQLCheckparsed, SQLcheckbandomain et SQLcheckexist.
Vérifie aussi que ce n'est pas un bug connu du provider SQL utilisé.
Sinon en dehors de ça avec ce que tu as fournis on ne pourra pas te dire grand chose de plus.
Des détails supplémentaire comme la stack trace accompagnant l'exception aideront peut être à y voir plus clair.

/*
coq
MVP Visual C#
CoqBlog
*/
0
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
26 juil. 2007 à 17:15
Salut !
Rien à voir mais je doute que ton expression régulière soit bonne.
Voici ce qu'elle match :
127.0.0.1 [OK]
127.0.0.0 [Ne devrait pas matcher, c'est une adresse de réseaux, pas d'equipement]
255.0.0.0 [Ne devrait pas matcher, c'est un masque de class A]
255.255.0.0 [Ne devrait pas matcher, c'est un masque de class B]
255.255.255.0 [Ne devrait pas marcher, c'est un masque de class C]
255.255.255.255 [Ne devrait pas matcher, c'est un masque réservé inutilisable]
http://[::1\]????(ca veux dire quoi cette notation ?)
http://localhost [Ne devrait pas matcher car indique un protocole réseaux (http) invalide]

normalement les / n'ont pas besoin d'etre echapés.

Maintenant, je suis un pro des expressions régulières et c'est peut-etre ce que
tu voulait faire.
0
shinux Messages postés 5 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 27 juillet 2007
26 juil. 2007 à 20:18
Ma regexp me sert a filtrer des url: [http://[::1 http://[::1]] équivalent ipv6 de http://localhost

Concernant mon problème celui ci est maintenant réglé il etait du a une clause finally mal foutue dans mes fonctions de connection SQLcheck();

Maintenant j'ai un autre problème comme vous pouvez voir dans le code que j'ai posté j'ai deux objets de type SQLclass:

this.SQLdata = newSQLClass(cs, ml, md);

this.SQLclass1 = newSQLClass(cnx, 0, 0);

Dès que j'essaie d'exécuter une fonction par exemple SQLcheckbandomain bah .Net me dit qu'un DataReader estdéjà ouvert et doit d'abord être fermé :| .

A noté que ma class SchedulerRepository s'exécute dans un thread
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
27 juil. 2007 à 09:32
Ce qui veut dire que la connexion est commune à toutes les instances de la classe ? o_O

Quel SGBD ?
Sur SQL Server 2005 il peut y avoir plusieurs jeux de résultats actifs sur la même connexion avec MARS, mais pas sur SQL Server 2000 (et sur les autres SGBD je ne sais pas).

/*
coq
MVP Visual C#
CoqBlog
*/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
shinux Messages postés 5 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 27 juillet 2007
27 juil. 2007 à 15:26
Il s'agit d'SQL server 2005 , en fait j'utilise deux connexions a deux db différentes !
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
27 juil. 2007 à 21:03
Dans tous les cas tu as déjà un DataReader ouvert si on en crois le message d'erreur.
Tu as donc un problème dans ton code.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous