<< Enabling Quickr entry in Quickr Connectors 8.2 | Home | Rundown of what's new in 8.5(.1) >>

LotusScript.doc v2 beta 5

Beta 56 (and hopefully the last beta) of LotusScript.doc v2 is out - get it here (lsdoc_200beta6.zip). This beta fixes minor issues with comment parsing and makes logging easier to configure by gracefully failing if not configured in java.policy (for more info see LotusScript.doc v2 - java.policy changes required).

This beta also makes the database run on Notes 7 by not using StringBuilder but StringBuffer instead.

Please note: Please remember to adjust the Java heap size. For more information see this post.

Comments as always welcome here on the blog or by e-mail to lekkim [at] lsdoc [dot] org.

Update: I found a small bug so you'll get beta 6 instead of 5...



Avatar: Peter Presnell

Re: LotusScript.doc v2 beta 5

I love the work you have done with the project Mikkel.  Well done!
Avatar: Jan R.

Re: LotusScript.doc v2 beta 5

Hi Mikkel!

Thanks for the update and your great work!
I still have problems generating the lsdoc with beta 5.

Error message using Notes 7.03 on finest logging level:


[LSDOC.CORE.REGISTRY           ][INFO   ]: Adding all available parsers to the parser registry
[LSDOC.CORE.REGISTRY           ][INFO   ]: Instantiated and initialized design element parser: org.lsdoc.dbdesign.parser.DatabaseParser
[LSDOC.CORE.REGISTRY           ][INFO   ]: Instantiated and initialized design element parser: org.lsdoc.dbdesign.parser.FormParser
[LSDOC.CORE.REGISTRY           ][INFO   ]: Instantiated and initialized design element parser: org.lsdoc.dbdesign.parser.ViewParser
[LSDOC.CORE.REGISTRY           ][INFO   ]: Instantiated and initialized design element parser: org.lsdoc.dbdesign.parser.AgentParser
[LSDOC.CORE.REGISTRY           ][INFO   ]: Instantiated and initialized design element parser: org.lsdoc.dbdesign.parser.ScriptLibraryParser
[LSDOC.CORE.REGISTRY           ][INFO   ]: Instantiated and initialized design element parser: org.lsdoc.dbdesign.parser.PageParser
[LSDOC.CORE.REGISTRY           ][INFO   ]: Instantiated and initialized design element parser: org.lsdoc.dbdesign.parser.SharedActionsParser
[LSDOC.CORE.REGISTRY           ][INFO   ]: Instantiated and initialized design element parser: org.lsdoc.dbdesign.parser.ActionParser
[LSDOC.CORE.REGISTRY           ][INFO   ]: Instantiated and initialized design element parser: org.lsdoc.dbdesign.parser.DatabaseScriptParser
[LSDOC.CORE.REGISTRY           ][INFO   ]: Added LotusScript language parser to the registry
[LSDOC.CORE.CONTEXT            ][INFO   ]: Adding design element type to include: org.lsdoc.dbdesign.Database
[LSDOC.CORE.CONTEXT            ][INFO   ]: Adding design element type to exclude: org.lsdoc.dbdesign.Form
[LSDOC.CORE.CONTEXT            ][INFO   ]: Adding design element type to exclude: org.lsdoc.dbdesign.Subform
[LSDOC.CORE.CONTEXT            ][INFO   ]: Adding design element type to exclude: org.lsdoc.dbdesign.View
[LSDOC.CORE.CONTEXT            ][INFO   ]: Adding design element type to exclude: org.lsdoc.dbdesign.Agent
[LSDOC.CORE.CONTEXT            ][INFO   ]: Adding design element type to exclude: org.lsdoc.dbdesign.Page
[LSDOC.CORE.CONTEXT            ][INFO   ]: Adding design element type to exclude: org.lsdoc.dbdesign.SharedActions
[LSDOC.CORE.CONTEXT            ][INFO   ]: Adding design element type to exclude: org.lsdoc.dbdesign.DatabaseScript
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, dxl.iobserver.class=null
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, domino.dtd_root=null
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, domino.session_strategy=org.lsdoc.session.NrpcNoThreadSessionStrategy@2d6b3a30
[LSDOC.CORE.PARSER             ][FINE   ]: Instructing DXLExporter to export DXL for script libraries
[ROOT                          ][SEVERE ]: Exception trying to parse database
Exception: java.lang.ExceptionInInitializerError
    at org.lsdoc.log.LoggedElementMessage.<init>(LoggedElementMessage.java:35)
    at org.lsdoc.log.LogUtil.log(LogUtil.java:192)
    at org.lsdoc.log.LogUtil.debug(LogUtil.java:74)
    at org.lsdoc.dxl.DxlParser.parse(DxlParser.java:386)
    at org.lsdoc.dxl.DxlParser.parse(DxlParser.java:330)
    at org.lsdoc.dxl.DxlParser.parse(DxlParser.java:280)
    at org.lsdoc.Parser.doParse(Parser.java:246)
    at org.lsdoc.Parser.parseDatabase(Parser.java:98)
    at org.lsdoc.runner.notes.NotesAgent.NotesMain(NotesAgent.java:156)
    at org.lsdoc.runner.notes.DcNotesAgent.execute(DcNotesAgent.java:40)
    at JavaAgent.NotesMain(Unknown Source)
    at lotus.domino.AgentBase.runNotes(Unknown Source)
    at lotus.domino.NotesThread.run(Unknown Source)
