Hello theredreaper,
thank you for taking the time to write these bug reports and the other feedback. I hope, TAIPEJ proved to be useful to you, despite the crashes. I've already encountered the second and the third crash myself (under different circumstances) and I thought I had fixed them for good, but apparently there are still scenarios where they can occur. I'm sorry!
theredreaper wrote: ↑Tue Apr 26, 2022 4:49 am
One thing I've noticed so far, I can't seem to make use of the search and replace function? The "replace with" box just stays greyed out and unavailable to type into, unless I've missed something?
Oops, I think I forgot to mention that in the manual. "Search and replace" is not yet available, if "case sensitive" and "use regular expression" are both off at the same time. If you enable one (or both) of them, it should work. Sorry.
Edit: Actually, the above statement applies to "search this file", which incorrectly just said "functionality not implemented". The search form can now be used. The reason "replace with" is greyed out in the "search in all files" form is, that this feature has not yet been implemented. Sorry for the confusion.
theredreaper wrote: ↑Tue Apr 26, 2022 4:49 am
Edit: Just had a crash.
- Spoiler: show
- BUG REPORT
version 1.0.0
Using your custom JRE
I was looking at an existing personality, just going through it and fixing all the errors found by TAIPEJ. One line it brought my attention to had a "useless @NullRespsonse" error. The line was:
@NullResponse #EdgeMultipleRandom1_3Hold
I chose to simply delete the @NullResponse from the line, as that fix makes the most sense here. Upon backspacing the last character, the program crashed with an error message relating to "empty argument" and citing something along the lines of Style Span length cannot be negative. I'm sorry for not copy/pasting the actual error message. I tried, but as soon as I clicked on the background terminal window containing the full stack trace, it crashed too. :/
Well, that's weird.
Did you move the mouse while pressing backspace?
Edit: Never mind. I confused the first and the third bug. This one has nothing to do with the mouse.
The actual bug is still there, but you will be glad to hear, that it no longer crashes, if this bug occurs. Now the script that triggered the bug will be displayed without syntax highlighting to prevent the crash.
theredreaper wrote: ↑Tue Apr 26, 2022 4:49 am
Another crash:
- Spoiler: show
- BUG REPORT
version 1.0.0
Using your custom JRE
Right-clicking on some highlighted text and selecting "Replace all in all scripts with: <i>somestring</i>" results in a crash and list index out of range error. This one has proven to be repeatable so far.
Stack trace:
empty argument: ARGUMENT: []
java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 0
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266)
at java.base/java.util.Objects.checkIndex(Objects.java:359)
at java.base/java.util.ArrayList.get(ArrayList.java:427)
at com.cs.general.base.model.Array.last(Array.java:41)
at net.taipej.problems.quickFix.QuickFix.replaceAll(QuickFix.java:104)
at net.taipej.problems.quickFix.DeprecatedAll.execute(DeprecatedAll.java:23)
at net.taipej.view.CodeArea.lambda$1(CodeArea.java:71)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.controls/javafx.scene.control.MenuItem.fire(MenuItem.java:465)
at javafx.controls/com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.doSelect(ContextMenuContent.java:1380)
at javafx.controls/com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.lambda$createChildren$12(ContextMenuContent.java:1333)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3851)
at javafx.graphics/javafx.scene.Scene$MouseHandler.access$1200(Scene.java:3579)
at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1849)
at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2588)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:397)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:434)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:390)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:433)
at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:831)
Do you remember which command / filter you were trying to replace?
Edit: Never mind. It turned out to be a general problem (i.e. not related to a particular replacement). I fixed it.
On a side note:
theredreaper wrote: ↑Tue Apr 26, 2022 4:49 am
Right-clicking on some highlighted text and selecting...
What do you mean by "highlighted"? That TAIPEJ identified a problem or that you marked it? In case of the latter: note that it is not necessary to mark text in order to apply quick fixes.
theredreaper wrote: ↑Tue Apr 26, 2022 4:49 am
Another crash:
- Spoiler: show
-
BUG REPORT
version 1.0.0
Using your custom JRE
Not sure what happened with this one. Double clicked an error message from the list in the bottom pane referring to an "unknown user keyword". As soon as I clicked on the text editor pane, the program crashed.
Stack Trace:
java.lang.IndexOutOfBoundsException: 33 is no valid offset in [FUNCTIONAL_BRACKET: [, ARGUMENT: [SYSTEM_KEYWORD: #DateDifference[FUNCTIONAL_BRACKET: (, ARGUMENT: [USER_KEYWORD: #LastOrgasm[]], FUNCTIONAL_COMMA, ARGUMENT: [DommeText: days], FUNCTIONAL_BRACKET: )]], FUNCTIONAL_BRACKET: ]]
at net.taipej.controller.FilesUtility.getTokenForChar(FilesUtility.java:302)
at net.taipej.controller.FilesUtility.getTokenForChar(FilesUtility.java:298)
at net.taipej.controller.FilesUtility.getTokenForPosition(FilesUtility.java:308)
at net.taipej.view.CodeTabPane.lambda$2(CodeTabPane.java:346)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at org.fxmisc.richtext.GenericStyledArea.lambda$new$16(GenericStyledArea.java:774)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.MappedStream.lambda$observeInputs$0(MappedStream.java:25)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.EventStream$1.lambda$observeInputs$0(EventStream.java:423)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at org.reactfx.FlatMapOptStream.lambda$observeInputs$0(FlatMapStream.java:49)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at org.reactfx.FlatMapOptStream.lambda$observeInputs$0(FlatMapStream.java:49)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.DistinctStream.lambda$observeInputs$0(DistinctStream.java:23)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.EventStream$1.lambda$observeInputs$0(EventStream.java:423)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.MappedStream.lambda$observeInputs$0(MappedStream.java:25)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.FilterStream.lambda$observeInputs$0(FilterStream.java:20)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.SuccessionReducingStream.handleTimeout(SuccessionReducingStream.java:73)
at org.reactfx.util.FxTimer.lambda$restart$0(FxTimer.java:89)
at javafx.graphics/com.sun.scenario.animation.shared.TimelineClipCore.visitKeyFrame(TimelineClipCore.java:239)
at javafx.graphics/com.sun.scenario.animation.shared.TimelineClipCore.playTo(TimelineClipCore.java:180)
at javafx.graphics/javafx.animation.Timeline.doPlayTo(Timeline.java:177)
at javafx.graphics/javafx.animation.AnimationAccessorImpl.playTo(AnimationAccessorImpl.java:39)
at javafx.graphics/com.sun.scenario.animation.shared.SingleLoopClipEnvelope.timePulse(SingleLoopClipEnvelope.java:99)
at javafx.graphics/javafx.animation.Animation.doTimePulse(Animation.java:1101)
at javafx.graphics/javafx.animation.Animation$1.lambda$timePulse$0(Animation.java:186)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/javafx.animation.Animation$1.timePulse(Animation.java:185)
at javafx.graphics/com.sun.scenario.animation.AbstractMasterTimer.timePulseImpl(AbstractMasterTimer.java:344)
at javafx.graphics/com.sun.scenario.animation.AbstractMasterTimer$MainLoop.run(AbstractMasterTimer.java:267)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:515)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:499)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:492)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:320)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:831)
Tried to call Alert.showAndWait() during layout processing. Falling back to Swing dialogs...
Hmm... the text in the error message looks incomplete (that's my fault, not yours).
Could you post the code where the error occurred? (just that one line is enough)
Edit: I don't need the code. I was able to reproduce the bug with the info I had. The bug is now fixed. And while fixing this one, I found another one (not a crash, just a small bug) that I fixed as well.
theredreaper wrote: ↑Tue Apr 26, 2022 4:49 am
Upon re-opening the program I noted that I had lost all of the changes made in my previous session. Maybe this is just a result of me being used to VSCode and its auto-save feature that saves every file you touch any time you make a change, but I found this surprising, as I had already touched and updated probably 30+ files before this crash. If it were me, (and it's obviously not, and I'm sure you have your own priorities with this project) I would consider the implementation of an auto-save feature high priority.
I'm very sorry that you lost all your changes. Yes, there is no auto-save feature at the moment. Mostly, because I personally
hate this kind of auto-save. It's fine, if it's done the OpenOffice-way (not sure how VS Code does it, I've only used that for a week a couple years ago), but I can't stand auto-save if it's done the IntelliJ-way.
Unfortunately, the OpenOffice-way requires much more coding than simply triggering a save every now and then.
I might add that in a future release, but if I do, it will either be the OpenOffice way or it will be turned off by default.
theredreaper wrote: ↑Tue Apr 26, 2022 4:49 am
I will continue adding to this post if/when I come across any other issues.
Thanks.
theredreaper wrote: ↑Tue Apr 26, 2022 4:49 am
Overall, I'm very impressed. The UI is intuitive and super clean, and I'm very excited to see this project develop.
Thank you very much!
theredreaper wrote: ↑Tue Apr 26, 2022 4:49 am
If you're looking for any assistance with bugfixes/feature implementation, send me a PM, I can probably spare some time to contribute.
Thanks for the offer. Does that mean you already have Java experience?
I should be able to spare some time for fixing those bugs this weekend. Hopefully I will be able to actually fix all 3 of them (provided I hear back from you about number 3).
Have a nice day.