2014-11-13 9 views
6

Quando apro il mio progetto ed Eclipse tenta di costruirlo, viene visualizzato questo errore: Si è verificato un errore interno durante: "Creazione dell'area di lavoro". java.lang.StackOverFlowError.java.lang.StackOverflowError durante la creazione del progetto Sencha/ExtJS 5

Finisce ancora di costruire (credo), e posso procedere. Ma ricevo un popup "Errore interno" che dice che si è verificato un overflow dello stack e che è consigliabile che esca dal workbench. Ho appena ignorato il popup.

Qui è la mia uscita log:

!SESSION 2014-11-13 09:22:21.634 ----------------------------------------------- 
eclipse.buildId=4.4.0.I20140606-1215 
java.version=1.7.0_51 
java.vendor=Oracle Corporation 
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US 
Framework arguments: -product org.eclipse.epp.package.jee.product 
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product -data C:\Workspaces\pvmui-ws3 

!ENTRY org.eclipse.egit.ui 2 0 2014-11-13 09:22:31.052 
!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level 
Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. 
The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in 
this system level configuration. The Git installation location can be configured on the 
Team > Git > Configuration preference page's 'System Settings' tab. 
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. 

!ENTRY org.eclipse.egit.ui 2 0 2014-11-13 09:22:31.057 
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git 
user global configuration and to define the default location to store repositories: 'C:\Users\XXXXXX'. If this is 
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and 
EGit might behave differently since they see different configuration options. 
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. 

!ENTRY org.eclipse.core.jobs 4 2 2014-11-13 09:24:25.196 
!MESSAGE An internal error occurred during: "Building workspace". 
!STACK 0 
java.lang.StackOverflowError 
    at org.eclipse.vjet.dsf.jst.declaration.JstProxyType.getName(JstProxyType.java:105) 
    at org.eclipse.vjet.dsf.jst.declaration.JstMixedType.getName(JstMixedType.java:75) 
    **THESE TWO LINES REPEAT ABOUT 1023 TIMES** 

!ENTRY org.eclipse.vjet.eclipse.core 4 0 2014-11-13 09:24:26.431 
!MESSAGE There is no jst2dltk translator for node: org.eclipse.vjet.dsf.jst.term.ObjLiteral 

!ENTRY org.eclipse.vjet.eclipse.core 4 0 2014-11-13 09:24:26.510 
!MESSAGE There is no jst2dltk translator for node: org.eclipse.vjet.dsf.jst.term.ObjLiteral 

!ENTRY org.eclipse.ui 4 4 2014-11-13 09:24:27.036 
!MESSAGE Conflicting handlers for org.eclipse.vjet.eclipse.debug.ui.launchShortcut.run: {org.eclipse.debug.internal.ui.la[email protected]6436afd6} vs {org.eclipse.debug.internal.ui.la[email protected]42523e00} 

Cosa devo fare per evitare questo problema?

risposta

2

JstMixedType sembra accumulare più tipi e concatena i loro nomi. Nel tuo caso contiene se stesso (o un proxy su se stesso, esattamente parlato). Questo non dovrebbe accadere. Questo sembra essere un bug nel core VJET e dovrebbe essere reported.

Forse si può aggirare il bug adattando la propria configurazione/codice. Avete dei tipi misti che contengono se stessi? È questo? (probabilmente lo è) Se no, cambiali.

0

Come affrontare lo StackOverflowError:

La soluzione più semplice è quella di controllare con attenzione la traccia dello stack e rilevare lo schema ripetitivo di numeri di riga. Questi numeri di riga indicano che il codice viene chiamato in modo ricorsivo. Una volta rilevate queste righe, è necessario esaminare attentamente il codice e capire perché la ricorsione non termina mai.


Se si è verificato che la ricorsione è implementato correttamente, è possibile aumentare le dimensioni dello stack, in modo da consentire un maggior numero di invocazioni. A seconda della Java Virtual Machine (JVM) installata, la dimensione predefinita dello stack di thread può essere pari a 512 KB o 1 MB. È possibile aumentare la dimensione dello stack di thread usando il flag -Xss. Questo flag può essere specificato tramite la configurazione del progetto o tramite la riga di comando. Il formato dell'argomento -Xss è:

-Xss<size>[g|G|m|M|k|K] 

Tra l'altro sembra un bug Eclipse (Leggere questa ref), che è stato fissato nella sua ultima versione.

Problemi correlati