ConcurrentHashMap是否可能“死锁”?

我们遇到了ConcurrentHashMap一个奇怪问题,其中两个线程似乎在调用put() ,然后在方法Unsafe.park()内永远等待。 从外部看,它看起来像ConcurrentHashMap的死锁。 到目前为止,我们只看到过这种情况。 谁能想到任何可能导致这些症状的事情? 编辑 :相关线程的线程转储在这里: “[编辑]线程2”prio = 10 tid = 0x000000005bbbc800 nid = 0x921等待条件[0x0000000040e93000] java.lang.Thread.State:WAITING(停车) 在sun.misc.Unsafe.park(原生方法) – 停车等待(java.util.concurrent.locks.ReentrantLock $ NonfairSync) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:778) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1114) at java.util.concurrent.locks.ReentrantLock $ NonfairSync.lock(ReentrantLock.java:186) at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262) at java.util.concurrent.ConcurrentHashMap $ Segment.put(ConcurrentHashMap.java:417) at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:883) 在[编辑] “[编辑]线程0”prio = 10 tid = 0x000000005bf38000 nid = 0x91f等待条件[0x000000004151d000] java.lang.Thread.State:WAITING(停车) 在sun.misc.Unsafe.park(原生方法) – […]

Spring和MVC正确的项目结构

我正在使用Maven开发Swing独立应用程序。 我尝试遵循MVC模式。 我对我的项目结构感到困惑。 我有这样的事情: /src/main/java/myName/appName /src/main/java/myName/appName/model /src/main/java/myName/appName/view /src/main/java/myName/appName/controller 现在我想要合并Spring框架,是什么让我放置在DAO和BO接口和实现的某个地方。 我已阅读本文链接 ,建议的项目结构不适合我的。 我想到的是添加这个: /src/main/java/myName/appName/dao /src/main/java/myName/appName/bo dao目录的内容如下所示(使用模型目录中的Client和Customer类): /src/main/java/myName/appName/dao/ClientDAO.java /src/main/java/myName/appName/dao/ClientDAOImpl.java /src/main/java/myName/appName/dao/CustomerDAO.java /src/main/java/myName/appName/dao/CustomerDAOImpl.java 这不好吗? 我想学习好的做法。

如何检查结果集是否有一行或更多行?

如何使用JDBC检查结果集是否有一行或更多行?

eclipse中的ant调试

我想知道使用eclipse的ANT的调试function。 基本上我有一个由同事编写的ANT构建脚本,我想逐步浏览每个目标,看看被称为的各种任务是什么。

启用JDBC的日志记录

我试图通过在eclipse IDE中连接到Oracle数据库来使用我的JDBC程序启用日志。 我已经完成了这个SO后JDBC记录到文件,然后我创建了下面的java程序并从我的eclipse IDE运行它,但我无法看到JDBC驱动程序类生成的任何日志。 import java.io.File; import java.io.FileInputStream; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; import java.util.logging.LogManager; import java.util.logging.Logger; public class Logging { static Logger log = Logger.getLogger(Logging.class.toString()); static Connection con = null; public static void main(String[] args) throws SQLException, ClassNotFoundException { System.setProperty(“oracle.jdbc.Trace”, Boolean.TRUE.toString()); System.setProperty(“java.util.logging.config.file”, “OracleLog.properties”); log.info(“Test Message”); enableLogging(false); getConnection(); closeConnection(); } […]

如何请求需要客户端证书进行身份validation的URL

我需要从使用客户端证书进行身份validation的服务器请求URL,但无法找到为我的应用程序执行此操作的方法。 我的问题是我正在处理的Java客户端有本地可用的证书文件,但是由于它将在其上运行的PC的限制,它无法在密钥库中安装证书。 简而言之,我只是希望能够明确指定用于我需要检索的URL的证书。 有什么建议么?

发生JNI错误,请检查您的安装并在Eclipse x86 Windows 8.1中重试

public class LoginCumReg implements ActionListener,KeyListener { private JFrame form; private JTextField txtunm; private JTextField txtnm; private JTextField txteml; private JButton cmdcreate; private JPasswordField txtpass; private JPasswordField txtpassreg; private JButton cmdok; private JLabel lblunm; private JLabel lblpass; private JLabel lbleml; private JLabel lblpassreg; private JLabel lblnm; private JPanel panel_1; public LoginCumReg() { // construct components form […]

如何为swagger REST API文档生成Java客户端代码

我的方案如下。 我有一个招摇.json例如: http : //petstore.swagger.io/v2/swagger.json我想为上面的REST API使用生成的java客户端,例如: PetApi petApi = new PetApi(); Pet pet = new Pet; pet.setName(“cica”); pet.setId(1L); petApi.addPet(pet); System.out.println(petApi.getById(1L));` Expexted输出: cica和新宠物根据REST API实现存储。 我已使用以下命令为petstore成功生成服务器存根: java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i http://petstore.swagger.io/v2/swagger.json -l spring-mvc -o samples/server/petstore/spring-mvc 但是这个maven项目代码是一个服务器代码。 它有注释,如PetApi.java @RequestMapping ,还有一个WebMvcConfiguration.class 。 我不想拥有服务器存根。 我想拥有petstore REST API的客户端库。 有没有可以为我生成适当的客户端库的工具? 我应该修改服务器存根,因此它有所有模型或者我应该使用简单的springRestTemplate吗? 谢谢你的答案!

具有error handling的Spring MVC Rest服务控制器正确完成了吗?

我想知道如何正确实现一个应该作为REST服务的Spring Controller。 特别是我想尝试使界面尽可能的RESTful。 此外,我想使用HTTP错误代码,以便我的客户端可以采取相应的行动。 我想知道如何实现我的方法,所以他们返回JSON如果一切正常(在响应的主体中)或抛出一个http错误代码以及一个自定义原因它为什么它不起作用(可能是来自DAO的错误或数据库)。 但是我不确定哪一个是正确的方法? 返回一个String并添加值以返回Model,或者返回一个HashMap并将我的东西放在那里? 或直接返回对象? 但那么如果发生错误并且我无法返回所述类怎么办? 返回null而不是? 我发布了2-3种可以想象的方法: @RequestMapping(value=”/addUser”, method= RequestMethod.POST) public String addUser(@RequestBody User user, HttpServletResponse response, Model model) throws Exception{ try{ userService.addUser(user); model.addAttribute(“user”, userService.getUser(user.getUsername(), user.getPassword())); return “user”; }catch(Exception e){ model.addAttribute(“error”, e.toString()); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString()); return “error”; } } 或者更确切地说: @RequestMapping(value=”/addUser”, method= RequestMethod.POST) public @ResponseBody Map addUser(@RequestBody User user, HttpServletResponse response){ Map […]

Java方法只使用左下点,宽度和高度找到两个矩形交集的矩形?

我找到了解决方案,但希望确保我的逻辑是最有效的。 我觉得有更好的方法。 我有左下角的(x,y)坐标,2个矩形的高度和宽度,我需要返回第三个矩形,它们是它们的交点。 我不想发布代码,因为我觉得它是作弊。 我弄清楚哪个是最左边和最高的图表。 我检查一个是否与另一个完全重叠,然后反向查看另一个是否与X轴上的第一个完全重叠。 我检查X轴上的部分交叉点。 我基本上重复Y轴的步骤2和3。 我做了一些数学计算,并根据这些条件得到矩形的点。 我可能会过度思考并编写效率低下的代码。 我已经参加了一个工作计划,但我想找到最适合自己知识的方法。 如果有人可以同意或指出我正确的方向,那将是伟大的!