Index: /trunk/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java	(revision 17848)
+++ /trunk/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java	(revision 17849)
@@ -135,4 +135,10 @@
      */
     protected volatile short flags = FLAG_VISIBLE;   // visible per default
+
+    /**
+     * The mappaint cache index for this primitive.
+     * This field belongs to {@code OsmPrimitive}, but due to Java's memory layout alignment, see #20830.
+     */
+    protected short mappaintCacheIdx;
 
     /*-------------------
Index: /trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 17848)
+++ /trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 17849)
@@ -146,5 +146,4 @@
      *--------*/
     private StyleCache mappaintStyle;
-    private short mappaintCacheIdx;
 
     @Override
