Hi Felix,

the only workaround I have in mind currently is to use fprintf() to print the debug information. It is quite uncomfortable, but I see currently no other workaround.

By the way, not directly related to your question, you could check the properties of the template in the shared folder and the copy in the user folder, to see whether setting of the "ReadOnly" property to "false" changed anything.

Hope that helps.

Best regards,
Mikhail.

On 06/16/09 10:15, Zhang Xiaofei wrote:
Hi Mikhail,

Sorry, I have this question at the very beginning of debugging: after I set a breakpoint in SfxDocTplService_Impl::addTemplate() however each time I drag a template into "My Templates" folder, the cursor is stuck in the "dragging" state thus both the keyborad and mouse stop working until I restart the desktop window. Is there any trick I can use to avoid this please?

Thanks and Best Regards,
Felix.


On Mon, Jun 15, 2009 at 1:59 PM, Mikhail Voytenko <mikhail.voyte...@sun.com <mailto:mikhail.voyte...@sun.com>> wrote:

    Hi Felix,

    thank you for the info, and good luck. :)
    The questions are as always welcome.

    Best regards,
    Mikhail.


    On 06/15/09 06:21, Zhang Xiaofei wrote:

        Hi Mikhail,

        Sorry for the first abnormal test result from my bad
        environment. The problem does exist in my new DEV300_m46
        build. I guess it still needs to be investigated, and I will
        write mails as soon as I get some information from debugging.

        Best Regards,
        Felix.


        Mikhail Voytenko

            Hi Felix,

            Never mind, my first description indeed was not detailed
            enough, and the dmake syntax is quite confusing as well.

            I think the change you have done is the fix for the issue.
            In case JavaLoader still has to be fixed, we can open a
            new issue, I think.
            Could you please attach the patch to the issue.

            After that please take a look to the issue
            http://qa.openoffice.org/issues/show_bug.cgi?id=71512

            This is a Unix-only issue. The problem there is that after
            a template is dragged and dropped to the user templates,
            the access rights of the template file are preserved, so
            the template can not be edited. The rights actually should
            be adjusted every time a new template is added to the user
            templates set.

            The implementation can be found in
            sfx2/source/doc/doctemplates.cxx in the method
            "SfxDocTplService_Impl::addTemplate()". Please get
            familiar with the code and prepare the environment to
            reproduce and debug the problem. We can discuss the
            details on the next IRC meeting.

            Best regards,
            Mikhail.

            On 06/08/09 11:08, Zhang Xiaofei wrote:

                Hi Mikhail,

                Sorry that I totally misinterpreted your suggestion
                previously. I removed the space before the '>' mark
                and I can install the extension afterwards.

                And I was wrong about the PropertySet example too, it
                looks adding any string, no matter how long or if it
                contains space, would cause the same error message.
                I'm awfully sorry about my unsound assumptions. I find
                it really necessary for me to start reading the manual
                of dmake.

                I'm looking forward to hear the result of the
                discussions between you and the developer of
                JavaLoader, so that we can decide if patching the
                makefile is enough for this issue.

                Thank You and Best Regards,
                Felix.


                Mikhail Voytenko

                    Hi Felix,

                    As we have already discussed on the IRC meeting
                    the splitting of the line itself is no problem,
                    the splitting of the correct class name works
                    pretty well.

                    The problem is the space at the end of the class name.
                    RegistrationClassName:
                    org.openoffice.examples.embedding.OwnEmbeddedOb
                    jectFactory
                    ^           ^

                    The first space marked above is introduced by
                    splitting, it is no problem at all. The second
                    one, at the end of the class name is introduced by
                    the Makefile, it is the problem.
                    If you take a look to the Makefile in
                    \sdk\examples\java\PropertySet\, the generation of
                    the manifest file does not introduces the space at
                    the end of the class name, this is why it works there.

                    By the way, how did you make the
                    RegistrationClassName longer in your experiments?
                    I suspect that you have added spaces and this is
                    why it did not work.

                    So it is actually a problem of the example
                    Makefile, the generation of the manifest uses
                    "echo" command, and this command prints everything
                    in manifest till the ">" sign including the space,
                    that is actually wrong. Could you please try to
                    remove the unnecessary space in the Makefile and
                    check whether it helps.

                    We still should contact the responsible developer
                    to be sure that the current behavior of the
                    JavaLoader implementation is the intended one.
                    Unfortunately, I could not reach him today.

                    Thanks and best regards,
                    Mikhail.


                    On 06/05/09 11:13, Zhang Xiaofei wrote:

                        Hi Mikhail,

                        Thank you for your reply,  I agree with your
                        point, it seems according to my investigation,
                        a line is broken and inserted the space when
                        it exceeds 70 chars, and the OwnEmbeddedObject
                        example just happens to be the only one has a
                        RegistrationClassName line long enough to
                        cause the error. To confirm this I changed
                        RegistrationClassName
                        \sdk\examples\java\PropertySet\Makefile ,
                        which works fine before, to a string long
                        enough( in $(COMP_CLASS_OUT)/%.Manifest :
                        target) and got the same compiling error:
                        -------------------------------
                        make:
                        
