bjgf issueshttps://gitlab.bluej.org/bluej/bjgf/-/issues2020-02-22T18:57:11Zhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1277[BLUEJ-1303] Correct spanish translation of label2020-02-22T18:57:11ZNeil Brown[BLUEJ-1303] Correct spanish translation of labelAt least in Linux version, file */usr/share/bluej/spanish/labels*, item *debugger.inspector.result.returned*, where it says {color:#de350b}*returnado*{color} it should say {color:#00875a}*retornado*{color}
Regards
---
**Issue metada...At least in Linux version, file */usr/share/bluej/spanish/labels*, item *debugger.inspector.result.returned*, where it says {color:#de350b}*returnado*{color} it should say {color:#00875a}*retornado*{color}
Regards
---
**Issue metadata**
- Issue type: Bug
- Priority: Lowhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1276[BLUEJ-1302] Fix screen-reader support2020-02-19T16:52:18ZNeil Brown[BLUEJ-1302] Fix screen-reader supportI had a quick go with 4.2.2 and NVDA. Some aspects are not working, but I don't think it will take too much work to at least get some basics working. Bits that are notably broken are:
- Class diagram (should read out name of class)
...I had a quick go with 4.2.2 and NVDA. Some aspects are not working, but I don't think it will take too much work to at least get some basics working. Bits that are notably broken are:
- Class diagram (should read out name of class)
- Object bench (should read out name of object)
- Java editor (totally silent during keyboard navigation; I suspect this will also be true of the rewritten editor. Weirdly, does read lines when you use mouse to move around. There's also no way to easily see the compiler errors. See comment to undergraduates about view with list of errors)
- Codepad (there's no way to read the output of previous commands using keyboard navigation)
- Terminal (ditto)
- Debugger (mostly works but doesn't read out variables when you focus into those lists)
- Test result window (test name read out, but no way to determine if the test passed or failed)
The class diagram and the editor are most pressing, but we should fix it all properly.
---
**Issue metadata**
- Issue type: Bug
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1275[BLUEJ-1301] Birdseye view can fail with exception2020-02-17T12:42:32ZNeil Brown[BLUEJ-1301] Birdseye view can fail with exceptionsee debug log in email
---
**Issue metadata**
- Issue type: Task
- Priority: Mediumsee debug log in email
---
**Issue metadata**
- Issue type: Task
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1274[BLUEJ-1300] javadoc crash2020-02-13T15:01:47ZNeil Brown[BLUEJ-1300] javadoc crashIDE hangs.
bluej-debuglog.txt follows
----
BlueJ run started: Wed Feb 12 12:39:31 GMT 2020
BlueJ version 4.2.1
Java version 11.0.2
JavaFX version 11.0.2+1
Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation)
...IDE hangs.
bluej-debuglog.txt follows
----
BlueJ run started: Wed Feb 12 12:39:31 GMT 2020
BlueJ version 4.2.1
Java version 11.0.2
JavaFX version 11.0.2+1
Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation)
Running on: Windows 10 10.0 (amd64)
Java Home: C:\Program Files\BlueJ\jdk
----
Opening project: C:\Users\jm39389\OneDrive\BlueJay\projects\chapter04\music-organizer-v1
1581511176730: Listening for JDWP connection on address: javadebug
Connected to debug VM via dt_shmem transport...
Communication with debug VM fully established.
compiler message file broken: key=compiler.misc.msg.bug arguments=11.0.2, \{1}, \{2}, \{3}, \{4}, \{5}, \{6}, \{7}
java.lang.UnsupportedOperationException
at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.ensureFile(ZipFileSystemProvider.java:82)
at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:130)
at jdk.compiler/com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.<init>(JavacFileManager.java:514)
at jdk.compiler/com.sun.tools.javac.file.JavacFileManager.getContainer(JavacFileManager.java:316)
at jdk.compiler/com.sun.tools.javac.file.JavacFileManager.list(JavacFileManager.java:712)
at jdk.compiler/com.sun.tools.javac.code.ClassFinder.list(ClassFinder.java:734)
at jdk.compiler/com.sun.tools.javac.code.ClassFinder.scanUserPaths(ClassFinder.java:678)
at jdk.compiler/com.sun.tools.javac.code.ClassFinder.fillIn(ClassFinder.java:551)
at jdk.compiler/com.sun.tools.javac.code.ClassFinder.complete(ClassFinder.java:299)
at jdk.compiler/com.sun.tools.javac.code.Symtab.lambda$addRootPackageFor$8(Symtab.java:780)
at jdk.compiler/com.sun.tools.javac.code.Symbol.complete(Symbol.java:642)
at jdk.compiler/com.sun.tools.javac.comp.Enter.visitTopLevel(Enter.java:355)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:529)
at jdk.compiler/com.sun.tools.javac.comp.Enter.classEnter(Enter.java:286)
at jdk.compiler/com.sun.tools.javac.comp.Enter.classEnter(Enter.java:301)
at jdk.compiler/com.sun.tools.javac.comp.Enter.complete(Enter.java:576)
at jdk.compiler/com.sun.tools.javac.comp.Enter.main(Enter.java:560)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:1066)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:937)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:147)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
at bluej.compiler.CompilerAPICompiler.compile(CompilerAPICompiler.java:230)
at bluej.compiler.Job.compile(Job.java:107)
at bluej.compiler.CompilerThread.run(CompilerThread.java:72)
java.lang.NullPointerException
at jdk.compiler/com.sun.tools.javac.comp.TypeEnter.ensureImportsChecked(TypeEnter.java:166)
at jdk.compiler/com.sun.tools.javac.comp.Enter.complete(Enter.java:600)
at jdk.compiler/com.sun.tools.javac.comp.Enter.main(Enter.java:560)
at jdk.javadoc/jdk.javadoc.internal.tool.JavadocEnter.main(JavadocEnter.java:79)
at jdk.javadoc/jdk.javadoc.internal.tool.JavadocTool.getEnvironment(JavadocTool.java:206)
at jdk.javadoc/jdk.javadoc.internal.tool.Start.parseAndExecute(Start.java:570)
at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:431)
at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:344)
at jdk.javadoc/jdk.javadoc.internal.tool.Main.execute(Main.java:75)
at jdk.javadoc/jdk.javadoc.internal.api.JavadocTool.run(JavadocTool.java:156)
at bluej.pkgmgr.DocuGenerator$DocuRunStarter.run(DocuGenerator.java:190)
java.lang.NullPointerException
at jdk.compiler/com.sun.tools.javac.comp.TypeEnter.ensureImportsChecked(TypeEnter.java:166)
at jdk.compiler/com.sun.tools.javac.comp.Enter.complete(Enter.java:600)
at jdk.compiler/com.sun.tools.javac.comp.Enter.main(Enter.java:560)
at jdk.javadoc/jdk.javadoc.internal.tool.JavadocEnter.main(JavadocEnter.java:79)
at jdk.javadoc/jdk.javadoc.internal.tool.JavadocTool.getEnvironment(JavadocTool.java:206)
at jdk.javadoc/jdk.javadoc.internal.tool.Start.parseAndExecute(Start.java:570)
at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:431)
at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:344)
at jdk.javadoc/jdk.javadoc.internal.tool.Main.execute(Main.java:75)
at jdk.javadoc/jdk.javadoc.internal.api.JavadocTool.run(JavadocTool.java:156)
at bluej.pkgmgr.DocuGenerator$DocuRunStarter.run(DocuGenerator.java:190)
---
**Issue metadata**
- Issue type: Task
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1267[BLUEJ-1293] Fully modularise BlueJ2020-01-20T15:51:19ZNeil Brown[BLUEJ-1293] Fully modularise BlueJWith the move to Java 11+, we can potentially switch BlueJ over to use the new module system. Based on a brief exploration of this, it should be possible, although we have decided against for now. The main hitches were:
- We need s...With the move to Java 11+, we can potentially switch BlueJ over to use the new module system. Based on a brief exploration of this, it should be possible, although we have decided against for now. The main hitches were:
- We need several add-opens flags to help with accessing some module internals. At the time the list was: `--add-opens javafx.graphics/com.sun.glass.ui=bluej.boot --add-opens javafx.graphics/com.sun.javafx.tk=nsmenufx --add-opens java.xml/com.sun.org.apache.xerces.internal.parsers=xom`
- The Boot module seems to cause problems. Its class-loader mechanism was switched to module-finder, but it seems to cause problems when Boot's required modules (e.g. JavaFX) overlap with the ones it dynamically loads. The best thing to do may be to scrap Boot, and move the module path to the launchers for the different operating systems.
- We may need to rearrange how we make JARs, as some of the JARs have packages split across them. I think nowadays we may only need bluejext2.jar, with everything else in bluej.jar? We also need to be mindful of Greenfoot, though.
---
**Issue metadata**
- Issue type: Bug
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1266[BLUEJ-1292] Memory leak of old projects2020-02-17T12:36:00ZNeil Brown[BLUEJ-1292] Memory leak of old projectsWhen you close a project in BlueJ, it is not currently being garbage-collected as it should be. This could be for multiple reasons, but one is definitely that open editors listen to the central editor font size property, but never remov...When you close a project in BlueJ, it is not currently being garbage-collected as it should be. This could be for multiple reasons, but one is definitely that open editors listen to the central editor font size property, but never remove the listener. This means all editors are retained in memory, which in turn retains all projects.
We should use a profiler to find all such reasons that old projects are retained after the user has closed them, and fix them (e.g. remove listeners, or use weak references).
---
**Issue metadata**
- Issue type: Bug
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1265[BLUEJ-1291] Problematic Static Import2020-01-20T14:18:11ZNeil Brown[BLUEJ-1291] Problematic Static ImportHad this one in a formal assessment, student lost 30 min before we could recover his code. This is the minimal set of steps to reproduce the error:
new project, new class Test, new class Test2, let Test somehow use Test2, compile, all...Had this one in a formal assessment, student lost 30 min before we could recover his code. This is the minimal set of steps to reproduce the error:
new project, new class Test, new class Test2, let Test somehow use Test2, compile, all well.
open Test in editor, type "import static Test2;" as first line - does not compile, no reaction.
close editor, click compile in main window - errors are shown in editor for Test.
close editor, close project, try to open again - the UML diagram is completely broken, project cannot be opened.
It is not severe, as the Java code does not make sense and so the error will likely not occur again in student code too soon. But the reaction of BlueJ is scary.
---
**Issue metadata**
- Issue type: Bug
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1263[BLUEJ-1289] Record BlueJ interface language in Blackbox2020-02-17T12:35:42ZNeil Brown[BLUEJ-1289] Record BlueJ interface language in BlackboxWe know what language the user's interface is in in BlueJ, but we don't record this in BlueJ. We should.
---
**Issue metadata**
- Issue type: Bug
- Priority: MediumWe know what language the user's interface is in in BlueJ, but we don't record this in BlueJ. We should.
---
**Issue metadata**
- Issue type: Bug
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1261[BLUEJ-1287] No warning on compiling unsafe collection code2021-08-25T14:37:15ZNeil Brown[BLUEJ-1287] No warning on compiling unsafe collection codeThis code should generate a warning message:
import java.util.ArrayList;
public class TestRaw
{ private ArrayList<String> g = new ArrayList(); }
I believe this is set using the the bluej.defs option
bluej.compiler.unchecke...This code should generate a warning message:
import java.util.ArrayList;
public class TestRaw
{ private ArrayList<String> g = new ArrayList(); }
I believe this is set using the the bluej.defs option
bluej.compiler.unchecked=true
However this no longer seems to work. Also affects Version 5.
---
**Issue metadata**
- Issue type: Bug
- Priority: Highhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1260[BLUEJ-1286] Investigate fixing JavaFX bugs2020-02-17T12:35:20ZNeil Brown[BLUEJ-1286] Investigate fixing JavaFX bugsThere are a few JavaFX bugs that affect us and prevent us removing the last uses of Swing and similar from our code:
- File open bug: https://bugs.openjdk.java.net/browse/JDK-8187992
- Java Desktop: https://bugs.openjdk.java.net/br...There are a few JavaFX bugs that affect us and prevent us removing the last uses of Swing and similar from our code:
- File open bug: https://bugs.openjdk.java.net/browse/JDK-8187992
- Java Desktop: https://bugs.openjdk.java.net/browse/JDK-8091107
It looks like these are unlikely to be fixed by themselves, so we should investigate how feasible it is to fix these bugs.
---
**Issue metadata**
- Issue type: Bug
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1259[BLUEJ-1285] Restore Raspberry Pi GPIO functionality2020-02-17T12:35:09ZNeil Brown[BLUEJ-1285] Restore Raspberry Pi GPIO functionalityAt a point where BlueJ wasn't working on Raspberry Pi, we removed the functionality for using the GPIO ports: we removed the wiringpi library, the preferences pane, and the ability to launch as sudo.
Now that Raspberry Pi is working a...At a point where BlueJ wasn't working on Raspberry Pi, we removed the functionality for using the GPIO ports: we removed the wiringpi library, the preferences pane, and the ability to launch as sudo.
Now that Raspberry Pi is working again (via OpenJFX) we should restore this functionality.
---
**Issue metadata**
- Issue type: Bug
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1257[BLUEJ-1283] Can't compile while executing dialog should have Terminate button2019-10-04T14:09:33ZNeil Brown[BLUEJ-1283] Can't compile while executing dialog should have Terminate buttonIf you set some code executing, then try to compile while the code is still executing, you get a dialog which tells you that you can't compile while executing. Which is fine. The obvious two actions for the user are (a) wait, and (b) c...If you set some code executing, then try to compile while the code is still executing, you get a dialog which tells you that you can't compile while executing. Which is fine. The obvious two actions for the user are (a) wait, and (b) cancel the execution. Waiting is simple, but it may not be obvious to the user how to stop execution, if they haven't yet used the debugger. We should add a "Terminate execution" button right there in the dialog, which does the same as Terminate in the debugger.
---
**Issue metadata**
- Issue type: Bug
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1256[BLUEJ-1282] Add option to the editor margin menu to allow breakpoint toggling2019-10-04T14:04:05ZNeil Brown[BLUEJ-1282] Add option to the editor margin menu to allow breakpoint togglingBreakpoints in BlueJ can be toggled on and off by left-clicking the margin. If you right-click the margin, a context menu is shown which has the option to toggle line numbers. It would make sense if this menu also allows toggling a bre...Breakpoints in BlueJ can be toggled on and off by left-clicking the margin. If you right-click the margin, a context menu is shown which has the option to toggle line numbers. It would make sense if this menu also allows toggling a breakpoint on that line.
---
**Issue metadata**
- Issue type: Bug
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1255[BLUEJ-1281] Show source link in Javadoc should also position caret2019-10-04T14:02:13ZNeil Brown[BLUEJ-1281] Show source link in Javadoc should also position caretWhen you view the Documentation view in the editor, there is a "show source" link that we add to enable jumping back to that location in the source code. It scrolls to the given method but then it can take a moment to find that method o...When you view the Documentation view in the editor, there is a "show source" link that we add to enable jumping back to that location in the source code. It scrolls to the given method but then it can take a moment to find that method on screen. It would be better if we also positioned the caret in the source code at the method name (or selected the method name) at the same time.
---
**Issue metadata**
- Issue type: Bug
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1253[BLUEJ-1279] Hanging dialogues for actions on shared projected (Git) that has...2019-09-30T12:28:48ZNeil Brown[BLUEJ-1279] Hanging dialogues for actions on shared projected (Git) that has no content.An error occur on actions allowed for team work on a shared project (Git) that has been shared before any content was in the project.
To reproduce: create a project, then share it, then create a class and try to commit. The dialogue w...An error occur on actions allowed for team work on a shared project (Git) that has been shared before any content was in the project.
To reproduce: create a project, then share it, then create a class and try to commit. The dialogue would stay hanging, but an error is raised in the Git libraries we use as the base cannot be resolved to an ID.
---
**Issue metadata**
- Issue type: Bug
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1250[BLUEJ-1276] "Run Tests" button isn't disabled when "Test All" in menu is sel...2019-09-18T09:49:43ZNeil Brown[BLUEJ-1276] "Run Tests" button isn't disabled when "Test All" in menu is selected"Run Tests" button isn't disabled when "Test All" in menu is selected, this shows when a breakpoint is set and the debugger is at the breakpoint. I suppose the button actually never disable but when no breakpoint is set we don't have tim..."Run Tests" button isn't disabled when "Test All" in menu is selected, this shows when a breakpoint is set and the debugger is at the breakpoint. I suppose the button actually never disable but when no breakpoint is set we don't have time to notice that when tests are fast to run.
---
**Issue metadata**
- Issue type: Bug
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1243[BLUEJ-1269] error-message on startup2019-05-17T00:26:16ZNeil Brown[BLUEJ-1269] error-message on startupAfter launching BlueJ, while the splash-page is still showing, a window comes up with an error ( screenshot at: https://imgur.com/5aT7XwJ )
- BlueJ still finishes starting up and brings me to my most recent project (w/ the error-win...After launching BlueJ, while the splash-page is still showing, a window comes up with an error ( screenshot at: https://imgur.com/5aT7XwJ )
- BlueJ still finishes starting up and brings me to my most recent project (w/ the error-window still waiting for me to dismiss it).
- After dismissing the error, everything still continues okay. (Hence the "low priority".)
- This is on MacOS 10.14.3, BlueJ 4.2.1. ( bluej-debuglog.txt looks normal; it's below)
- This happened with a fresh install of BlueJ.
- It does *not* happen for a different user on my machine (!).
- I deleted my old bluej.properties and actually the entire ~/Library/Preferences/org.bluej/ , but it still happened.
- I'm *not* launching from a command-line where shell-environments might have some effect.
- Afaict, there aren't any symlink dirs that I'm trying to use or pass through.
- My bluej.properties *is* being correctly read and (on close) written back w/ updates.
Here's bluej-debuglog.txt:
====
BlueJ run started: Thu May 16 19:16:19 EDT 2019
BlueJ version 4.2.1
Java version 11.0.2
JavaFX version 11.0.2+1
Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation)
Running on: Mac OS X 10.14.3 (x86_64)
Java Home: /Applications/BlueJ 4.2.1/BlueJ.app/Contents/JDK/Home
----
Detected language "english" based on iso639-2 code "eng"
Opening project: /Users/ibarland/Foof
1558048583131: Listening for JDWP connection on address: 127.0.0.1:50556
Connected to debug VM via dt_socket transport...
Communication with debug VM fully established.
It's a bit puzzling to me -- I can't narrow down why it works for another user on my machine, but not for me!
Cheers,
--Ian B.
---
**Issue metadata**
- Issue type: Bug
- Priority: Lowhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1241[BLUEJ-1267] Object Has Private Access from Class2019-05-12T12:47:17ZNeil Brown[BLUEJ-1267] Object Has Private Access from ClassWhilst working with ArrayList i accidentally set its object to private, then i got this error. Afterwards i hanged it back to public, and yet until i quit and restarted the program i kept on getting the same bug.
---
**Issue metadata*...Whilst working with ArrayList i accidentally set its object to private, then i got this error. Afterwards i hanged it back to public, and yet until i quit and restarted the program i kept on getting the same bug.
---
**Issue metadata**
- Issue type: Bug
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1239[BLUEJ-1265] 'Show source' does not work in Unit test results dialogue if the...2019-04-30T11:15:12ZNeil Brown[BLUEJ-1265] 'Show source' does not work in Unit test results dialogue if the test class has an umlaut in the name'Show source' does not work in Unit test results dialogue if the test class has an umlaut in the name:
* Create class 'Kölling'
* Create test class (KöllingTest)
* Create test that fails
* Run tests
* Click 'Show source'
Sou...'Show source' does not work in Unit test results dialogue if the test class has an umlaut in the name:
* Create class 'Kölling'
* Create test class (KöllingTest)
* Create test that fails
* Run tests
* Click 'Show source'
Source does not open. Debug log shows:
Error or exception for source not in project: /Users/mik/Desktop/workbox/dumm/KöllingTest.java
---
**Issue metadata**
- Issue type: Task
- Priority: Mediumhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1235[BLUEJ-1261] Show source for unit doesn't work when there is a non-ASCII char...2020-02-17T13:04:06ZNeil Brown[BLUEJ-1261] Show source for unit doesn't work when there is a non-ASCII character in class nameMake a test class with an umlaut in the name, and write a failing test. Click Show Source; an exception is thrown in the debug log and the source is not opened.
---
**Issue metadata**
- Issue type: Bug
- Priority: MediumMake a test class with an umlaut in the name, and write a failing test. Click Show Source; an exception is thrown in the debug log and the source is not opened.
---
**Issue metadata**
- Issue type: Bug
- Priority: Medium