Caused by: java.lang.NullPointerException
    at org.lsdoc.util.NodeXPathUtil.<clinit>(NodeXPathUtil.java:32)
    ... 13 more
java.lang.NullPointerException
    at org.lsdoc.util.NodeXPathUtil.<clinit>(NodeXPathUtil.java:32)
    at org.lsdoc.log.LoggedElementMessage.<init>(LoggedElementMessage.java:35)
    at org.lsdoc.log.LogUtil.log(LogUtil.java:192)
    at org.lsdoc.log.LogUtil.debug(LogUtil.java:74)
    at org.lsdoc.dxl.DxlParser.parse(DxlParser.java:386)
    at org.lsdoc.dxl.DxlParser.parse(DxlParser.java:330)
    at org.lsdoc.dxl.DxlParser.parse(DxlParser.java:280)
    at org.lsdoc.Parser.doParse(Parser.java:246)
    at org.lsdoc.Parser.parseDatabase(Parser.java:98)
    at org.lsdoc.runner.notes.NotesAgent.NotesMain(NotesAgent.java:156)
    at org.lsdoc.runner.notes.DcNotesAgent.execute(DcNotesAgent.java:40)
    at JavaAgent.NotesMain(Unknown Source)
    at lotus.domino.AgentBase.runNotes(Unknown Source)
    at lotus.domino.NotesThread.run(Unknown Source)

Error message using Notes 8.5 on finer logging level:


