开源改变世界!!

键盘映射导入卡住了 #1156

推推 grbl 2年前 (2023-01-27) 183次浏览
关闭
mechanicalgoose 开启了这个issue 2018 年 11 月 29 日 · 16条评论
关闭

键盘映射导入卡住了#1156

mechanicalgoose 开启了这个issue 2018 年 11 月 29 日 · 16条评论

注释

键盘映射导入卡住了 #1156

问题描述

在最新的 11 月 25 日夜间构建中,当尝试为新的键盘映射集导入 *.zip 文件夹时,对话框屏幕会长时间挂在“正在加载…”上。*.zip 文件夹在以前的版本中上传没有问题。我今天之前的前一个版本是 Nightly May 2018,它没有出现这个问题。

我确认我也有最新的 Java。

谢谢。

UGS 平台 2.0 – 每晚构建 2018 年 3 月 23 日

操作系统

视窗 10

键盘映射导入卡住了 #1156
所有者

日志中有什么吗?您也可以尝试清除缓存目录。详情在这里:
https ://winder.github.io/ugs_website/guide/troubleshooting/#property-files

这是 UGS 使用的 Netbeans 平台框架的众多功能之一,所以我不太熟悉它的工作原理。

键盘映射导入卡住了 #1156
作者
机械鹅 评论了 2018 年 11 月 29 日 通过电子邮件
键盘映射导入卡住了 #1156
所有者

电子邮件回复功能会删除附件,您需要将文件附加到 github 上。

键盘映射导入卡住了 #1156
作者
机械鹅 评论了 2018 年 11 月 29 日 通过电子邮件
键盘映射导入卡住了 #1156
阿比塞特 评论了 2018 年 11 月 30 日  

问题实际上出在“选择导入/导出选项”中,似乎选项列表被卡住了,没有加载它应该显示的内容,我没有要测试的 zip 文件,但它对导出功能做同样的事情。
补充:
我忘了加入我的日志文件以防万一它可以提供帮助,所以这里是:
messages.log

键盘映射导入卡住了 #1156
作者
机械鹅 评论了 2018 年 11 月 30 日 通过电子邮件
键盘映射导入卡住了 #1156
作者

附件是我今天早上试图分享的日志文件。

消息.log

键盘映射导入卡住了 #1156
所有者

导出设置时似乎也会出现此问题…我看到此异常(在本地、您的日志和 java8/11 中)。这可能意味着 UGS 设置之一为空/缺失:

java.lang.NullPointerException
	at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
	at sun.misc.FloatingDecimal.parseDouble(Unknown Source)
	at java.lang.Double.parseDouble(Unknown Source)
	at org.netbeans.modules.options.export.OptionsChooserPanel.createOptionsTreeModel(OptionsChooserPanel.java:438)
	at org.netbeans.modules.options.export.OptionsChooserPanel.access$700(OptionsChooserPanel.java:95)

修复它需要比我现在更多的时间进行故障排除。如果有人想尝试一下,我建议如下:

  1. 尝试禁用尽可能多的 UGS 插件,重置 UGS,然后导出。如果可行,您可以缩小问题所在的插件范围。
  2. 在 中设置一个断点OptionsChooserPanel,希望在“捕获”中并查看哪个选项正在抛出。
键盘映射导入卡住了 #1156

无法真正帮助解决这个问题,因为我没有那么多知识,但由于问题是已知的,我们可以等到有人或您有时间解决它。
PS:我应该有一天学习java编程。

键盘映射导入卡住了 #1156
作者

停用所有可能的插件后问题仍然存在。

键盘映射导入卡住了 #1156
贡献者

我可以确认同样的问题@mechanicalgoose正在展出,并已禁用所有可能的插件。

我在 UGS 源代码中找不到字符串“OptionsChooserPanel”——我猜它是 NetBeans 源代码的一部分,但我缺乏使用 mvn+NB 的经验使得这比我希望的要复杂一些。我现在正在浏览修订历史,看看是否可以将其隔离。

键盘映射导入卡住了 #1156
贡献者

更新:提交d50a29c似乎是问题所在。我可以使用a9b1970构建并进入导出屏幕,但不能进入它后面的那个。

差异消息“移动到设置版本的位置”并创建一个函数来设置名为“netbeans.buildnumber”的系统属性。查看两个提交之间的差异 – 希望这导致问题的原因没有多大意义@breiler可能知道。听起来该属性在尝试导出设置时可能不存在。

键盘映射导入卡住了 #1156
所有者

@carneeki不错的发现,从来没有想到这是根本原因。有很多使用 Netbeans 版本而不是 UGS 版本的错误报告,因此我们根据此处的建议使用它来更新关于页面中的“产品版本”字符串:
http ://wiki.netbeans.org/ DevFaq版本号

问题……呃……看起来选项导出器假设这netbeans.buildnumber将是一个简单的日期字符串。

org.netbeans.modules.options.export.OptionsChooserPanel.createOptionsTreeModel(OptionsChooserPanel.java:438)

        String nbBuildNumber = System.getProperty("netbeans.buildnumber"); // NOI18N
        try {
>>>         currentBuildNumber = Double.parseDouble(getOptionsExportModel().parseBuildNumber(nbBuildNumber));
        } catch (NumberFormatException nfe) {
            LOGGER.log(Level.INFO, "Could not parse netbeans.buildnumber: {0}", nbBuildNumber);  //NOI18N
            currentBuildNumber = 201403101706.0;  // default to build date of 8.0 version
        }

然后parseBuildNumber在这里失败:

    String parseBuildNumber(String strLine) {
        Matcher matcher = DATE_SIMPLE_PATTERN.matcher(strLine);
        if (matcher.find()) {
            String year = matcher.group("YEAR");
            String month = matcher.group("MONTH");
            String day = matcher.group("DAY");
            String hours = matcher.group("HOURS");
            String minutes = matcher.group("MINUTES");
            String time = (hours != null && minutes != null) ? hours.concat(minutes) : "2359";  // NOI18N
            return year.concat(month).concat(day).concat(time);
        }
>>>     return null;
    }

我尝试了几件事,但到目前为止还不能让一切正常工作。

键盘映射导入卡住了 #1156
贡献者
卡内基 评论了 2018 年 12 月 3 日  

版本号是否必须遵循YYYYMMDDHHmm格式?

我想知道构建脚本是否可以使用您链接到的文档中源版本的缩短提交哈希填充适当的.properties和文件?pom.xml我认为提交哈希对于不同的功能分支可能比日期更有用,即使它对用户来说似乎有点陌生。

另一种想法:

if(matcher.find()) {
    // build the string
    return theString;
}
throw IllegalArgumentException();

catch(NumberFormatException | IllegalArgumentException e) {
  // no change
}
catch(Exception e) {
  // log some other unhandled exception differently and set the build number stuff as before
}

编辑:我将异常从自定义异常更改为在语义上仍然正确的内置异常:无法匹配的字符串,因为目的是非法的。

键盘映射导入卡住了 #1156
所有者

不幸的是,该代码是 Netbeans 的一部分,因此很难更改。

键盘映射导入卡住了 #1156
合作者

抱歉,伙计们,我完全放弃了这个球。

我有一个修复建议。它并不完美,但我们可以使用类似 ISO (yyyyMMdd) 的日期格式来代替今天使用的版本字符串。关于对话框不会显示版本号,只显示构建日期:

键盘映射导入卡住了 #1156
键盘映射导入卡住了 #1156