how to make Runtime.getRuntime().exec right

860 views
Skip to first unread message

Fu Jiantao

unread,
Aug 18, 2012, 9:19:07 AM8/18/12
to bigblueb...@googlegroups.com
Hi,

   I'm trying to let the presentation file name supports Unicode and space within it, so I've tried to remove the regex to replace non-ascii with '-', and make some modifications to the use of  Runtime exec. The previous way seems won't work if there're spaces in the filename, see http://stackoverflow.com/questions/697621/spaces-in-java-execute-path-for-os-x#comment15977681_697672, add "\"" for the filename works for windows, but for linux, it will complain that file ( for example, "hello world.txt" ) not found, but I tried the following way, it still won't work.

   Very frustrating, very annoying bug. Please help. Thanks!

The log
--------------------

[18.08.12 20:58:08.446] DEBUG org.bigbluebutton.presentation.imp.Pdf2SwfPageCounter  - /bin/pdf2swf -I /var/bigbluebutton/183f0bf3a0982a127bdb8161e0c44eb696b3e75c-1345294651088/183f0bf3a0982a127bdb8161e0c44eb696b3e75c-1345294651088/hello\ world/hello\ world.pdf

The code
---------------------------
String[] cmdarray = new String[]{SWFTOOLS_DIR+File.separator+"pdf2swf", "-I", presentationFile.getAbsolutePath().replace(" ", "\\ ")};

p = Runtime.getRuntime().exec(cmdarray);

log.debug(StringUtils.join(cmdarray," "));

The following cmd in shell works
------------------------------------------------

/bin/pdf2swf -I /var/bigbluebutton/183f0bf3a0982a127bdb8161e0c44eb696b3e75c-1345294651088/183f0bf3a0982a127bdb8161e0c44eb696b3e75c-1345294651088/hello\ world/hello\ world.pdf

/bin/pdf2swf -I "/var/bigbluebutton/183f0bf3a0982a127bdb8161e0c44eb696b3e75c-1345294651088/183f0bf3a0982a127bdb8161e0c44eb696b3e75c-1345294651088/hello world/hello world.pdf"

Fred Dixon

unread,
Aug 18, 2012, 1:49:32 PM8/18/12
to bigblueb...@googlegroups.com
Hi Fu,

We have an outstanding pull request to fix this problem, but we've not reviewed or merged it into the code (read: we don't know if this works).  See
 

Take a close look at how the above code approaches supporting Unicode characters in the file name -- it may help you with your approach.

Regards,... Fred
-- 
BigBlueButton Developer
BigBlueButton on twitter: @bigbluebutton



--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To post to this group, send email to bigblueb...@googlegroups.com.
To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/bigbluebutton-dev?hl=en.





Fu Jiantao

unread,
Aug 19, 2012, 12:31:44 AM8/19/12
to bigblueb...@googlegroups.com
Hi Fred,

   Thanks!

   That pull request is made by me, I've tested it in Windows(I've tried to setup bbb in Windows), but in linux, it won't work for the before mentioned problem.

2012/8/19 Fred Dixon <ffd...@gmail.com>

Fred Dixon

unread,
Aug 19, 2012, 7:59:42 AM8/19/12
to bigblueb...@googlegroups.com
Hi Fu,

Ah! Marcos (one of the committers) had briefly looked at your pull request during the last stages of 0.80 development, but he couldn't get it to work on Linux.  We didn't have time to figure out the problem, which is why we didn't merge it into the code.

We're focused now on getting 0.81 beta finished.  We'll take a second look at the code, but no promises that we'll figure it out in time for 0.81 -- we're trying not to let feature creep extend the time to beta.


Regards,... Fred
-- 
BigBlueButton Developer
BigBlueButton on twitter: @bigbluebutton

Fu Jiantao

unread,
Aug 22, 2012, 12:11:08 PM8/22/12
to bigblueb...@googlegroups.com
Hi Fred,

  I've fixed the bug, and now it works.

  You can try the patches here: https://github.com/fuji246/bigbluebutton, or you can try the test site, http://www.commuxi.com/.

