首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Javafx SimpleStringProperty反序列化抛出IllegalStateException:未读的块数据

Javafx SimpleStringProperty是JavaFX中的一个类,用于在JavaFX应用程序中绑定和管理字符串属性。它提供了一种方便的方式来处理字符串属性的变化,并且可以与界面元素进行绑定,实现数据的双向绑定。

在反序列化过程中,如果尝试反序列化一个包含SimpleStringProperty的对象,并且该属性未被正确读取,就会抛出IllegalStateException异常。这通常是因为在反序列化时,SimpleStringProperty的值没有被正确地读取或设置。

为了解决这个问题,可以采取以下步骤:

  1. 确保在序列化和反序列化过程中,SimpleStringProperty的值被正确地读取和设置。可以通过在类中实现自定义的序列化和反序列化方法来控制属性的读取和设置过程。
  2. 在序列化和反序列化过程中,确保SimpleStringProperty对象的状态是一致的。这意味着在序列化之前,应该将SimpleStringProperty的值设置为正确的初始值,并在反序列化后重新设置属性的值。
  3. 如果可能的话,可以考虑使用其他可序列化的字符串属性类,如StringProperty,而不是SimpleStringProperty。这些类在序列化和反序列化过程中可能更容易处理。

总结起来,要解决Javafx SimpleStringProperty反序列化抛出IllegalStateException异常的问题,需要确保正确读取和设置属性的值,并保持对象状态的一致性。在处理序列化和反序列化过程中,需要注意属性的读取和设置,并确保使用可序列化的字符串属性类。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java迭代器Iterator

我们来一行一行。在第3行中有一个modCount变量。...跟踪这个变量,发现这个变量有点意思: protected transient int modCount = 0; 发现有一个“transient”关键字,查阅资料发现这个关键字意思是:表示一个域不是该对象序列化一部分...Object[] elementData = ArrayList.this.elementData;  //后面实际是在取ArrayList中数据 if (i >= elementData.length...最后我们来看remove方法实现: public void remove() { if (lastRet < 0)  //这个地方格外注意,不能在调用next时直接调用remove方法,必须在...,这意味着,如果我们如果创建完Iterator实例后直接调用remove方法会抛出一个IllegalStateException异常,那怎么才能正确调用呢?

