草庐IT

merge-before-dev

全部标签

Java I/O : Ensure a file is not locked by another process before any r/w operation

我在基于Java7WatchServiceAPI跟踪目录中文件内容的应用程序中遇到了一个反复出现的问题。当底层文件系统触发文件修改事件时,我想立即计算其SHA-256。但经常会发生另一个进程打开文件(即Word),从而保留独占锁并阻止我的应用程序进行任何读/写操作。如果针对打开的文件创建了任何流/channel,则会抛出FileNotFoundException或nioAPI的FileSystemException以及如下消息:Theprocesscannotaccessthefilebecauseitisbeingusedbyanotherprocess当文件在fs上实际上不存在时,

java - 调用 EntityManager.merge() 时未设置 ID

我在2个对象父子对象之间有一个简单的OneToMany关联,如下所示。父实体@EntitypublicclassParent{@Id@GeneratedValue(strategy=GenerationType.AUTO)privateLongid;privateStringname;@VersionprivateLongversion;@OneToMany(cascade=CascadeType.ALL,orphanRemoval=true,fetch=FetchType.EAGER)Listchildren=newArrayList();....}子实体@Entitypublicc

java - FileInputStream 和 FileOutputStream 到同一个文件 : Is a read() guaranteed to see all write()s that "happened before"?

我正在使用一个文件作为大数据的缓存。一个线程顺序写入它,另一个线程顺序读取它。我能否确定在一个线程中(通过write())写入的所有数据都可以从另一个线程中被read(),假设适当的“在Java内存模型方面发生“之前”的关系?这种行为是否记录在案?在我的JDK中,FileOutputStream没有覆盖flush(),OutputStream.flush()是空的。这就是为什么我想知道...有问题的流完全由我完全控制的类拥有。每个流都保证只能由一个线程访问。我的测试表明它按预期工作,但我仍然想知道这是否得到保证和记录。另见thisrelateddiscussion.

java - 如何启动 GWT Super Dev Mode

这个问题在这里已经有了答案:SuperDevmodeinGWT(4个答案)关闭9年前。历尽千辛万苦,终于用我的Eclipsekepler安装了GWT2.5现在我可以使用Dev模式启动,即ClassicDevMode。通过在Eclipse参数选项卡中的调试配置是。-remoteUI"${gwt_remote_ui_server_port}:${unique_id}"-startupUrlindex.html-logLevelINFO-codeServerPort9997-port8888-warE:\GWT2.5_Test\V4Workflow_V17\warcom.suresh.V4W

java - 是否可以对 JUnit 中的每个测试用例使用不同的@Before @After?

我是Java和JUnit的新手,遇到过不同的Fixtures。我在网上搜索了很多,但找不到答案。是否可以在JUnit中对不同的测试用例使用不同的@Before@After?例如:我有以下TC那么是否可以使用不同的@Before进行测试,使用不同的@Before进行test1importstaticorg.junit.Assert.assertEquals;importorg.junit.After;importorg.junit.AfterClass;importorg.junit.Before;importorg.junit.BeforeClass;importorg.junit.I

Java Swing : How can I implement a login screen before showing a JFrame?

我正在尝试制作一个小游戏,首先会向玩家显示一个简单的登录屏幕,他们可以在其中输入自己的名字(稍后我需要它来存储他们的游戏状态信息),让他们选择难度级别等,并且只会在玩家点击播放按钮后显示主游戏屏幕。我还想让玩家导航到一个(希望对他们来说相当大)奖杯Collection,同样在他们看来是一个新屏幕。到目前为止,我有一个带有网格布局的主游戏窗口和一个可以运行的游戏(对我来说太棒了!)。现在我想添加上面的功能。我该怎么做呢?我不认为我想走多个JFrame路线,因为我一次只希望在任务栏中显示一个图标(或者将它们的可见性设置为对图标也产生错误影响?)我是否改为制作和销毁布局或面板或像那样的东西?

java - Hibernate Session#merge 在收到带有 ID 的实体时是否应该插入?

这似乎经常出现,但我用谷歌搜索无济于事。假设您有一个Hibernate实体User。您的数据库中有一个ID为1的User。您有两个线程在运行,A和B。它们执行以下操作:A获取用户1并关闭其SessionB获取用户1并删除它A更改用户1的字段A得到一个新的Session并合并的用户1我所有的测试都表明merge试图在数据库中找到用户1(显然不能),因此它插入了一个ID为2的新用户。另一方面,我的期望是Hibernate会发现被合并的用户不是新用户(因为它有一个ID)。它会尝试在数据库中找到用户,这会失败,因此它不会尝试插入或更新。理想情况下,它会抛出某种并发异常。请注意,我正在通过@Ve

java - .awaitTermination() 是否在执行程序中完成工作之前建立 happens-before?

我多年来一直存在的问题:在此伪代码中,ExecutorServicesvc=Executors.newFixedThreadPool(3);svc.submit(newRunnable(){/*codeA*/});svc.shutdown();if(svc.awaitTermination(...)){//codeB.awaitTermination()没有被记录为在代码A和B之间建立happens-before。它不是的原因是什么?ExecutorService和concurrentpackagejavadocs定义了happens-before在任务和完成的工作之间它们被提交,但在

java - 运行忽略@Before/@After 的 Junit @Test

是否可以在一个类中运行一个JUnit@Test方法,该类的方法用@Before注释,但忽略@Before方法仅用于此测试?编辑:我感兴趣的是JUnit是否支持此功能,而不是解决方法。我知道一些解决方法,例如将测试移动到另一个类中或删除注释并在每个测试方法中手动调用setUp()。假设在一个类中有30个测试,其中29个@Before确实简化了测试初始化​​,但其中一个(或多个)没用/它使事情复杂化。publicclassMyTestClass{@BeforepublicvoidsetUp(){//setuplogic}@Testpublicvoidtest1(){//[...]}@Tes

java - 未调用 TestRule 中的 @Before 方法

我实现了一个JUnit4TestRule(扩展了一个ExternalResource),并将其作为@ClassRule注入(inject)在我的测试类中:我想在此类的每个测试中一次性初始化一个资源,并最终将其拆除。我的问题是我的@Before和@After规则方法在我的@Test方法之前/之后根本没有被调用:知道为什么会这样吗?最小可编译示例:packagecom.acme.test;importstaticorg.junit.Assert.assertNull;importorg.junit.ClassRule;importorg.junit.Test;importorg.junit