2012-01-12 57 views
4

我經常從YUICompressor得到似乎是一個stackoverflow錯誤;-)。以下是成千上萬的誤差線是來自試圖壓縮24074字節的CSS樣式表(而不是「由java.lang.StackOverflowError的造成約8線下)第一部分:YUICompressor崩潰 - stackoverflow錯誤

iMac1:src jas$ min ../style2.min.css style2.css 
Exception in thread "main" java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.yahoo.platform.yui.compressor.Bootstrap.main(Bootstrap.java:21) 
Caused by: java.lang.StackOverflowError 
    at java.lang.Character.codePointAt(Character.java:2335) 
    at java.util.regex.Pattern$CharProperty.match(Pattern.java:3344) 
    at java.util.regex.Pattern$Branch.match(Pattern.java:4114) 

...(加1021更多錯誤行)

錯誤通常發生在向要壓縮的文件中添加幾行文件之後,css很好,並且在未壓縮的格式中完美工作,我沒有看到類型的特定模式的選擇器添加到文件中,導致錯誤在這種情況下,將以下選擇器添加到以前可壓縮的文件導致錯誤:

#thisisatest 
{ 
    margin-left:87px; 
} 

我想知道是否有一個標誌可以幫助擴大堆棧的Java。或者如果那不是問題,那是什麼?

編輯:

當我張貼了這個問題,我想通了,我應該檢查Java命令來查看是否有擴大棧的參數。原來它是-Xssn,其中「n」是表示堆棧大小的參數。它的默認值是512k。所以我嘗試了1024k,但仍然導致了stackoverflow。然而,嘗試2048k的作品,我認爲這可能是解決方案。

回答

6

正如我的編輯發佈,解決方案是將參數添加到java命令。線索是在5擋「在」行錯誤行,如下所示:

at com.yahoo.platform.yui.compressor.Bootstrap.main(Bootstrap.java:21) 
Caused by: java.lang.StackOverflowError 

看到,這個問題是一個「StackOverlowError」 ;-)給的建議,嘗試增加堆棧大小。默認值是512k。我第一次嘗試1024k沒有奏效。然而將它增加到2048k確實有用,而且我沒有進一步的問題。

+1

我該如何設置java的默認-Xssn? – 2013-05-30 09:15:41