854100
  • Java中Throwable源码阅读

    参考链接: Java中Throwable fillInStackTrace()方法 Throwable 源码阅读笔记  不是很懂,但是大致明白自定义异常中那几个常用参数发源地了,这是项目中自定义异常经常使用几个参数和方法...在进行反序列化时,      * JVM会把传来字节流中serialVersionUID与本地相应实体(类)serialVersionUID进行比较      *  如果相同就认为是一致,可以进行反序列化...,否则就会出现序列化版本不一致异常。...initCause(Throwable cause) {       //如果不是初始化状态则抛出异常         if (this.cause !...=this)             thrownew IllegalStateException("Can't overwrite cause");          //要设置起因对象与自身相等则抛出异常

    40620

    ApacheCN Java 译文集 20211012 更新

    抛出与抽象对应异常 74. 每个方法抛出异常都需要创建文档 75. 在细节消息中包含失败一捕获信息 76. 保持失败原子性 77. 不要忽略异常 78. 同步访问共享可变数据 79....明智审慎使用延迟初始化 84. 不要依赖线程调度器 85. 优先选择 Java 序列化替代方案 86. 非常谨慎地实现 Serializable 87. 考虑使用自定义序列化形式 88....考虑用序列化代理代替序列化实例 Thinking in Java (Java 编程思想) 写在前面的话 引言 第1章 对象入门 1.1 抽象进步 1.2 对象接口 1.3 实现方案隐藏 1.4...、Java 基础 第 2 节:Java 构建 四、异常处理 五、字符串、输入/输出和文件 六、数据结构、泛型和流行工具 七、Java 标准和外部库 八、多线程和并发处理 九、JVM 结构与垃圾收集...集合框架和泛型 八、Java 高级数据结构 九、异常处理 十、附录 JavaFX 基础知识 零、序言 一、JavaFX 8 入门 二、JavaFX 8 基础和创建自定义 UI 三、开发 JavaFX

    2.5K10

    MyChat,一个私有的“微信“

    UI 采用 JavaFx ,了解过 JavaFx 的人都知道这东西在国内文档表现,为使得页面开发便捷,专门为其开发了一些轮子,比如 FxmlObject ,让你可以轻松来操作 fxml 文件对象。...后端可以自己部署(开源以后),也可以使用 mychat 云(暂开放)。 应用部分截图 ? ? ? ? ? ? ? ?...聊天内容文本域如何动态调整宽高?使文本合理展示? (难搞) javaFx 边框?边距?背景? 功能问题 现在 UI 数据都存在缓存中,重启应用后消失,这部分数据如何处理?...后端哪些数据需要持久化? 怎么能提高程序扩展性,增加一类消息时很简单? UI 客户端没有使用 spring , 应用中使用 bean 如何管理? 哪些内容需要做成配置?如何做?...本地存储使用序列化方式保存Java bean, 但要存储对象没有实现序列化接口(组件中类),如何存储. 离线消息如何处理?

    2.9K10

    泛型未定义类型之强制类型转换踩坑

    所产生一些坑。一开始我还以为是jason转换原因。因为之前配置实体里面手动写方法都生成了相应属性,但是这次却没有,所以我一开始还以为是杰森。虚化原因。去直到我一步步锻炼去调试。...会相应问题才发现是类型转换异常。jackson序列化添一部分json序列化代码。...return MAPPER.writeValueAsString(obj); } catch (JsonProcessingException e) { throw new IllegalStateException...定位问题然后我就发现了非常常见一个异常ClassCastException类型转换异常。然后我就非常疑惑。什么时候我开始定义一个这个类他支持这个方法,而且是我亲自写这个方法,但是确抛出了异常。...就感觉匪夷所思,明明这里应该抛出一个异常,但没有抛出异常。

    17300

    从Gson 一个著名Bug说起

    Number类型盲转Double Gson是一个源自谷歌JSON序列化/反序列化框架,出身名门,社区活跃,因此被广泛应用。 ? 不过在项目中使用下来,发现Gson有一个比较坑问题。...也就是 明明是整形数字,经过Gson转换之后,就变成了Double类型。 此处假装有一个案例 问题产生原因 对于Map以及各种Bean进行序列化和反序列化时,如果某个字段就会发生此类问题。...这是因为这些对象如果指明类型,默认对应类型是Object,则通过getAdapter()方法查找到是ObjectTypeAdapter类型适配器。...所以默认情况下是由ObjectTypeAdapter类完成此类数据解析。来看一下ObjectTypeAdapter中是如何处理?...在对Object类型提供了自定义类型解析器之后,顺手再给自定义Bean做一个类型解析器,保证数据序列化和反序列化时可以正确解析。

    1.9K30

    JAVA安全编码标准学习分享

    以下内容摘取自《JAVA安全编码标准》,略做修改和补充解释,这是一个把书薄和知识串通过程 一、输入验证和数据净化 1、净化穿越受信边界非受信数据,比如使用PreparedStatement防止SQL...8、不要向Runtime.exec()方法传递非受信、净化数据 9、净化传递给正则表达式非受信数据 10、如果没有指定适当locale,不要使用locale相关方法处理与locale相关数据...()方法不能声明为私有 3、在将对象向信任边界之外发送时,需要签名并且封装敏感对象 4、不要序列化未经加密敏感数据 5、不要允许序列化和反序列化绕过安全管理器 6、不能序列化内部类实例,当内部类被序列化时...,需要注意是ObjectOutputStream维持了一个引用表来对先前序列化对象进行跟踪 11、不要在(会进行序列化和反序列化)POJO类上做业务逻辑 十五、平台安全性 1、不要允许特权代码越过受信边界泄漏敏感信息...,比如从doPrivileged()代码中返回指向敏感资源引用 2、不要在特权代码中使用没有验证或者非受信变量 3、不要基于非受信源进行安全检查,任何非受信对象或者参数必须在检查之前做防御性深度复制

    4.7K10

    一文搞定 Flink 消费消息全流程

    MemorySegment,用于数据传输是 Buffer,将 java 对象转化为 buffer 是这个 // Flink 把对象调用该对象所属序列化序列化为字节数组 serializer.serializeRecord...具体可以参考一下 Flink压机制 ) 底层通过 netty 进行数据传送,传送至 PartitionRequestQueue ...... if (cause !...有写得需要有,进入到 CreditBasedPartitionRequestClientHandler // nio 通道另一端( 下游 )需要读入 buffer // 上游算子写入,下游算子读取...,这也是原理 // 为什么叫 decodeMsg,主要上游传过来是 byte 数组,这个将 byte 数组 转化为 record private void decodeMsg(Object...有可用数据时,下游算子从阻塞醒来,从InputChannel取出buffer,再解序列化成record,交给算子执行用户代码

    1.4K20

    Spring中事务

    1、提交 就是一个事务可以读取另一个提交事务数据。...(1)打开一个客户端A,并设置当前事务模式为read uncommitted(提交),查询表account初始值: (2)在客户端A事务提交之前,打开另一个客户端B,更新表account:...(4)一旦客户端B事务因为某种原因回滚,所有的操作都将会被撤销,那客户端A查询到数据其实就是脏读数据。 2、提交 就是一个事务要等另一个事务提交后才能读取数据。...因为幻问题对应是插入INSERT操作,而不是UPDATE操作 (5)重新打开客户端B,插入一条新数据后提交; (6)在客户端A查询表account所有记录,没有 查出 新增数据,所以没有出现幻...4、Serializable 序列化(串行化) 序列化是最高事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏、不可重复读与幻

    42520

    JDK源码解析之 java.lang.Throwable

    一、类定义 public class Throwable implements Serializable {} Serializable:可被序列化标志接口 二、成员变量 //静态变量 //这两个变量主要用于序列化...该List用来保存被屏蔽异常对象,在try-catch语句中,如果try中抛出了异常,在执行流程转移到方法栈上一层之前,finally语句会执行,但是,如果在finally语句中又抛出了一个异常,...在构造完成后,也可通过initCause方法修改:修改cause前提是必须在构造方法中没有指定别的cause(即默认条件下cause为this),否则会抛出IllegalStateException异常...所捕捉异常,可能是由于自身语句所引发并抛出异常,也可能是由某个调用方法或者Java运行时 系统等抛出异常。也就是说,一个方法所能捕捉异常,一定是Java代码在某处所抛出异常。...无论是谁,都可以通过Javathrow语句抛出异常。 ​ 从方法中抛出任何异常都必须使用throws子句。 ​

    50210

    Java Web学习路径Java编程所需工具及知识JVM基本结构SSH框架设计模式之间关系

    在try中可以抛出异常吗?...try{}语句 中放是要检测java代码,可能有会抛出异常,也可能会正常执行; catch(异常类型){} 是当Java运行时系统接收到try中所抛出异常对象时,会寻找能处理这一异常catch...来进行处理(可以有多个catch); finally{} 不管系统有没有抛出异常都会去执行,一般用来释放资源。...59、请介绍spring事务隔离级别 (1)Default默认事务隔离级别 (2)READ_UNCOMMITTED(read_uncommitted)提交,一个事务可以操作另外一个提交事务,...不能避免脏,不可重复读,幻觉,隔离级别最低,并发性能最高 (3)READ_COMMITTED(read_committed)已提交,一个事务不可以操作另外一个提交事务, 能防止脏,不能避免不可重复读

    59710

    继续卷!面试又问Spring 事务有几种传播行为和隔离级别?

    1:Read Uncommitted(提交):一个事务可以读取另一个提交事务数据。 2:Read Committed(提交):一个事务要等另一个事务提交后才能读取数据。...4:Serializable(序列化):Serializable 是最高事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏、不可重复读与幻。...ISOLATION_READ_UNCOMMITTED:这是事务最低隔离级别,它充许令外一个事务可以看到这个事务提交数据。...ISOLATION_READ_COMMITTED:保证一个事务修改数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务提交数据。...但是即便有这样需求,也存在很多变通方法,比如,可以将需要进行事务管理代码独立为方法等等。

    20820

    @Transactional千万不要这样用!!踩坑了你都可能发现不了!!!

    RuntimeException,事务失效;Spring默认抛出检查unchecked异常(继承自 RuntimeException 异常)或者 Error才回滚事务;其他异常不会触发回滚事务。...事务等级从高到低,分别为: 1.Serializable(序列化) 系统中所有的事务以串行地方式逐个执行,所以能避免所有数据不一致情况。...因为它只“保护”了它读取数据不被修改,但是其他数据会被修改。如果其他数据被修改后恰好满足了当前事务过滤条件(where语句),那么就会发生“幻影情况。...4.Read Uncommitted(提交) 一个事务能读取到其他事务修改过,但是还没有提交(Uncommitted)数据。...数据被其他事务修改过,但还没有提交,就存在着回滚可能性,这时候读取这些“提交”数据情况就是“脏”。 在这个隔离级别会发生“脏”场景。

    68220

    Apache NiFi Write-Ahead Log 实现

    为什么要使用WAL 可以为非内存型数据提升极高效率,真正执行操作可能数据量会比较大,操作比较繁琐,并且写数据不一定是顺序写,所以如果每一次操作都要等待结果flush到可靠存储(比如磁盘)中才执行下一步操作的话...保证了数据完整性,在硬盘数据不损坏情况下,预写式日志允许存储系统在崩溃后能够在日志指导下恢复到崩溃前状态,避免数据丢失 Apache NiFi Write-Ahead Log 实现 术语定义...SerDe: 序列化/反序列化记录以及更新记录接口 TransactionID Generator: 是一个AtomicLong,用于在编写以编辑每个交易日志或snapshot时指示交易ID Writing...如果不是,则抛出IllegalStateException 获取repo共享锁 (read lock) 声明一个当前使用分区 增加AtomicLong和mod分区数 -> partitionIndex...如果无法检查点,则抛出IOException,指示还原失败。确保释放写锁定! 对于每个分区,打开输出流以进行追加。

    1.2K20

    Java异常宝典

    当对数组索引值为负数或大于等于数组大小时抛出。 18、java.lang.IllegalAccessException 违法访问异常。...当应用试图通过反射方式创建某个类实例、访问该类属性、调用该类方法,而当时又无法访问类、属性、方法或构造方法定义时抛出该异常。...当某个线程试图等待一个自己并不拥有的对象(O)监控器或者通知其他线程等待该对象(O)监控器时,抛出该异常。 20、java.lang.IllegalStateException 违法状态异常。...当某个线程处于长时间等待、休眠或其他暂停状态,而此时其他线程通过Threadinterrupt方法终止该线程时抛出该异常。...当访问某个类不存在属性时抛出该异常。 25、java.lang.RuntimeException 运行时异常。是所有Java虚拟机正常操作期间可以被抛出异常父类。

    1.1K10

    JavaScript

    单行注释  //   多行注释    /* */ 4·基本数据类型 javascript 中数据类型分为原始类型和对象类型: ·原始类型   ·数字   ·字符串   ·布尔值 ·对象类型   ·数组.../U03C0.gif· Math.SQRT1_2 2平方根除以1· Math.SQRT2 2平方根· ##静态函数 Math.abs() 计算绝对值· Math.acos() 计算余弦值...index]); } while(条件){ //break; //continue; } 3丶异常处理 1 try{ 2 //这段代码从上到下运行,其中任何一个语句抛出异常该代码就结束运行...· 3 } 4 catch(e){ 5 //如果try代码中抛出异常,catch代码代码就会被执行. 6 //e是一个局部变量,用来指向Error对象或者其他抛出对象...7 } 8 finally{ 9 //无论try中代码是否有异常抛出(甚至是try代码中有return语句),finally代码中始终会被执行· 10 } 注:主动跑出异常throw Error

    1.1K20

    spring事务隔离级别「建议收藏」

    事务产生问题 场景:同一个事务内(同一个服务内) 名称 数据状态 实际行为 产生原因 脏 提交 打算提交但是数据回滚了,读取了提交数据 数据读取 不可重复读 已提交 读取了修改前数据...数据修改 幻 已提交 读取了插入前数据 数据插入 事务隔离级 名称 结果 脏 不可重复读 幻 Read UnCommitted(提交) 什么都不解决 √ √ √...(序列化) 解决所有问题 – – – READ UNCOMMITTED(提交数据):允许事务读取未被其他事务提交变更数据,会出现脏、不可重复读和幻问题。...READ COMMITTED(已提交数据):只允许事务读取已经被其他事务提交变更数据,可避免脏,仍会出现不可重复读和幻问题。...PROPAGATION_NEVER–以非事务方式执行,如果当前存在事务,则抛出异常。

    39220

    Dart VM 是如何运行你代码

    优化编译 优化编译方式和优化编译有点类似,通过遍历序列化Kernel AST为正在优化函数构建优化IL,不同是与其直接将IL转换为机器码,优化编译器会将优化IL转换成基于static...这个过程就叫着优化:只要优化版本遇到无法处理情况,它就会将执行转移到优化函数匹配点并继续运行。优化版本不做任何假设,可以处理所有可能输入。...带代码snapshot几乎和普通snapshot工作方式是一样,只是它带有一个代码,这部分是不需要反序列化,代码可以直接map进堆内存。...AppJIT snapshots其实是VM使用一些模拟数据来训练程序,然后将生成代码和VM内部数据结构序列化而生成,然后分发这个snapshot而不是源码或者Kernel binary。...所有这些分析都是保守,因为必须要保证正确性,有可能会牺牲一点性能,这跟JIT不太一样,JIT生成代码还可以通过优化来回到优化代码上运行。

    3.4K30
    领券