Bonjour,

j'essai de corriger un probleme d'en appli qui fait un import de donnée assé conséquent.

En gros apres 20 minute d'import de données on se prend dans la face un :
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
!ENTRY org.eclipse.core.jobs 4 2 2009-04-23 17:13:56.632
!MESSAGE An internal error occurred during: "Importing Simulation Results".
!STACK 0
java.lang.OutOfMemoryError: GC overhead limit exceeded
	at java.util.regex.Matcher.<init>(Matcher.java:207)
	at java.util.regex.Pattern.matcher(Pattern.java:888)
	at fr.ifp.first.externalapp.PropertyMatcher.find(PropertyMatcher.java:201)
	at fr.ifp.first.externalapp.ui.io.ExternalDelegateParser.saveProductionResults(ExternalDelegateParser.java:630)
	at fr.ifp.first.externalapp.ui.io.ExternalDelegateParser.saveProductionResults(ExternalDelegateParser.java:513)
	at fr.ifp.first.externalapp.ui.io.ExternalDelegateParser.addDataToStorage(ExternalDelegateParser.java:201)
	at fr.ifp.first.externalapp.outputparser.AbstractOutputFileParser.addDataToStorage(AbstractOutputFileParser.java:65)
	at fr.ifp.first.externalapp.outputparser.XSILParser.parse(XSILParser.java:179)
	at fr.ifp.first.externalapp.outputparser.AbstractDelegateParser.parse(AbstractDelegateParser.java:52)
	at fr.ifp.first.externalapp.outputparser.DefaultDelegateParser.addSelectedResultsToStorage(DefaultDelegateParser.java:65)
	at fr.ifp.first.externalapp.ui.io.ExternalImportJob.loadResults(ExternalImportJob.java:284)
	at fr.ifp.first.externalapp.ui.io.ExternalImportJob.run(ExternalImportJob.java:143)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
 
!ENTRY org.eclipse.core.jobs 4 2 2009-04-23 17:46:15.286
!MESSAGE An internal error occurred during: "Importing Simulation Results".
!STACK 0
java.lang.OutOfMemoryError: GC overhead limit exceeded
Ce qui vous me l'accorderez est fort désagréable.
Mais il s'avère que ce bug vient de ce code si:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 public int find(String key) {
        synchronized (patterns) {
            key = key.toLowerCase();
            for (Pattern pattern : patterns) {
               Matcher matcher = pattern.matcher(key); 
                if (matcher.find()) {
                    return properties.get(pattern);
                }
            }
            return DefineProperty.UNKNOWN_TYPE.code();
        }
    }
Est ce que quelqun sait ce qui est la cause d'un outofmemory sur les matcher ???

Merci d'avance