Menu

#175 Right click doesn't works with ProjectLibre 1.9.3

1.9.1
open
nobody
Other
Arch_Linux
KDE
Manjaro 21
User_Interface
Critical
2025-03-12
2022-10-12
No

Hi Projectlibre team,

I can't use the client version 1.9.3 on my system, because I can't use right click in the application.
I've tried with AUR version and with .jar version and I've the same problem.
Here is the log of jar version :

oct. 12, 2022 3:46:19 PM com.projectlibre1.contrib.util.Log error
GRAVE: Formula not set: invalid formula text: return "Indent,Outdent,InsertTask,Delete,Copy,Cut,Paste,Expand,Collapse";
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "com.projectlibre1.graphic.configuration.ActionList.getList(Object)" because "this.actionList" is null
        at com.projectlibre1.pm.graphic.spreadsheet.common.CommonSpreadSheetModel.getActionList(Unknown Source)
        at com.projectlibre1.pm.graphic.spreadsheet.SpreadSheet.getActionList(Unknown Source)
        at com.projectlibre1.pm.graphic.frames.GraphicManager.getActionSet(Unknown Source)
        at com.projectlibre1.pm.graphic.frames.GraphicManager.setButtonState(Unknown Source)
        at com.projectlibre1.pm.graphic.frames.DocumentFrame$1.run(Unknown Source)
        at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Here is the JAVA version on my system :

java -version                                                                                                                            ✔ 
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=lcd_hrgb -Dswing.aatext=true
openjdk version "18.0.2" 2022-07-19
OpenJDK Runtime Environment (build 18.0.2+0)
OpenJDK 64-Bit Server VM (build 18.0.2+0, mixed mode)

I hope I could help you to found the problem, don't hesitate to ask me for beta test.