Fu Jiantao

unread,
Aug 22, 2012, 12:15:14 PM8/22/12
to bigblueb...@googlegroups.com
BTW, I've used juniversalchardet to guess the character set of txt file, but there's .gitignore which prohibit the commit, so you need to download it at http://code.google.com/p/juniversalchardet/.

2012/8/23 Fu Jiantao <fuj...@gmail.com>

David Park

unread,
Aug 23, 2012, 10:15:56 AM8/23/12
to bigblueb...@googlegroups.com
Hi Fu Jiantao,

Thanks for your works.
I've try to compile bbb-web of your code.
but have error.

~/dev/bigbluebutton/bigbluebutton-web$ grails -Dserver.port=8888 run-app
Welcome to Grails 1.1.1 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: /home/firstuser/dev/tools/grails-1.1.1

Base Directory: /home/firstuser/dev/bigbluebutton/bigbluebutton-web
Running script /home/firstuser/dev/tools/grails-1.1.1/scripts/RunApp.groovy
Environment set to development
  [groovyc] Compiling 19 source files to /home/firstuser/.grails/1.1.1/projects/bigbluebutton-web/classes
  [groovyc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed, Compile error during compilation with javac.
  [groovyc] /home/firstuser/dev/bigbluebutton/bigbluebutton-web/src/java/org/bigbluebutton/presentation/imp/OfficeToPdfConversionService.java:31: package org.mozilla.universalchardet does not exist
  [groovyc] import org.mozilla.universalchardet.UniversalDetector;
  [groovyc]                                    ^
  [groovyc] /home/firstuser/dev/bigbluebutton/bigbluebutton-web/src/java/org/bigbluebutton/presentation/imp/OfficeToPdfConversionService.java:62: cannot find symbol
  [groovyc] symbol  : class UniversalDetector
  [groovyc] location: class org.bigbluebutton.presentation.imp.OfficeToPdfConversionService
  [groovyc]         UniversalDetector detector = new UniversalDetector(null);
  [groovyc]         ^
  [groovyc] /home/firstuser/dev/bigbluebutton/bigbluebutton-web/src/java/org/bigbluebutton/presentation/imp/OfficeToPdfConversionService.java:62: cannot find symbol
  [groovyc] symbol  : class UniversalDetector
  [groovyc] location: class org.bigbluebutton.presentation.imp.OfficeToPdfConversionService
  [groovyc]         UniversalDetector detector = new UniversalDetector(null);
  [groovyc]                                          ^
  [groovyc] /home/firstuser/dev/bigbluebutton/bigbluebutton-web/src/java/org/bigbluebutton/presentation/imp/TextFileCreatorImp.java:96: exec(java.lang.String[],long) in org.bigbluebutton.presentation.imp.ExternalProcessExecutor cannot be applied to (java.lang.String,int)
  [groovyc]                             boolean done = new ExternalProcessExecutor().exec(COMMAND, 60000);
  [groovyc]                                                                         ^
  [groovyc] 4 errors
  [groovyc] 
  [groovyc] 
  [groovyc] 1 error
Compilation error: Compilation Failed

Will you help me? 


Fu Jiantao

unread,
Aug 23, 2012, 11:25:13 AM8/23/12
to bigblueb...@googlegroups.com
Hi David,

I've used juniversalchardet to guess the character set of txt file, but there's .gitignore which prohibit the commit, so you need to download it at http://code.google.com/p/juniversalchardet/.

you should put the jar file in bigbluebutton-web/lib directory and then try again.

2012/8/23 David Park <abc21...@gmail.com>

David Park

unread,
Aug 24, 2012, 2:23:13 AM8/24/12
to bigblueb...@googlegroups.com
Hi Fu Jiantao.
Thanks for your help.
After download  the file of juniversalchardet-1.0.3.jar, No problem ..


2012/8/24 Fu Jiantao <fuj...@gmail.com>

David Park

unread,
Jul 7, 2013, 10:32:36 PM7/7/13
to bigblueb...@googlegroups.com
Hi.
've try to compile bbb-web of your code in 080bbb, and work well.
but if i do 081bbb, have error when i upload files.
this is log

java.lang.NullPointerException: Cannot get property 'length' on null object
at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:56)
at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:156)
at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:235)
at org.bigbluebutton.web.services.PresentationService$_closure8.doCall(PresentationService.groovy:124)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)
at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1097)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1060)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:132)
at org.bigbluebutton.web.controllers.PresentationController$_closure12.doCall(PresentationController.groovy:234)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:225)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
at org.bigbluebutton.web.controllers.PresentationController$_closure12.doCall(PresentationController.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
at groovy.lang.Closure.call(Closure.java:282)
at groovy.lang.Closure.call(Closure.java:277)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleAction(SimpleGrailsControllerHelper.java:368)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.executeAction(SimpleGrailsControllerHelper.java:232)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:190)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:129)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:73)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:292)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
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.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
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.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
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.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:298)
at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:264)
at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:255)
at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:183)
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.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:127)
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:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:679)
2013-07-08 10:56:19,598 ERROR [StackTrace] - Sanitizing stacktrace:
java.lang.NullPointerException: Cannot get property 'length' on null object
at org.bigbluebutton.web.services.PresentationService$_closure8.doCall(PresentationService.groovy:124)
at org.bigbluebutton.web.controllers.PresentationController$_closure12.doCall(PresentationController.groovy:234)
at org.bigbluebutton.web.controllers.PresentationController$_closure12.doCall(PresentationController.groovy)
at java.lang.Thread.run(Thread.java:679)
2013-07-08 10:56:19,600 ERROR [StackTrace] - Sanitizing stacktrace:
org.codehaus.groovy.grails.web.servlet.mvc.exceptions.ControllerExecutionException: Executing action [numberOfSlides] of controller [org.bigbluebutton.web.controllers.PresentationController]  caused exception: Cannot get property 'length' on null object
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.executeAction(SimpleGrailsControllerHelper.java:238)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:190)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:129)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:73)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:292)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
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.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
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.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
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.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:298)
at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:264)
at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:255)
at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:183)
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.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:127)
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:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.NullPointerException: Cannot get property 'length' on null object
at org.bigbluebutton.web.services.PresentationService$_closure8.doCall(PresentationService.groovy:124)
at org.bigbluebutton.web.controllers.PresentationController$_closure12.doCall(PresentationController.groovy:234)
at org.bigbluebutton.web.controllers.PresentationController$_closure12.doCall(PresentationController.groovy)
... 1 more
2013-07-08 10:56:19,605 DEBUG [org.codehaus.groovy.grails.web.errors.GrailsExceptionResolver] - Resolving exception from handler [org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController@1ad044c6]: java.lang.NullPointerException: Cannot get property 'length' on null object
2013-07-08 10:56:19,606 DEBUG [org.codehaus.groovy.grails.web.errors.GrailsExceptionResolver] - Resolving to view '/error' for exception of type [java.lang.NullPointerException], based on exception mapping [java.lang.Exception]
2013-07-08 10:56:19,607 DEBUG [org.codehaus.groovy.grails.web.errors.GrailsExceptionResolver] - Exposing Exception as model attribute 'exception'
2013-07-08 10:56:19,609 ERROR [StackTrace] - Sanitizing stacktrace:
java.lang.NullPointerException: Cannot get property 'length' on null object
at org.bigbluebutton.web.services.PresentationService$_closure8.doCall(PresentationService.groovy:124)
at org.bigbluebutton.web.controllers.PresentationController$_closure12.doCall(PresentationController.groovy:234)
at org.bigbluebutton.web.controllers.PresentationController$_closure12.doCall(PresentationController.groovy)
at java.lang.Thread.run(Thread.java:679)
2013-07-08 10:56:19,663 DEBUG [org.codehaus.groovy.grails.web.errors.GrailsWrappedRuntimeException] - Attempting to display code snippet found in url /WEB-INF/grails-app/PresentationController.groovy
2013-07-08 10:56:19,668 ERROR [org.codehaus.groovy.grails.web.errors.GrailsExceptionResolver] - Exception occurred when processing request: [GET] /bigbluebutton/presentation/93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630/93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630/default/slides
Stacktrace follows:
java.lang.NullPointerException: Cannot get property 'length' on null object
at org.bigbluebutton.web.services.PresentationService$_closure8.doCall(PresentationService.groovy:124)
at org.bigbluebutton.web.controllers.PresentationController$_closure12.doCall(PresentationController.groovy:234)
at org.bigbluebutton.web.controllers.PresentationController$_closure12.doCall(PresentationController.groovy)
at java.lang.Thread.run(Thread.java:679)
2013-07-08 10:56:36,465 DEBUG [org.codehaus.groovy.grails.web.multipart.ContentLengthAwareCommonsMultipartResolver] - Found multipart file [fileUpload] of size 652288 bytes with original filename [(주)다인이티견적서12050902.doc], stored at [/var/lib/tomcat6/work/Catalina/localhost/bigbluebutton/upload_3d860d0e_13fbbfea9cb__8000_00000004.tmp]
2013-07-08 10:56:36,506 DEBUG [grails.app.controller.org.bigbluebutton.web.controllers.PresentationController] - Uploaded presentation name : ----------12050902
2013-07-08 10:56:36,507 DEBUG [grails.app.controller.org.bigbluebutton.web.controllers.PresentationController] - Uploaded presentation name : ----------12050902
2013-07-08 10:56:37,513 DEBUG [org.bigbluebutton.presentation.SupportedDocumentFilter] - sending: {"returnCode":"CONVERT","messageKey":"SUPPORTED_DOCUMENT","conference":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630","presentationName":"----------12050902","room":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630"}
2013-07-08 10:56:37,515 DEBUG [org.bigbluebutton.api.messaging.RedisMessagingService] - Message Received in channel: bigbluebutton:meeting:presentation
2013-07-08 10:56:37,515 DEBUG [org.bigbluebutton.api.messaging.RedisMessagingService] - Message: {"returnCode":"CONVERT","messageKey":"SUPPORTED_DOCUMENT","conference":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630","presentationName":"----------12050902","room":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630"}
2013-07-08 10:56:37,515 INFO [org.bigbluebutton.presentation.SupportedDocumentFilter] - Received supported file /var/bigbluebutton/93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630/93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630/----------12050902/----------12050902.doc
2013-07-08 10:56:37,541 DEBUG [com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection] - connecting
2013-07-08 10:56:37,816 INFO [com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection] - connected
2013-07-08 10:56:37,816 DEBUG [org.bigbluebutton.presentation.imp.Office2PdfPageConverter] - Converting /var/bigbluebutton/93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630/93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630/----------12050902/----------12050902.doc to /var/bigbluebutton/93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630/93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630/----------12050902/----------12050902.pdf
2013-07-08 10:56:42,587 DEBUG [com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection] - disconnecting
2013-07-08 10:56:42,589 INFO [com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection] - disconnected
2013-07-08 10:56:42,590 INFO [org.bigbluebutton.presentation.imp.OfficeToPdfConversionService] - Successfully converted office file to pdf.
2013-07-08 10:56:42,592 INFO [org.bigbluebutton.presentation.OfficeToPdfConversionSuccessFilter] - Notifying of OFFICE_DOC_CONVERSION_SUCCESS for /var/bigbluebutton/93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630/93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630/----------12050902/----------12050902.pdf
2013-07-08 10:56:42,593 DEBUG [org.bigbluebutton.presentation.OfficeToPdfConversionSuccessFilter] - sending: {"message":"Office document successfully converted.","returnCode":"CONVERT","messageKey":"OFFICE_DOC_CONVERSION_SUCCESS","conference":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630","presentationName":"----------12050902","room":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630"}
2013-07-08 10:56:42,594 DEBUG [org.bigbluebutton.api.messaging.RedisMessagingService] - Message Received in channel: bigbluebutton:meeting:presentation
2013-07-08 10:56:42,594 DEBUG [org.bigbluebutton.api.messaging.RedisMessagingService] - Message: {"message":"Office document successfully converted.","returnCode":"CONVERT","messageKey":"OFFICE_DOC_CONVERSION_SUCCESS","conference":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630","presentationName":"----------12050902","room":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630"}
2013-07-08 10:56:42,598 DEBUG [org.bigbluebutton.presentation.SupportedDocumentFilter] - sending: {"returnCode":"CONVERT","messageKey":"SUPPORTED_DOCUMENT","conference":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630","presentationName":"----------12050902","room":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630"}
2013-07-08 10:56:42,599 DEBUG [org.bigbluebutton.api.messaging.RedisMessagingService] - Message Received in channel: bigbluebutton:meeting:presentation
2013-07-08 10:56:42,599 DEBUG [org.bigbluebutton.api.messaging.RedisMessagingService] - Message: {"returnCode":"CONVERT","messageKey":"SUPPORTED_DOCUMENT","conference":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630","presentationName":"----------12050902","room":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630"}
2013-07-08 10:56:42,601 INFO [org.bigbluebutton.presentation.SupportedDocumentFilter] - Received supported file /var/bigbluebutton/93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630/93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630/----------12050902/----------12050902.pdf
2013-07-08 10:56:42,601 DEBUG [org.bigbluebutton.presentation.imp.PdfToSwfSlidesGenerationService] - Generating slides
2013-07-08 10:56:42,602 DEBUG [org.bigbluebutton.presentation.imp.PageCounterService] - Counting pages for pdf
2013-07-08 10:56:42,650 ERROR [org.bigbluebutton.presentation.imp.Pdf2SwfPageCounter] - Error: Couldn't open file '"/var/bigbluebutton/93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630/93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630/----------12050902/----------12050902.pdf"'
2013-07-08 10:56:42,652 DEBUG [org.bigbluebutton.presentation.imp.PageCounterService] - There are 0
2013-07-08 10:56:42,653 DEBUG [org.bigbluebutton.presentation.imp.SwfSlidesGenerationProgressNotifier] - SENDING: {"returnCode":"CONVERT","messageKey":"PAGE_COUNT_FAILED","conference":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630","presentationName":"----------12050902","room":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630"}
2013-07-08 10:56:42,654 DEBUG [org.bigbluebutton.api.messaging.RedisMessagingService] - Message Received in channel: bigbluebutton:meeting:presentation
2013-07-08 10:56:42,655 DEBUG [org.bigbluebutton.api.messaging.RedisMessagingService] - Message: {"returnCode":"CONVERT","messageKey":"PAGE_COUNT_FAILED","conference":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630","presentationName":"----------12050902","room":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630"}
2013-07-08 10:56:42,657 DEBUG [org.bigbluebutton.presentation.imp.SwfSlidesGenerationProgressNotifier] - SENT: {"returnCode":"CONVERT","messageKey":"PAGE_COUNT_FAILED","conference":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630","presentationName":"----------12050902","room":"93cd195ccf1d74a2315eebdb814c98953e993b69-1373248573630"}
2013-07-08 10:56:42,658 DEBUG [org.bigbluebutton.presentation.imp.PdfToSwfSlidesGenerationService] - Determined number of pages 0
2013-07-08 10:56:44,179 INFO [org.bigbluebutton.api.MeetingService] - Cleaning up expired meetings


2012/8/24 Fu Jiantao <fuj...@gmail.com>
Reply all
Reply to author
Forward
0 new messages