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.