Совместимость Grails 1.3.7/Java 7

Кому-нибудь повезло с приложением Grails 1.3.7 с Java 7? Я создал совершенно новое приложение Grails 1.3.7 и попытался запустить его под Java 7. Я получаю следующую ошибку, но приложение, похоже, работает нормально. У нас есть несколько 1.3.7 приложений, которые мы не хотим обновлять до Grails 2.x, поэтому любые идеи будут высоко оценены.

Unable to use direct char[] access of java.lang.String
java.lang.NoSuchFieldException: count
 at java.lang.Class.getDeclaredField(Class.java:1899)
 at org.codehaus.groovy.grails.web.util.StringCharArrayAccessor.<clinit>(StringCharArrayAccessor.java:53)
 at org.codehaus.groovy.grails.web.util.StreamCharBuffer.readAsString(StreamCharBuffer.java:531)
 at org.codehaus.groovy.grails.web.util.StreamCharBuffer.toString(StreamCharBuffer.java:552)
 at org.codehaus.groovy.grails.web.pages.FastStringWriter.getValue(FastStringWriter.java:59)
 at org.codehaus.groovy.grails.web.pages.FastStringWriter.toString(FastStringWriter.java:55)
 at org.codehaus.groovy.grails.web.pages.GroovyPageParser.startTag(GroovyPageParser.java:1119)
 at org.codehaus.groovy.grails.web.pages.GroovyPageParser.page(GroovyPageParser.java:801)
 at org.codehaus.groovy.grails.web.pages.GroovyPageParser.generateGsp(GroovyPageParser.java:380)
 at org.codehaus.groovy.grails.web.pages.GroovyPageParser.parse(GroovyPageParser.java:326)
 at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.buildPageMetaInfo(GroovyPagesTemplateEngine.java:584)
 at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:493)
 at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplateWithResource(GroovyPagesTemplateEngine.java:473)
 at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:246)
 at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplateForUri(GroovyPagesTemplateEngine.java:373)
 at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplateForUri(GroovyPagesTemplateEngine.java:345)
 at org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine.createTemplate(GroovyPagesTemplateEngine.java:262)
 at org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderWithTemplateEngine(GroovyPageView.java:146)
 at org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderMergedOutputModel(GroovyPageView.java:81)
 at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
 at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.renderViewForUrlMappingInfo(UrlMappingsFilter.java:260)
 at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:189)
 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.obtainContent(GrailsPageFilter.java:245)
 at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.doFilter(GrailsPageFilter.java:134)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:104)
 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69)
 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:69)
 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
 at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
 at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
 at java.lang.Thread.run(Thread.java:722)
</clinit>
4 ответа

Это раздражает, но безопасно игнорировать и фиксируется в 2.1.1 и 2.2. Подробнее см. https://github.com/grails/grails-core/issues/2359.


Задайте системное свойство JAVA_OPTS: Windows: SET JAVA_OPTS=-Dstringchararrayaccessor.disabled=true Unix: export JAVA_OPTS=-Dstringchararrayaccessor.disabled=true


Из того, что я вижу в исходном коде, вы можете установить для свойства JVM stringchararrayaccessor.disabled значение true.


Исправить для людей, наблюдающих ту же проблему при запуске Collabnet Subversion Edge Server 4.x.

Угадайте нужное место для добавления JAVA_OPTS = -Dstringchararrayaccessor.disabled = true, не был запуск csvn script, а скорее tanukisoft wrapper conf.

Aka, отредактируйте $csvn_home/data/conf/csvn-wrapper.conf и добавьте

wrapper.java.additional.x = -Dstringchararrayaccessor.disabled = истина

(где x не используется последовательно последовательно)

licensed under cc by-sa 3.0 with attribution.