Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#1784 JEdit freezes when css3Sidekick error

None
closed-fixed
Dale Anson
5
2014-04-30
2014-04-26
Jojaba
No

To reproduce the issue :
1) Edit the style-jedit-issue.css attached file
2) Try to type something in this file
3) Cursor deasappears cpu usage grows.
4) No error message (in the right bottom corner), error in log file (see txt attachment) before freezing
5) After a while cursor apperas again

@media Error detected by sidekick shouldn't be errors (see screenshot in attachment), I don't know if this is the cause of the issue.

jEdit version : 5.1.0
Sidekick version : 1.6
XML version : 2.8.7

3 Attachments

Discussion

  • Dale Anson
    Dale Anson
    2014-04-26

    • assigned_to: Dale Anson
    • Group: -->
     
  • Dale Anson
    Dale Anson
    2014-04-28

    • status: open --> closed-works-for-me
     
  • Dale Anson
    Dale Anson
    2014-04-28

    I am unable to reproduce this freezing issue. However, I did go ahead and update the CSS parser so that it properly handles the CSS 3 media queries. Previously, it was only handling CSS 2.1 media queries.

     
  • Dale Anson
    Dale Anson
    2014-04-28

    Please feel free to reopen if you can find better steps to help me reproduce the freezing problem.

     
  • Jojaba
    Jojaba
    2014-04-29

    Thanks Dale!
    I try again to reproduce the issue, following the steps I wrote in my previous message. The cursor disappears after typing 2 or 3 characters, then comes again up after a while. I removed the lines concerning @media, the issue is still coming up. Maybe a conflict with another plugin...
    I attachment a list of the installed plugins...
    I will try to deactivate each plugin one by one to see if I can find something...

     
    Attachments
  • Dale Anson
    Dale Anson
    2014-04-29

    Do you happen to have some javascript files open? If so, would you check in the Plugin Options for Sidekick, what parser do you have selected for javascript? The ecmascript parser has a known problem with some javascript files that causes the symptoms you're describing, and the ecmascript parser is part of the XML plugin. Maybe try switching to the javascript parser and see if that helps.

     
    • Jojaba
      Jojaba
      2014-04-29

      I closed all files and opened only the css file. Still have the issue...
      As I said earlier, I tried to desactivate several plugins. First I desactivate almost all plugins, and kept just XML, sidekick, errorlist. Still had the issue. But when I desactivated the XML plugin, no issue anymore. I reanabled all my plugins except XML Plugin, no issue. I disabled all plugins and activated just xml plugin (with te dependencies common controls, Eclips icons, Error List, Sidekick, Xerces), no issue !!! So it must be a conflict problem. Now I try to reanable each plugin one by one to see witch one is conflcting....

       
  • Dale Anson
    Dale Anson
    2014-04-29

    • status: closed-works-for-me --> open
     
  • Dale Anson
    Dale Anson
    2014-04-29

    Re-opening since this is still under discussion.

     
  • Jojaba
    Jojaba
    2014-04-29

    Correction: when enabling only xml plugin, still get the issue when telling sidekick to parse with css parser (was set to none, when I reactivated xml plugin in my test before).
    I think it is the css parser that cause the issue. How can I test if this is the case?

     
  • Jojaba
    Jojaba
    2014-04-29

    Ed of the tests. It is definitely the css parser. I switch to no parser, and had no issue.
    Would you like me to test a patch?

     
  • Dale Anson
    Dale Anson
    2014-04-29

    Can you get a stack trace? That would help pinpoint the problem.

     
  • Jojaba
    Jojaba
    2014-04-29

    Not ure this is relevant. I desactivated then reactivated the css parser, this is what I saw in the log file (sorry for the long pasting, I have really no knowledge in Java so can't figure out what should be relevant in these lines...) :
    22:53:01 [AWT-EventQueue-0] [debug] CSS2SideKickParser: css: deactivated
    22:53:01 [AWT-EventQueue-0] [debug] CSS2SideKickParser: css: activated for style-jedit-issue.css (E:\Bibliotheque\Bureau)
    22:53:01 [AWT-EventQueue-0] [debug] SideKickParsedData: Setting parsed data of org.gjt.sp.jedit.View[active] to sidekick.SideKickParsedData@7ad11536
    22:53:01 [AWT-EventQueue-0] [debug] EditBus: SideKickUpdate[source=null]
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: sidekick.css.parser.ParseException: Encountered ";" at line 123, column 13.
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: Was expecting one of:
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: <S> ...
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: ":" ...
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1:
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.generateParseException(CSS3Parser.java:3843)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.jj_consume_token(CSS3Parser.java:3719)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.declaration(CSS3Parser.java:3032)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.declarations(CSS3Parser.java:2155)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.ruleSet(CSS3Parser.java:2080)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.afterImportDeclaration(CSS3Parser.java:539)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.styleSheet(CSS3Parser.java:449)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.CSS2SideKickParser.parse(CSS2SideKickParser.java:156)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.CSS2SideKickParser.parse(CSS2SideKickParser.java:117)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.SideKick$ParseRequestWorker.doInBackground(SideKick.java:550)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.SideKick$ParseRequestWorker.doInBackground(SideKick.java:526)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at javax.swing.SwingWorker$1.call(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.util.concurrent.FutureTask.run(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at javax.swing.SwingWorker.run(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.lang.Thread.run(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: sidekick.css.parser.ParseException: Encountered "\n\n" at line 126, column 2.
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: Was expecting one of:
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: "}" ...
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: ";" ...
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1:
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.generateParseException(CSS3Parser.java:3843)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.jj_consume_token(CSS3Parser.java:3719)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.ruleSet(CSS3Parser.java:2081)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.afterImportDeclaration(CSS3Parser.java:539)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.styleSheet(CSS3Parser.java:449)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.CSS2SideKickParser.parse(CSS2SideKickParser.java:156)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.CSS2SideKickParser.parse(CSS2SideKickParser.java:117)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.SideKick$ParseRequestWorker.doInBackground(SideKick.java:550)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.SideKick$ParseRequestWorker.doInBackground(SideKick.java:526)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at javax.swing.SwingWorker$1.call(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.util.concurrent.FutureTask.run(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at javax.swing.SwingWorker.run(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.lang.Thread.run(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: sidekick.css.parser.ParseException: Encountered ";" at line 758, column 13.
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: Was expecting one of:
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: <S> ...
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: ":" ...
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1:
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.generateParseException(CSS3Parser.java:3843)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.jj_consume_token(CSS3Parser.java:3719)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.declaration(CSS3Parser.java:3032)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.declarations(CSS3Parser.java:2155)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.ruleSet(CSS3Parser.java:2080)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.afterImportDeclaration(CSS3Parser.java:539)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.styleSheet(CSS3Parser.java:449)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.CSS2SideKickParser.parse(CSS2SideKickParser.java:156)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.CSS2SideKickParser.parse(CSS2SideKickParser.java:117)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.SideKick$ParseRequestWorker.doInBackground(SideKick.java:550)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.SideKick$ParseRequestWorker.doInBackground(SideKick.java:526)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at javax.swing.SwingWorker$1.call(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.util.concurrent.FutureTask.run(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at javax.swing.SwingWorker.run(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.lang.Thread.run(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: sidekick.css.parser.ParseException: Unrecognized token, Lexical error at line 759, column 9. Encountered: ":" (58), after : "!"
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.parser.CSS3Parser.styleSheet(CSS3Parser.java:456)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.CSS2SideKickParser.parse(CSS2SideKickParser.java:156)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.css.CSS2SideKickParser.parse(CSS2SideKickParser.java:117)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.SideKick$ParseRequestWorker.doInBackground(SideKick.java:550)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at sidekick.SideKick$ParseRequestWorker.doInBackground(SideKick.java:526)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at javax.swing.SwingWorker$1.call(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.util.concurrent.FutureTask.run(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at javax.swing.SwingWorker.run(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    22:53:01 [SwingWorker-pool-1-thread-1] [error] SwingWorker-pool-1-thread-1: at java.lang.Thread.run(Unknown Source)
    22:53:01 [AWT-EventQueue-0] [debug] SideKickParsedData: Setting parsed data of org.gjt.sp.jedit.View[active] to sidekick.css.CSSParsedData@589bfafa
    22:53:01 [AWT-EventQueue-0] [debug] EditBus: SideKickUpdate[source=null]
    22:53:01 [AWT-EventQueue-0] [debug] CSS2SideKickParser: css: deactivated
    22:53:01 [AWT-EventQueue-0] [debug] CSS2SideKickParser: css: activated for style-jedit-issue.css (E:\Bibliotheque\Bureau)
    22:53:03 [AWT-EventQueue-0] [debug] EditBus: PositionChanging[what=POSITION_CHANGING,source=org.gjt.sp.jedit.EditPane[active]]
    22:53:04 [AWT-EventQueue-0] [debug] EditBus: DockableWindowUpdate[what=DEACTIVATED,dockable=sidekick-tree,source=org.gjt.sp.jedit.gui.DockableWindowManagerImpl[,0,98,1920x872,layout=org.gjt.sp.jedit.gui.DockableLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]]
    22:53:05 [AWT-EventQueue-0] [debug] EditBus: DockableWindowUpdate[what=ACTIVATED,dockable=sidekick-tree,source=org.gjt.sp.jedit.gui.DockableWindowManagerImpl[,0,98,1920x872,invalid,layout=org.gjt.sp.jedit.gui.DockableLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]]
    22:53:10 [AWT-EventQueue-0] [debug] EditBus: DockableWindowUpdate[what=DEACTIVATED,dockable=sidekick-tree,source=org.gjt.sp.jedit.gui.DockableWindowManagerImpl[,0,98,1920x872,invalid,layout=org.gjt.sp.jedit.gui.DockableLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]]
    22:53:10 [AWT-EventQueue-0] [debug] EditBus: DockableWindowUpdate[what=ACTIVATED,dockable=sidekick-tree,source=org.gjt.sp.jedit.gui.DockableWindowManagerImpl[,0,98,1920x872,invalid,layout=org.gjt.sp.jedit.gui.DockableLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]]
    22:53:34 [AWT-EventQueue-0] [debug] EditBus: PositionChanging[what=POSITION_CHANGING,source=org.gjt.sp.jedit.EditPane[active]]
    22:53:36 [AWT-EventQueue-0] [debug] EditBus: PositionChanging[what=POSITION_CHANGING,source=org.gjt.sp.jedit.EditPane[active]]
    22:53:36 [AWT-EventQueue-0] [debug] EditBus: PositionChanging[what=POSITION_CHANGING,source=org.gjt.sp.jedit.EditPane[active]]
    22:53:37 [AWT-EventQueue-0] [debug] EditBus: PositionChanging[what=POSITION_CHANGING,source=org.gjt.sp.jedit.EditPane[active]]
    22:53:44 [AWT-EventQueue-0] [debug] EditBus: DockableWindowUpdate[what=ACTIVATED,dockable=log-viewer,source=org.gjt.sp.jedit.gui.DockableWindowManagerImpl[,0,98,1920x872,layout=org.gjt.sp.jedit.gui.DockableLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]]

     
  • Jojaba
    Jojaba
    2014-04-29

    Strange, now It works again with css parser but I have this errr (bottom right) :
    java.lang.NullPointerException
    at sidekick.css.CssSideKickCompletion.initCssProperties(CssSideKickCompletion.java:240)
    at sidekick.css.CssSideKickCompletion.readCompletionConfig(CssSideKickCompletion.java:181)
    at sidekick.css.CssSideKickCompletion.initialize(CssSideKickCompletion.java:144)
    at sidekick.css.CompletionRequest.<init>(CompletionRequest.java:39)
    at sidekick.css.CSS2SideKickParser.complete(CSS2SideKickParser.java:240)
    at sidekick.SideKickActions.complete(SideKickActions.java:123)
    at sidekick.SideKickActions$1.actionPerformed(SideKickActions.java:87)
    at javax.swing.Timer.fireActionPerformed(Unknown Source)
    at javax.swing.Timer$DoPostEvent.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    ... ???

     
  • Dale Anson
    Dale Anson
    2014-04-29

    Got it, that is a big help. The problem is in the css completion, not the parser itself. I don't usually have completion turned on, but once I turned it on I can see the problem you're reporting.

     
  • Dale Anson
    Dale Anson
    2014-04-30

    • status: open --> closed-fixed
     
  • Dale Anson
    Dale Anson
    2014-04-30

    I did some optimization for the code completion that seems to work well enough on my computer. It's in revision 23530. Can you give it a try?

    I also cleaned up the code a little so the null pointer exceptions don't happen when loading the completion properties and I also suppressed the parsing errors that were being shown in the activity log when parse on keystroke was selected.

     
  • Jojaba
    Jojaba
    2014-04-30

    Great Dale, thanks a lot!

    I had to reconfigure the svn plugin in jEdit to get this patch that I found here : https://sourceforge.net/p/jedit/svn/23530/ (I guess).
    I don't remember the svn path to checkout and how to configure svn plugin. I fond this address that didn't work : https://svn.code.sf.net/p/jedit/svn/jEdit/trunk/ jedit-svn

    Sorry for that. Thanks for your help.