Discussion

  • David ROUMANET

    David ROUMANET - 2022-10-12

    In fact, some area could be right clicked but not cells on first grayed column.
    image = https://i.imgur.com/kNuJ6OM

     

    Last edit: David ROUMANET 2022-10-12
  • Stefan Haslinger

    I can confirm that right click is not working on Linux.

     
  • Jonathan Richer dit Laflèche

    Post awaiting moderation.
    • Tahoeob

      Tahoeob - 2023-10-03

      Hi Jonathan, our dev team has been working 7 days a week and pulling all night sessions... it may take a bit to get back to you. Can you email info@projectlibre.com and we can get you updated

       
      • Rusen Dusen

        Rusen Dusen - 2023-10-05

        Oh dear, this project is so dead! I do really not understand, why you're not give away projectlibre to the open source but keep it in a coma state, like you do!

         
        • Aldo Omar Andres

          I consider this application is one of the greatest I've ever tried. I tried it on macOS and Windows and I don't have any issue, are you sure your mouse is working right?
          If I were you, I'd definitely consider buying a new one.

           
          • Tahoeob

            Tahoeob - 2023-10-16

            Thank you Aldo! We try very hard and it is appreciated. We have a lot to accomplish and it is sometimes frustrating to us and also the community.

             
        • André San Lorenzo

          I agree with Aldo Omar Andres. This app is unbelievable. I am 100% sure your mouse is not working properly. I recommend a Logitech mouse; they're great for their value.

           
  • Kívio de Paula

    Kívio de Paula - 2024-01-03

    The right click issue keep existing on linux. My mouse is working in all other appications except ProjectLibre and the issue only occurs in the sheet cells. Could it be an conflict with the window management? I've tried older versions and the bug remains

     
  • Alexander

    Alexander - 2024-01-13

    hi guys! I had the same problem and I was managed to run projectlibre on OpenJDK 11 on Ubuntu Linux 23.10. For that I did the following thing:

    $ update-alternatives --list java
    /usr/lib/jvm/java-11-openjdk-amd64/bin/java <-- THIS IS WHAT YOU NEED
    /usr/lib/jvm/java-17-openjdk-amd64/bin/java
    /usr/lib/jvm/java-17-oracle/bin/java

    $ update-alternatives --set java /usr/lib/jvm/java-11-openjdk-amd64/bin/java

    After that right clicking and shortcuts started to work again

     
    👍
    1
    • Kívio de Paula

      Kívio de Paula - 2024-01-15

      It worked for me also!! Thanks

       
    • Senpai Runner

      Senpai Runner - 2024-08-08

      Thank you Alexander.

      I confirm that even on Windows, installing openjdk11 the Jar works correctly. Compared to the application I prefer to use the Jar because it has better graphical rendering.

      For those who want I leave below the download link of the openjdk11 installer for windows: https://learn.microsoft.com/en-us/java/openjdk/download#openjdk-11

       
  • Paul Sawyer

    Paul Sawyer - 2025-02-01
     

    Last edit: Paul Sawyer 2025-02-01
  • Paul Sawyer

    Paul Sawyer - 2025-02-01

    YES! Just got right click and the task bar menu (Indent, Outdent, InsertTask, Delete, Copy, Cut, Paste, Expand, Collapse) working on projectlibre_1.9.3-1.deb running JRE17 on my Debian 12 system!

    I am not a real programmer*, so this may not be right, but it works for me and hopefully someone who knows what they are doing can correctly modify the code.

    After a fresh install of the latest Debian release, all my attempts to install projectLibre resulted in the same error the OP reported:

    NullPointerException: Cannot invoke "com.projectlibre1.graphic.configuration.ActionList.getList(Object)" because "this.actionList" is null

    This error is due to actionList not being created because the creation method was deprecated in java 7.

    One solution is to change the creation method in actionListFactory.java:

    OLD:

    try {
    Class groovyClass = loader.parseClass(classText.toString()); 
    ActionList actionList= (ActionList)groovyClass.newInstance(); // this fails  deprecated
    

    NEW:

        try {
            // Create an instance of GroovyClassLoader
            GroovyClassLoader loader = new GroovyClassLoader();
    
            // Parse and compile the class from the provided source code
            Class<?> groovyClass = loader.parseClass(classText.toString());  
    
            // Print details about the class to ensure it's correct
            // System.out.println("Class Name: " + groovyClass.getName());
    
            // Instantiate the class using reflection
            Constructor<?> constructor = groovyClass.getDeclaredConstructor();
    
            // set access to true or it will fail with an java.lang.reflect.InaccessibleObjectException error.
            constructor.setAccessible(true);
    
            ActionList actionList = (ActionList) constructor.newInstance();
    
            // Return the created ActionList object
            return actionList;
    

    IMPORTANT: you must add these two line to the beginning of actionListFactory.java:

    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Constructor; 
    

    IMPORTANT: you must start the application with the --add-opens option:

    If running in Eclipse:
    add "--add-opens java.base/java.lang=ALL-UNNAMED" to the VM arguments tab on the Debug and/or Run Configuration window

    From the command line:
    java --add-opens java.base/java.lang=ALL-UNNAMED -jar your-application.jar


    InaccessibleObjectException error:
    // set access to true or it will fail with an java.lang.reflect.InaccessibleObjectException error.
    constructor.setAccessible(true);

    java.lang.reflect.InaccessibleObjectException: Unable to make protected void java.lang.Object.finalize() throws java.lang.Throwable accessible: module java.base does not "opens java.lang" to unnamed module @7fc2413d at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391)

    This is due to Java's module system (introduced in Java 9) restricting reflective access to certain internal classes, like finalize(), which are considered part of Java's core runtime and are not accessible without explicit permission.


    • I am not a real programmer... I am a retired engineer who can program in FORTRAN in any language. I do not have the experience in OOP and java to know if these fixes cause any other problems or if they follow best practices, like should reflection be used at all and what are the implications of --add-opens and setAccessible(true).

    Also, since I am not a real programmer, I do not know what to do with this fix, other than post it here. I have only downloaded from repositories, I don't know how to submit these changes - do I fork, do a pull request, or submit my changes to someone? It appears to me that projectLibre has gone to a pay to play web based model and is no longer supporting a stand alone version (This is a major bug that has been open for over two years).

    PS ProjectLibre looks like a really nice project manager, at least for my needs. Thanks to everyone who has worked on it.

     
  • Bob

    Bob - 2025-02-02

    Hmm. I downloaded the version just now from the Arch Linux AUR repository and everything seems to work fine.

     
    • David ROUMANET

      David ROUMANET - 2025-02-02

      Bob, I'm using Manjaro and I've just installed the 1.9.3-1 AUR version : still not able to right click on a cell and having a menu.
      Look at my first message in 2022.
      By the way this script (I named it javaRun.sh) was the way I use to run ProjectLibre:

      # Ce script permet d'exécuter une application Java avec une ancienne version de Java
      if [ $# -lt 2 ]; then
        echo "Usage: ./javaRun.sh <java_version> <command>"
        echo "Exemple: ./javaRun.sh java-11-openjdk projectlibre"
        exit 1
      fi
      
      export PATH="/usr/lib/jvm/$1/bin/:$PATH"
      shift
      exec "$@"
      

      Seems not working today (ProjectLibre launch, but no right click on cells).
      At starting :

      ./javaRun.sh java-11-openjdk projectlibre                                                              ✔ 
      java.lang.NullPointerException: Cannot invoke "java.io.File.toURI()" because "<local1>" is null
              at com.projectlibre1.preference.ConfigurationFile.getDirectoryBundle(Unknown Source)
              at com.projectlibre1.strings.Messages.getStringFromBundles(Unknown Source)
      

      And when right clicking on cells :

      Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "com.projectlibre1.graphic.configuration.ActionList.getList(Object)" because "this.actionList" is null
              at com.projectlibre1.pm.graphic.spreadsheet.common.CommonSpreadSheetModel.getActionList(Unknown Source)
              at com.projectlibre1.pm.graphic.spreadsheet.SpreadSheet.getActionList(Unknown Source)
      
       

      Last edit: David ROUMANET 2025-02-02
    • Paul Sawyer

      Paul Sawyer - 2025-02-02

      Which java are you running, Bob? I'm running 17, it looks like David is running 11. This error is not a bug in the code, but due to a change in Java policy. Java 7 may have broken projectLibre and Java 9 and greater should definitely break it.

      ChatGPT said:
      It looks like you're trying to instantiate a class from Groovy code and are encountering an issue with ** the use of newInstance(), which is deprecated.** In Java (and Groovy), you should use groovyClass.getDeclaredConstructor().newInstance() instead. This method is the recommended approach for creating a new instance of a class.

      I don't understand "deprecated". I thought deprecated meant use was discouraged, but still available for use. Apparently, it has gone beyond deprecated to removed.

      paul@pinus:~$ java -version
      openjdk version "17.0.13" 2024-10-15
      OpenJDK Runtime Environment (build 17.0.13+11-Debian-2deb12u1)
      OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2deb12u1, mixed mode, sharing)

       
  • Bob

    Bob - 2025-02-02

    Seems like it may be an old Java?

    [bnewell@fatman bin]$ java -showversion
    openjdk version "1.8.0_442"
    OpenJDK Runtime Environment (build 1.8.0_442-b06)
    OpenJDK 64-Bit Server VM (build 25.442-b06, mixed mode)

    From the package manager I see I have jre8 installed. That would explain everything but I don't know why I would have such an old version when many newer versions are available. However I will not rush to update!

    Apologies for my original post not being helpful.

     
  • CLO

    CLO - 2025-03-12

    Hello,
    as a workaround (if you are a sudoer):

    1)install jre11
    2)sudoedit /usr/bin/projectlibre :

    #at the beginning of the file after #!/ ...
    sudo rm /usr/bin/java
    sudo ln -s /usr/lib/jvm/java-11-openjdk/bin/java /usr/bin/java
    #at the end of the file
    sudo rm /usr/bin/java
    sudo ln -s /usr/lib/jvm/default-runtime/bin/java /usr/bin/java

    3)enjoy

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.