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…
I love the work you have done with the project Mikkel. Well done!
LikeLike
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)
LikeLike