[D:/work/C/issues/i100835/WINexample.out/misc/PropTest\\java_PropTest_regi

                        ster_component.flag] Error 1 (ignored)
                        "D:\Software\ooo300m9\OpenOffice.org
                        3\program\\unopkg" add -f "D:\work\C\issues
                        \i100835\WINexample.out\bin\PropTest.oxt"
                        An error occurred while enabling: PropTest.uno.jar
                        make: ***
                        
[D:/work/C/issues/i100835/WINexample.out/misc/PropTest\\java_PropTest_

                        register_component.flag] Error 1
                        -------------------------------
                        and the same installing error, the message box
                        of which shows only the RegistrationClassName.

                        So I guess the problem is not in the example
                        itself, and I agree maybe an investigation
                        should be made in Javaloader implementation.
                        Hope the information above helps.

                        Thanks and Best Regards,
                        Felix.


                        Mikhail Voytenko

                            Hi Felix,

                            Sorry for the delay with the answer, I had
                            to switch to other tasks.

                            The problem is the space in the
                            MANIFEST.MF file in the
                            OwnEmbeddedObject.uno.jar. The space is
                            added just after
                            
org.openoffice.examples.embedding.OwnEmbeddedObjectFactory,
                            if it is removed the extension can be
                            successfully installed.

                            I must confess, I do not understand
                            currently why did it work before, probably
                            something was changed in the JavaLoader
                            implementation so that now the space is a
                            problem.
                            Anyway, could you please try to changed
                            the Makefile, so that the generation of
                            the manifest does not introduce the space
                            at the end ( it is in
                            $(COMP_GEN_OUT)/%.Manifest: target ) and
                            check whether the extension works on your
                            side. I will discuss the problem with the
                            developer responsible for the JavaLoader
                            implementation to see whether the current
                            office behavior is correct.

                            Best regards,
                            Mikhail.

                            On 06/03/09 08:41, Zhang Xiaofei wrote:

                                Hi Mikhail,

                                Thank you, I have got the stack ant it
                                looks like this:

                                Thread:    216 :javaloader.cxx: mapped
                                javaloader - 0xd900a4
                                java.lang.ClassNotFoundException:
                                org.openoffice.examples.embedding.OwnEmbeddedO
                                bjectFactory
                                      at
                                
java.net.URLClassLoader$1.run(URLClassLoader.java:200)
                                      at
                                
java.security.AccessController.doPrivileged(Native
                                Method)
                                      at
                                
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
                                      at
                                
java.lang.ClassLoader.loadClass(ClassLoader.java:306)
                                      at
                                
java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:579)
                                      at
                                
java.lang.ClassLoader.loadClass(ClassLoader.java:251)
                                      at
                                
com.sun.star.comp.loader.RegistrationClassFinder.find(RegistrationCla

                                ssFinder.java:67)
                                      at
                                
com.sun.star.comp.loader.JavaLoader.writeRegistryInfo(JavaLoader.java

                                :437)
                                An error occurred while enabling:
                                OwnEmbeddedObject.uno.jar

                                By the way, sorry I forgot to mention
                                before, after I built
                                
desktop/source/deployement/registry/component/dp_component.cxx
                                with debug information, I got this
                                assertion every first time after
                                startup the mouse hovers over the
                                DecoToolBox or the Tool menu entry, I
                                suspect there's a possibility it be
                                related to this problem:

                                Error: File
                                
g://DEV300_m37/desktop/source/deployment/registry/component/dp_component.cxx,
                                Line 660
                                :### invalid UNO_JAVA_CLASSPATH entry!

                                (Yes=Abort / No=Ignore / Cancel=Debugger )

                                Best Regards,
                                Felix.


                                Mikhail Voytenko

                                    Hi Felix,

                                    the stack should be printed to the
                                    stderr, it might be that it is
                                    redirected.
                                    Please try to print to a file
                                    using java.io.PrintStream and
                                    e.printStackTrace( PrintStream ).
                                    Additionally you could the
                                    printing at the beginning of the
                                    method and in the constructor to
                                    be sure that the printing works at
                                    all.

                                    Best regards,
                                    Mikhail.

                                    On 06/02/09 11:22, Zhang Xiaofei
                                    wrote:

                                        Hi Mikhail,

                                        Sorry, but after I delivered
                                        the modified jurt.jar to the
                                        installation path, I looked
                                        both from Visual Studio output
                                        with OOo being debugged, and
                                        from running unopkg from
                                        console, but neither seems to
                                        be the right way to see the
                                        call stack printed. Could you
                                        please give me a hint please?

                                        Thanks and Best Regards,
                                        Felix.

                                        Mikhail Voytenko

                                            Hi Felix,

                                            The problem with debugging
                                            of the registration
                                            process was indeed the
                                            java implementation of the
                                            JavaLoader. For the
                                            further investigation
                                            please introduce the
                                            change in the JavaLoader
                                            implementation
                                            
jurt/com/sun/star/comp/loader/JavaLoader.java
                                            in method
                                            public boolean
                                            writeRegistryInfo()

                                            The caught  in the method
                                            exception should be used
                                            to print the call stack.
                                            You could use
                                            "e.printStackTrace()" call
                                            to get the stack to the
                                            exception. By the way,
                                            please change
                                            "catch ( Exception e )" to
                                            "catch( Throwable )" to
                                            catch all the exceptions.

                                            Best regards,
                                            Mikhail.
















Reply via email to