[
https://issues.apache.org/jira/browse/OPENMEETINGS-831?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
JiraUser updated OPENMEETINGS-831:
----------------------------------
Description:
The method for finding the jodconverter path fails on (at least) EXT4
filesystems due to the way ext4 maps and traverses the tree- openmeetings
cannot convert using jodconverter.
The fix is simple, please consider including this update in a binary release.
The code relates to GeneratePDF.java, line XX:
if (jar.startsWith("jodconverter")) {
To accomodate the ext4 filesystem, this should read:
if (jar.startsWith("jodconverter-cli")) {
On every successful openmeetings server (quite a few now, including RMTPS and
OOo conversion :D thanks for all your time and amazing work!), the jodconverter
command run executes the jodconverter-cli-2.2.2.jar file. On one machine, it
attempts to execute the jodconverter-2.2.2.jar file. This seems to be because
the method .list() in the loop:
for (String jar : jodFolder.list(new FilenameFilter() {
...
}
}))
seems to traverse the directory structure the same as ' find . ' or 'ls -U' in
that folder.
This means that the last file in the array which matches the condition is
jodconverter-2.2.2.jar (as the ext4 filesystem hash map/algorithm organises the
file logically in the same place), not the jodconverter-cli-2.2.2.jar which
seems to be needed.
Running the conversion command manually from the shell with '.. -jar
jodconverter-cli-2.2.2.jar ..' instead of '.. -jar jodconverter-2.2.2.jar ..'
on the machine with the problem works perfectly- the file is converted and the
expected output is seen.
To see the effect, consider the following two scenarios:
EXT3:
root@host1:~/stan# touch right
root@host1:~/stan# touch left
root@host1:~/stan# touch ever
root@host1:~/stan# touch tonight
root@host1:~/stan# find .
.
./right
./left
./ever
./tonight
root@host1:~/stan# find --version
find (GNU findutils) 4.4.2
EXT4
root@host2:~/stan# touch right
root@host2:~/stan# touch left
root@host2:~/stan# touch ever
root@host2:~/stan# touch tonight
root@host2:~/stan# find .
.
./left
./tonight
./ever
./right
root@host2:~/stan# find --version
find (GNU findutils) 4.4.2
root@host2:~/stan# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
root@host1:~/stan# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
>> Jodconversion command generated by *working* openmeetings (note
the -jar file is jodconverter-cli-2.2.2.jar)
java -Doffice.home=/usr/bin/libreoffice -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/commons-io-1.4.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/unoil-3.0.1.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/jurt-3.0.1.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/slf4j-jdk14-1.5.6.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/ridl-3.0.1.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/slf4j-api-1.5.6.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/jodconverter-2.2.2.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/xstream-1.3.1.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar
-cp /var/path/webapps/conference/jodconverter-2.2.2/lib/juh-3.0.1.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/commons-cli-1.2.jar -jar
/var/path/webapps/conference/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar
/var/path/webapps/conference/upload/files/f85eb1ce6dce5a186a39dfc312e3f483/f85eb1ce6dce5a186a39dfc312e3f483.docx
/var/path/webapps/conference/upload/files/f85eb1ce6dce5a186a39dfc312e3f483/f85eb1ce6dce5a186a39dfc312e3f483.pdf
>> Jodconversion command generated by *problem* (failing) openmeetings (note
>> the -jar file is jodconverter-2.2.2,jar)
java -Doffice.home=/usr/bin/libreoffice -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/juh-3.0.1.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/slf4j-api-1.5.6.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/commons-io-1.4.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/unoil-3.0.1.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/xstream-1.3.1.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/ridl-3.0.1.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar
-cp /var/path/webapps/conference/jodconverter-2.2.2/lib/jurt-3.0.1.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/jodconverter-2.2.2.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/slf4j-jdk14-1.5.6.jar -cp
/var/path/webapps/conference/jodconverter-2.2.2/lib/commons-cli-1.2.jar -jar
/var/path/webapps/conference/jodconverter-2.2.2/lib/jodconverter-2.2.2.jar
/var/path/webapps/conference/uploadtemp/files/be25aa57104754b3c8516e83a8674a93.docx
/var/path/webapps/conference/upload/files/be25aa57104754b3c8516e83a8674a93/be25aa57104754b3c8516e83a8674a93.pdf
Thanks again for all your time and work. As a (very) small aside, is it
possible to download a copy of OpenMeetings 3 anywhere?
was:
The method for finding the jodconverter path fails on (at least) EXT4
filesystems due to the way ext4 maps and traverses the tree- openmeetings
cannot convert using jodconverter.
The fix is simple, please consider including this update in a binary release.
The code relates to GeneratePDF.java, line XX:
if (jar.startsWith("jodconverter")) {
To accomodate the ext4 filesystem, this should read:
if (jar.startsWith("jodconverter-cli")) {
On every successful openmeetings server (quite a few now, including RMTPS and
OOo conversion :D thanks for all your time and amazing work!), the jodconverter
command run executes the jodconverter-cli-2.2.2.jar file. On one machine, it
attempts to execute the jodconverter-2.2.2.jar file. This seems to be because
the method .list() in the loop:
for (String jar : jodFolder.list(new FilenameFilter() {
...
}
}))
seems to traverse the directory structure the same as ' find . ' or 'ls -U' in
that folder.
This means that the last file in the array which matches the condition is
jodconverter-2.2.2.jar (as the ext4 filesystem hash map/algorithm organises the
file logically in the same place), not the jodconverter-cli-2.2.2.jar which
seems to be needed.
Running the command with the -jar jodconverter-cli-2.2.2.jar instead of the
-jar jodconverter-cli-2.2.2.jar on the machine works perfectly- the file is
converted and the expected output is seen.
To see the effect, consider the following two scenarios:
EXT3:
root@host1:~/stan# touch right
root@host1:~/stan# touch left
root@host1:~/stan# touch ever
root@host1:~/stan# touch tonight
root@host1:~/stan# find .
.
./right
./left
./ever
./tonight
root@host1:~/stan# find --version
find (GNU findutils) 4.4.2
EXT4
root@host2:~/stan# touch right
root@host2:~/stan# touch left
root@host2:~/stan# touch ever
root@host2:~/stan# touch tonight
root@host2:~/stan# find .
.
./left
./tonight
./ever
./right
root@host2:~/stan# find --version
find (GNU findutils) 4.4.2
root@host2:~/stan# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
root@host1:~/stan# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Thanks again for all your time and work- is it possible to download a copy of
OpenMeetings 3
> GeneratePDF.java - ext4 - fails to locate precise jodconverter path
> --------------------------------------------------------------------
>
> Key: OPENMEETINGS-831
> URL: https://issues.apache.org/jira/browse/OPENMEETINGS-831
> Project: Openmeetings
> Issue Type: Improvement
> Environment: EXT4 Filesystems
> Reporter: JiraUser
> Labels: patch, performance
>
> The method for finding the jodconverter path fails on (at least) EXT4
> filesystems due to the way ext4 maps and traverses the tree- openmeetings
> cannot convert using jodconverter.
> The fix is simple, please consider including this update in a binary release.
> The code relates to GeneratePDF.java, line XX:
> if (jar.startsWith("jodconverter")) {
> To accomodate the ext4 filesystem, this should read:
> if (jar.startsWith("jodconverter-cli")) {
> On every successful openmeetings server (quite a few now, including RMTPS and
> OOo conversion :D thanks for all your time and amazing work!), the
> jodconverter command run executes the jodconverter-cli-2.2.2.jar file. On one
> machine, it attempts to execute the jodconverter-2.2.2.jar file. This seems
> to be because the method .list() in the loop:
> for (String jar : jodFolder.list(new FilenameFilter() {
> ...
> }
> }))
> seems to traverse the directory structure the same as ' find . ' or 'ls -U'
> in that folder.
> This means that the last file in the array which matches the condition is
> jodconverter-2.2.2.jar (as the ext4 filesystem hash map/algorithm organises
> the file logically in the same place), not the jodconverter-cli-2.2.2.jar
> which seems to be needed.
> Running the conversion command manually from the shell with '.. -jar
> jodconverter-cli-2.2.2.jar ..' instead of '.. -jar jodconverter-2.2.2.jar ..'
> on the machine with the problem works perfectly- the file is converted and
> the expected output is seen.
> To see the effect, consider the following two scenarios:
> EXT3:
> root@host1:~/stan# touch right
> root@host1:~/stan# touch left
> root@host1:~/stan# touch ever
> root@host1:~/stan# touch tonight
> root@host1:~/stan# find .
> .
> ./right
> ./left
> ./ever
> ./tonight
> root@host1:~/stan# find --version
> find (GNU findutils) 4.4.2
> EXT4
> root@host2:~/stan# touch right
> root@host2:~/stan# touch left
> root@host2:~/stan# touch ever
> root@host2:~/stan# touch tonight
> root@host2:~/stan# find .
> .
> ./left
> ./tonight
> ./ever
> ./right
> root@host2:~/stan# find --version
> find (GNU findutils) 4.4.2
> root@host2:~/stan# lscpu
> Architecture: x86_64
> CPU op-mode(s): 32-bit, 64-bit
> Byte Order: Little Endian
> root@host1:~/stan# lscpu
> Architecture: x86_64
> CPU op-mode(s): 32-bit, 64-bit
> Byte Order: Little Endian
> >> Jodconversion command generated by *working* openmeetings (note
> the -jar file is jodconverter-cli-2.2.2.jar)
> java -Doffice.home=/usr/bin/libreoffice -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/commons-io-1.4.jar -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/unoil-3.0.1.jar -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/jurt-3.0.1.jar -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/slf4j-jdk14-1.5.6.jar -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/ridl-3.0.1.jar -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/slf4j-api-1.5.6.jar -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/jodconverter-2.2.2.jar
> -cp /var/path/webapps/conference/jodconverter-2.2.2/lib/xstream-1.3.1.jar -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar
> -cp /var/path/webapps/conference/jodconverter-2.2.2/lib/juh-3.0.1.jar -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/commons-cli-1.2.jar -jar
> /var/path/webapps/conference/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar
>
> /var/path/webapps/conference/upload/files/f85eb1ce6dce5a186a39dfc312e3f483/f85eb1ce6dce5a186a39dfc312e3f483.docx
>
> /var/path/webapps/conference/upload/files/f85eb1ce6dce5a186a39dfc312e3f483/f85eb1ce6dce5a186a39dfc312e3f483.pdf
> >> Jodconversion command generated by *problem* (failing) openmeetings (note
> >> the -jar file is jodconverter-2.2.2,jar)
> java -Doffice.home=/usr/bin/libreoffice -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/juh-3.0.1.jar -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/slf4j-api-1.5.6.jar -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/commons-io-1.4.jar -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/unoil-3.0.1.jar -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/xstream-1.3.1.jar -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/ridl-3.0.1.jar -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar
> -cp /var/path/webapps/conference/jodconverter-2.2.2/lib/jurt-3.0.1.jar -cp
> /var/path/webapps/conference/jodconverter-2.2.2/lib/jodconverter-2.2.2.jar
> -cp /var/path/webapps/conference/jodconverter-2.2.2/lib/slf4j-jdk14-1.5.6.jar
> -cp /var/path/webapps/conference/jodconverter-2.2.2/lib/commons-cli-1.2.jar
> -jar
> /var/path/webapps/conference/jodconverter-2.2.2/lib/jodconverter-2.2.2.jar
> /var/path/webapps/conference/uploadtemp/files/be25aa57104754b3c8516e83a8674a93.docx
>
> /var/path/webapps/conference/upload/files/be25aa57104754b3c8516e83a8674a93/be25aa57104754b3c8516e83a8674a93.pdf
> Thanks again for all your time and work. As a (very) small aside, is it
> possible to download a copy of OpenMeetings 3 anywhere?
--
This message was sent by Atlassian JIRA
(v6.1#6144)