...
[ROOT                          ][FINE   ]: Found ICommentParser in FeatureRegistry (class: org.lsdoc.language.ls.comment.LsdocCommentParser)
[LSDOC.LS.COMMENT.PARSERS.LSDOC][FINER  ]: Trying to extract comment forwards
[LSDOC.LS.COMMENT.PARSERS.LSDOC][FINER  ]: Trying to extract comment backwards
[LSDOC.LS.COMMENT.PARSERS.LSDOC][FINER  ]: Unable to find comment lines - setting comment to null
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.ls.code_inspector=null
[ROOT                          ][FINE   ]: Starting to parse LotusScript sub
[ROOT                          ][FINE   ]: Parsed sub/function definition (isStatic: null, modifier: Public, type: Sub, name: PRTTPostInitiateTask, args: (pwdb As PavoneWorkflowDocumentBase, IsMerge As Variant, plmEditors As PavoneLinkMessage, plmReaders As PavoneLinkMessage), returnType: null)
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.ls.keep_sourcecode=null
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.ls.comment_parser=org.lsdoc.language.ls.comment.LsdocCommentParser@45b145b1
[ROOT                          ][FINE   ]: Found ICommentParser in FeatureRegistry (class: org.lsdoc.language.ls.comment.LsdocCommentParser)
[LSDOC.LS.COMMENT.PARSERS.LSDOC][FINER  ]: Trying to extract comment forwards
[LSDOC.LS.COMMENT.PARSERS.LSDOC][FINER  ]: Trying to extract comment backwards
[LSDOC.LS.COMMENT.PARSERS.LSDOC][FINER  ]: Unable to find comment lines - setting comment to null
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.ls.code_inspector=null
[ROOT                          ][FINE   ]: Starting to parse LotusScript function
[ROOT                          ][FINE   ]: Parsed sub/function definition (isStatic: null, modifier: Private, type: Function, name: PHInvolvedPersons, args: (p_nd As NotesDocument) , returnType: Variant)
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.ls.ignore_private=null
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.ls.keep_sourcecode=null
[ROOT                          ][FINE   ]: Parsing a function - setting return type
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.ls.comment_parser=org.lsdoc.language.ls.comment.LsdocCommentParser@45b145b1
[ROOT                          ][FINE   ]: Found ICommentParser in FeatureRegistry (class: org.lsdoc.language.ls.comment.LsdocCommentParser)
[LSDOC.LS.COMMENT.PARSERS.LSDOC][FINER  ]: Trying to extract comment forwards
[LSDOC.LS.COMMENT.PARSERS.LSDOC][FINER  ]: Trying to extract comment backwards
[LSDOC.LS.COMMENT.PARSERS      ][FINE   ]: Found comment end sequence ('*/') - extract comment before parent element
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, system.newline.separator=null
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.ls.code_inspector=null
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.dbdesign.include_when_no_code=null
[ROOT                          ][FINE   ]: Encountered database-node - wrapping in event and publishing
[ROOT                          ][FINE   ]: Processing scriptlibrary element: DB_Planungsheft_WFUIEventLib (DXL parse message -- ns: http://www.lotus.com/dxl, element: scriptlibrary, value: null, xpath: database/scriptlibrary[@name='DB_Planungsheft_WFUIEventLib'])
[ROOT                          ][FINE   ]: Processing noteinfo element: 1D2D92805DE4EEF8C1257515004EA933 (DXL parse message -- ns: http://www.lotus.com/dxl, element: noteinfo, value: null, xpath: database/scriptlibrary[@name='DB_Planungsheft_WFUIEventLib']/noteinfo[1])
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.dbdesign.parse_code=null
[ROOT                          ][FINE   ]: Starting to parse LotusScript constant
[ROOT                          ][FINE   ]: Parsed constant definition (modifier: Private, name: PACKAGE, suffix: null, value: "DB_Planungsheft_WFUIEventLib")
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.ls.ignore_private=null
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.ls.keep_sourcecode=null
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.ls.comment_parser=org.lsdoc.language.ls.comment.LsdocCommentParser@45b145b1
[ROOT                          ][FINE   ]: Found ICommentParser in FeatureRegistry (class: org.lsdoc.language.ls.comment.LsdocCommentParser)
[LSDOC.LS.COMMENT.PARSERS.LSDOC][FINER  ]: Trying to extract comment forwards
[LSDOC.LS.COMMENT.PARSERS.LSDOC][FINER  ]: Trying to extract comment backwards
[LSDOC.LS.COMMENT.PARSERS.LSDOC][FINER  ]: Unable to find comment lines - setting comment to null
[ROOT                          ][FINE   ]: Starting to parse LotusScript class
[ROOT                          ][FINE   ]: Parsed class definition (modifier: Public, name: DB_Planungsheft_WFUIEventHandler, parentClass: DBUIWorkflowEventHandler)
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.ls.keep_sourcecode=null
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.ls.comment_parser=org.lsdoc.language.ls.comment.LsdocCommentParser@45b145b1
[ROOT                          ][FINE   ]: Found ICommentParser in FeatureRegistry (class: org.lsdoc.language.ls.comment.LsdocCommentParser)
[LSDOC.LS.COMMENT.PARSERS.LSDOC][FINER  ]: Trying to extract comment forwards
[LSDOC.LS.COMMENT.PARSERS.LSDOC][FINER  ]: Trying to extract comment backwards
[LSDOC.LS.COMMENT.PARSERS      ][FINE   ]: Found comment end sequence ('*/') - extract comment before parent element
[LSDOC.CORE                    ][FINER  ]: Getting value for feature, parser.dbdesign.ignore_exceptions=null
[ROOT                          ][SEVERE ]: Exception trying to parse database
Exception: java.lang.StringIndexOutOfBoundsException
    at java.lang.String.charAt(String.java:418)
    at org.lsdoc.language.ls.comment.AbstractCommentParser.trimTabsSpaces(AbstractCommentParser.java:199)
    at org.lsdoc.language.ls.comment.AbstractCommentParser.parse(AbstractCommentParser.java:158)
    at org.lsdoc.language.ls.parser.BaseParser.lookForComment(BaseParser.java:66)
    at org.lsdoc.language.ls.parser.ClassParser.parse(ClassParser.java:242)
    at org.lsdoc.language.ls.parser.Parser.parse(Parser.java:125)
    at org.lsdoc.language.ls.parser.Parser.parse(Parser.java:312)
    at org.lsdoc.dbdesign.parser.AbstractElementParser.findCodeElements(AbstractElementParser.java:136)
    at org.lsdoc.dbdesign.parser.ScriptLibraryParser.parse(ScriptLibraryParser.java:75)
    at org.lsdoc.Parser$2.added(Parser.java:399)
    at org.lsdoc.dxl.DxlParser$1.added(DxlParser.java:169)
    at org.lsdoc.elementobserver.simple.SimpleObserver.activateListener(SimpleObserver.java:44)
    at org.lsdoc.elementobserver.BaseObserver.activateListeners(BaseObserver.java:110)
    at org.lsdoc.elementobserver.BaseObserver.addElement(BaseObserver.java:174)
    at org.lsdoc.dxl.DxlParser.parse(DxlParser.java:406)
    at org.lsdoc.dxl.DxlParser.parse(DxlParser.java:330)
    at org.lsdoc.dxl.DxlParser.parse(DxlParser.java:280)
    at org.lsdoc.Parser.doParse(Parser.java:246)
    at org.lsdoc.Parser.parseDatabase(Parser.java:98)
    at org.lsdoc.runner.notes.NotesAgent.NotesMain(NotesAgent.java:156)
    at org.lsdoc.runner.notes.DcNotesAgent.execute(DcNotesAgent.java:40)
    at JavaAgent.NotesMain(Unknown Source)
    at lotus.domino.AgentBase.runNotes(Unknown Source)
    at lotus.domino.NotesThread.run(Unknown Source)

Add a comment Send a TrackBack